27 февраля 2019

Блог

Настроили непрерывную доставку обновлений на платформу заказчика для онлайн-системы учёта доходов авиакомпании S7

Онлайн-система учета доходов обрабатывает более 50 тысяч транзакций в час, анализируя и сверяя данные с миллионами транзакций за предыдущие периоды. От 20 до 70 сотрудников авиакомпании постоянно работают с системой, а также система поставляет данные по корпоративной шине данных для других потребителей. Каждые две недели мы планово обновляем продукт, также бывают и более срочные релизы.

Теперь процесс Continuous Deployment на сервер заказчика выглядит следующим образом:

  • Обновление начинается с того, что разработчик или релиз-менеджер выкладывает изменения в специальную ветку нашего Git-репозитория. Эти изменения автоматически синхронизируются с Git-репозиторием исходного кода S7. У заказчика настроена сборка приложения, которая автоматически запускается после обновления ветки. Дальше запускаются сборка бекенда и фронтенда — две параллельные задачи, которые выполняются в системе Gitlab Runner.
  • После этого начинается автоматическое развертывание всех изменений приложения: самостоятельно обновляются все окружения, Docker-образы разворачиваются в окружения Kubernetes-кластера. Все эти действия выполняются с помощью установщика пакетов Helm.
  • Решение развертывается в тестовое окружение для проверки функционала заказчиком. Чтобы развернуть обновление в продуктовое окружение, остаётся лишь нажать одну кнопку, после чего контейнеры в течение нескольких секунд оказываются на продуктовой среде.

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