Перейти к содержанию

Обновление Glarus BI в Docker Compose со сменой ролей контуров

В данном подразделе описывается обновление системы Glarus BI в Docker Compose методом сине-зелёного развёртывания (blue-green deployment) — со сменой ролей тестового и промышленного контуров.

Обновление со сменой ролей контуров

Администратор получает дамп БД метаданных на сервере PROD (промышленный контур), разворачивает его на неактивном тестовом сервере TEST, проводит предварительные испытания. Если они успешны, переключает трафик пользователей на тестовый сервер. Если далее пользователи находят критичные проблемы, которые не позволяют использовать обновлённую систему, у администратора остаётся работоспособный PROD с предыдущей версией Glarus BI, к которому можно быстро вернуть пользователей. TEST становится активным (промышленным) после испытаний, а PROD "замораживается" и используется в качестве резервной копии.

Преимущества, недостатки и альтернативы данного метода описаны в "Обновление Glarus BI. Обзор вариантов".

Перед обновлением в обязательном порядке требуется выполнить резервное копирование БД метаданных приложения Glarus BI и проверить работоспособность полученной копии. Это действие необходимо выполнить на тестовом и промышленном контуре.

Внимание

Запрещено выполнять обновление экземпляров без создания резервной копии БД метаданных приложения.

Если вы работаете в закрытом контуре, согласуйте возможность прохождения сетевого трафика с тестового сервера к репозиторию registry.glarus-digital.ru на время обновления с ответственными за доступ лицами. Тестовый сервер должен получить доступ к образам Docker, которые хранятся на registry.glarus-digital.ru.

Рекомендуем заранее связаться с техподдержкой Glarus Digital до начала обновления, чтобы договориться о перемещении лицензии и согласовать время проведения работ.

Проинформируйте пользователей

Оповестите пользователей о планах обновить систему — объясните, что создавать новые объекты в системе сейчас не следует. Всё, что будет создано ими в Glarus BI после того, как вы создадите дамп БД метаданных промышленного сервера, будет утеряно при переходе на обновлённый сервер. Речь только о новых объектах: записях аудита, коллекциях, дашбордах, запросах, моделях и т.д. Систему можно продолжать использовать для просмотра и визуализации данных.

Если вам нужно больше времени на развёртывание и предварительные испытания, чем пользователи согласны ждать без записи в БД метаданных, вы можете: - без уведомлений пользователей развернуть дамп TEST на PROD, восстановить лицензию; - провести испытания своими силами; - когда будет решено, что испытания успешно завершены, проинформировать пользователей об обновлении, повторно снять дамп БД метаданных промышленного сервера и восстановить лицензию; - повторить обновление тестового сервера; - переключить трафик пользователей.

Здесь нужно учесть, что после каждого развёртывания БД метаданных в новом окружении потребуется активация лицензии. То есть вам придётся как минимум один раз связаться с техподдержкой и дважды ввести код подтверждения лицензии после развёртывания дампа на тестовом сервере.

Перенесите витрину данных и БД метаданных с PROD на TEST

  1. Выгрузите текущую витрину данных и БД метаданных на TEST в архивных целях.
  2. Получите дамп ClickHouse и Postgres на PROD, скопируйте полученные файлы на TEST.
  3. На TEST удалите текущую витрину и разверните актуальную из дампа (ClickHouse).
  4. На TEST разверните БД метаданных из дампа (Postgres).

Детали подробно описаны в "Резервное копирование Glarus BI в Docker Compose".

Сохраните конфигурационные файлы на тестовом сервере

Рекомендуем сделать копию файлов настройки Docker Compose: docker-compose.yml и .env. Если вы не видите файла .env — включите отображение скрытых файлов в вашем приложении для работы с файлами.

Укажите путь к образу новой версии Glarus BI

Откройте настройки docker-compose.yml. Замените номер версии в пути к образу в секции glarusbi > image на "52" (последние цифры в строке). При необходимости уточните путь к новому образу в технической поддержке.

