23 июля 2018

Кейсы

Развернули онлайн-систему учета продаж авиакомпании S7 на платформе Kubernetes

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

Онлайн-система учёта доходов изначально разрабатывалась на микросервисной архитектуре. Мы имели возможность обновлять одну часть системы, не затрагивая другие. Но обновления выводили из работы часть функционала и требовали останавливать работу системы на некоторое время от 10 минут до 1 часа. После перехода на Kubernetes обновления не затрагивают работоспособность системы и могут проводиться в любое удобное для разработчиков время.

Платформа Kubernetes – отраслевой стандарт в управлении системами, которые требуют высокой доступности. Kubernetes упрощает облегчает управление решением, развертывание и обновление, мониторинг работы и отладку при сбоях.

Благодаря переходу на Kubernetes заказчики и мы как разработчики получили следующие результаты:

  • Все операции — от исходного кода системы до релиза в продуктовую среду — проходят в автоматическом режиме.
  • Система может быть размещена у любого облачного провайдера, например, Amazon или Azure.
  • Мы обеспечиваем любой уровень производительности и отказоустойчивости за счет масштабирования кластера или кластеров.
  • Решение не требует инструкций. Оно самодокументировано и уже сразу автоматически упаковано в единицу использования — контейнер.
  • Изменился процесс разработки и тестирования решения. Мы как разработчики можем по требованию создавать окружения, идентичные продуктовым, для автоматизированного тестирования.

Сам процесс перехода к автоматизированному обновлению в нашем случае выглядел следующим образом:

  1. Упаковали все 15 компонентов системы в изолированные контейнеры.
  2. Подобрали железо, настройки кластера Kubernetes и версии операционных систем, которые обеспечивали нам максимально отказоустойчивую конфигурацию.
  3. За неделю до миграции мы развернули Kubernetes на тестовом окружении, проверили корректность работы системы и настроили автоматические скрипты для конфигурации и развертывания боевого кластера.
  4. Для боевой миграции выбрали время с минимальной нагрузкой системы. В результате простой системы составил около часа и практически не затронул пользователей.