Какие существуют стратегии деплоя
Стратегия деплоя — это подход к обновлению работающего приложения в 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 и миграции базы данных.