Запустите обновление

Находясь в каталоге с docker-compose.yml, выполните команды для начала обновления:

docker compose pull
docker compose down --remove-orphans
docker compose up -d

Примечание

Команда docker compose может выполняться как docker-compose (написание через дефис) — это зависит от версии ОС и пакетов.

Проверьте доступность тестового сервера

Системе обычно нужно несколько секунд, чтобы запуститься. Вы можете контролировать процесс в консоли, читая журнал работы контейнеров:

docker compose logs

Откройте браузер, введите URL тестового сервера. Должна открыться страница ввода лицензии.

Получите в техподдержке Glarus Digital новый ключ

Свяжитесь с техподдержкой Glarus Digital, сообщите необходимую информацию. Получите новый ключ. Введите код подтверждения.

Измените настройки системы

  1. Вспомните о кэшировании моделей. Если TEST и PROD полностью изолированы друг от друга и от данных, это неактуально. Но если они обращаются к одним и тем же данным или работают на одном физическом сервере, вам нужно перенастроить расписание кэширования моделей, чтобы избежать накладки, когда оба начнут одновременно оперировать большими объёмами данных.
  2. Убедитесь, что система сможет рассылать email-уведомления.

Проведите предварительные испытания обновлённой системы

Рекомендуем просмотреть:

  1. Блок «О Glarus BI» — должен быть указан новый номер версии и сборки. Если это не так, сбросьте кэш страницы в браузере и повторите попытку.
  2. Журналы обновления и запуска серера приложений на предмет ошибок.
  3. Визуализации на дашбордах — не должно быть ошибок получения данных.
  4. Отправить любое email-оповещение, чтобы убедиться в работе рассылки.
  5. Убедиться в доступности подключенных баз данных.

Если явных проблем не видно, стоит подключить к тестированию пользователей. Начните с нескольких наиболее заинтересованных человек.

Переключите пользователей на тестовый сервер

Оповестите пользователей о готовности к переключению.

Выполните переключение сетевого трафика пользователей с PROD на TEST. Как именно это сделать — зависит от вашей сети, скорее всего путём замены IP-адресов в настройках DNS-сервера компании. В результате ваших действий пользователи должны попадать на обновлённый TEST, не меняя ссылки в окне своего браузера.

Пожалуйста, убедитесь по журналу PROD, что фактический доступ пользователей к нему прекратился, и он "заморожен". Если часть пользователей по каким-то причинам продолжает с ним работать, вам придётся переносить их коллекции вручную и решать сопутствующие проблемы.

Проведите полноценные испытания

Теперь пользователи могут оценить возможность использования новой версии Glarus BI.

В ходе испытаний попросите пользователей просмотреть все созданные ранее визуализации на дашбордах и убедиться в их корректном отображении. Пока не разрешайте создание новых объектов, за исключением тестовых, которые нужны для проверки работоспособности и которые пользователи вручную удалят сразу после создания или после завершения испытаний.

Примечание

Если на этом этапе обнаружены критические проблемы, которые препятствуют использованию системы — переключите сетевой трафик пользователей на PROD с предыдущей версией Glarus BI (для отката).

Разрешите создание новых объектов в системе

Оповестите пользователей, что ограничение на создание новых объектов в системе снимается.

Предупреждение

Всё, что пользователи сейчас создадут, может быть утеряно при откате к предыдущей версии.

Завершите работы по обновлению

Используйте ваш стандартный регламент: сообщите результат руководителю, скопируйте файлы на надёжные носители для хранения, оставьте рабочие записи об обновлении, если вы их ведёте.

С момента завершения испытаний PROD с предыдущей версией Glarus BI становится тестовым. Версия системы на нём не обновлена. Рекомендуем оставить его в резерве со старой версией ещё на некоторое время и обновлять, когда в этом появится необходимость.

Дополнительная информация