Gymterview
middle

Какие существуют стратегии деплоя

Стратегия деплоя — это подход к обновлению работающего приложения в production-среде, определяющий, каким образом пользователи переключаются со старой версии на новую.

Аналогия: замена двигателя самолета. Можно посадить самолет и заменить (Recreate), можно менять двигатели по одному в полете (Rolling), а можно подготовить второй самолет и пересадить пассажиров (Blue-Green).

1. Recreate (пересоздание)

  • Старая версия останавливается, затем запускается новая.
  • Плюсы: простота реализации, чистое состояние.
  • Минусы: даунтайм во время переключения.
  • Когда использовать: DEV/TEST-окружения, приложения с допустимым даунтаймом.

2. Rolling Update (поэтапное обновление)

  • Экземпляры приложения обновляются по одному (или группами).
  • В каждый момент времени часть инстансов работает на старой версии, часть — на новой.
  • Плюсы: нет даунтайма, экономия ресурсов.
  • Минусы: временная несовместимость версий (два API-контракта одновременно), сложный откат.
  • Когда использовать: stateless-приложения с обратной совместимостью API.

3. Blue-Green Deployment

  • Существуют два идентичных окружения: Blue (текущая production-версия) и Green (новая версия).
  • Трафик переключается с Blue на Green после проверки.
  • Плюсы: мгновенный откат (переключение обратно на Blue), нет даунтайма.
  • Минусы: требуется вдвое больше ресурсов, сложность миграции данных.
  • Когда использовать: критичные production-системы, банковские приложения.

4. Canary Deployment (канареечный деплой)

  • Новая версия развертывается на небольшую часть серверов (например, 5% трафика).
  • Мониторятся метрики (ошибки, латенси). Если все хорошо — трафик постепенно переводится на новую версию.
  • Плюсы: минимальный риск, раннее обнаружение проблем на реальном трафике.
  • Минусы: сложность реализации, необходимость продвинутого мониторинга и маршрутизации трафика.
  • Когда использовать: high-load системы, микросервисы.

5. A/B Testing

  • Разные версии приложения направляются разным группам пользователей.
  • Используется для проверки бизнес-гипотез, а не для технического деплоя.
  • Когда использовать: продуктовые эксперименты (новый UI, алгоритм рекомендаций).

Сравнительная таблица стратегий

Стратегия Даунтайм Ресурсы Откат Сложность Риск
Recreate Да x1 Медленный Низкая Высокий
Rolling Нет x1 Средний Средняя Средний
Blue-Green Нет x2 Мгновенный Средняя Низкий
Canary Нет x1 + малая часть Быстрый Высокая Минимальный

Вывод

В банковской среде чаще всего используются Blue-Green и Canary стратегии, так как они обеспечивают минимальный риск и возможность быстрого отката. Выбор стратегии зависит от требований к доступности, бюджета на инфраструктуру и зрелости системы мониторинга.

На собеседовании: часто просят сравнить Blue-Green и Canary, а также объяснить, какую стратегию вы бы выбрали для конкретного сценария. Упомяните, что стратегия деплоя влияет на требования к обратной совместимости API и миграции базы данных.