Стратегии деплоя
Деплой (deployment) / развертывание — процесс доставки новой версии приложения в рабочее окружение (production) и её ввода в эксплуатацию.
Затрагивает:
- доступность системы для пользователей,
- целостность данных,
- стабильность интеграций,
- выполнение SLA.
Без продуманной стратегии деплой несёт риски:
- простой системы,
- массовые ошибки у пользователей,
- невозможность быстрого отката,
- финансовые и репутационные потери.
Стратегия деплоя определяет как именно новая версия попадает в прод, какая часть пользователей её увидит и что произойдёт в случае ошибки.
Фундаментальные стратегии
Big Bang / Replace/ Recreate Deployment (Полная замена)
Старая версия приложения полностью останавливается, после чего разворачивается новая.
Как работает
- Остановка приложения,
- Обновление кода и конфигурации,
- Запуск новой версии.
Плюсы и минусы
- Простота реализации.
- Минимальные требования к инфраструктуре.
- Длительный простой,
- Пользователи полностью затронуты изменениями,
- Откат требует повторного деплоя старой версии.
Где применяется
- Внутренние системы, где простой допустим,
- Низкокритичные сервисы,
- Редкие релизы,
- На ранних этапах проекта или в условиях ограниченных ресурсов.
Когда неприменима
- Пользовательские сервисы,
- Системы с SLA по доступности.
Rolling Deployment (Постепенное обновление)
Новая версия разворачивается постепенно, по экземплярам (ноды, pod’ы, контейнеры) приложения, без полной остановки сервиса.
Как работает
- Экземпляры обновляются по очереди,
- Балансировщик исключает обновляемые узлы из трафика.
Плюсы и минусы
- Нет полного простоя
- Не требует дублирования окружений
- Старая и новая версии работают одновременно (получение неактуальных данных)
- Требуется обратная совместимость
- Откат происходит постепенно и занимает время
Где применяется
- Микросервисная архитектура
- Контейнеризированные приложения (Kubernetes, облачные платформы).