Blue-Green Deployment
Blue-Green Deployment позволяет обновлять приложение без прерывания работы. Новая версия запускается и проверяется до того, как на неё переключится трафик, а старая версия остаётся готовой к мгновенному откату.
Как это работает
Заголовок раздела «Как это работает»При каждом деплое ONREZA выполняет следующую последовательность:
sequenceDiagram
participant DG as Deploy Gate
participant NC as Compute
participant ES as Edge
Note over DG: Новый деплой готов
DG->>NC: Запусти новую версию (pre-warm)
NC->>NC: Скачать код, запустить, проверить
NC-->>DG: Готово (300ms)
DG->>DG: Переключить alias
DG->>ES: Обновить маршруты
ES->>NC: Трафик → новая версия
Note over NC: Старая версия жива ещё 5 минут
Note over NC: Если новая падает → авто-откат
- Pre-warm — новая версия запускается, проходит health check и подтверждает готовность
- Проверка — если новая версия не может запуститься, деплой отменяется. Трафик остаётся на старой
- Переключение — после успешной проверки трафик мгновенно переходит на новую версию
- Grace period — старая версия остаётся горячей указанное время (по умолчанию 5 минут)
- Автоматический откат — если новая версия падает во время grace period, трафик мгновенно возвращается на старую
Два уровня защиты
Заголовок раздела «Два уровня защиты»Readiness Gate
Заголовок раздела «Readiness Gate»Новая версия обязана пройти health check перед получением трафика. Если она не может запуститься (ошибка в коде, отсутствующие зависимости, неправильная конфигурация), деплой помечается как Failed.
Автоматический откат
Заголовок раздела «Автоматический откат»Если новая версия прошла health check, получила трафик, но упала в течение grace period (процесс завершился, OOM, crash), ONREZA автоматически:
- Переключает трафик обратно на старую версию
- Помечает новый деплой как Failed
Настройка
Заголовок раздела «Настройка»Blue-Green настраивается для каждого окружения отдельно в Settings → Environments → (кнопка настроек).
| Параметр | Описание | По умолчанию |
|---|---|---|
| Blue-Green Deployment | Включить/выключить | Production: вкл, остальные: выкл |
| Grace period | Время жизни старой версии после переключения | 300 сек (5 мин) |
Включён по умолчанию. Grace period 5 минут. Рекомендуется не отключать — zero-downtime и защита от сбоев критичны для пользователей.
Выключен по умолчанию. Preview деплои — временные, zero-downtime не важен. Включайте, если используете preview для демо клиентам.
Выключен по умолчанию. Настройте по необходимости. Для staging окружений, где тестируете перед production, может быть полезно.
Grace period
Заголовок раздела «Grace period»Grace period определяет, как долго старая версия остаётся горячей и готовой принять трафик обратно.
- Минимум: 30 секунд
- Максимум: 10 минут
- Рекомендация: 5 минут для production
Когда Blue-Green не нужен
Заголовок раздела «Когда Blue-Green не нужен»- Статические сайты — Blue-Green применяется только к Compute деплоям (Node.js / Bun серверы). Статические сайты обновляются мгновенно через CDN
- Preview окружения — если вы единственный, кто смотрит на preview, cold start в 500ms не критичен
- Экономия ресурсов — если приложение потребляет много памяти и вы хотите минимизировать расходы
Ручной откат
Заголовок раздела «Ручной откат»Автоматический откат работает только во время grace period и только при падении процесса. Для всех остальных случаев используйте ручной откат, который мгновенно переключает трафик на любую предыдущую версию.