Перейти к содержимому

Blue-Green Deployment

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

При каждом деплое ONREZA выполняет следующую последовательность:

  1. Pre-warm — новая версия запускается, проходит health check и подтверждает готовность
  2. Проверка — если новая версия не может запуститься, деплой отменяется. Трафик остаётся на старой
  3. Переключение — после успешной проверки трафик мгновенно переходит на новую версию
  4. Grace period — старая версия остаётся горячей указанное время (по умолчанию 5 минут)
  5. Автоматический откат — если новая версия падает во время grace period, трафик мгновенно возвращается на старую

Новая версия обязана пройти health check перед получением трафика. Если она не может запуститься (ошибка в коде, отсутствующие зависимости, неправильная конфигурация), деплой помечается как Failed.

Если новая версия прошла health check, получила трафик, но упала в течение grace period (процесс завершился, OOM, crash), ONREZA автоматически:

  1. Переключает трафик обратно на старую версию
  2. Помечает новый деплой как Failed

Blue-Green настраивается для каждого окружения отдельно в Settings → Environments → (кнопка настроек).

Параметр Описание По умолчанию
Blue-Green Deployment Включить/выключить Production: вкл, остальные: выкл
Grace period Время жизни старой версии после переключения 300 сек (5 мин)

Включён по умолчанию. Grace period 5 минут. Рекомендуется не отключать — zero-downtime и защита от сбоев критичны для пользователей.

Grace period определяет, как долго старая версия остаётся горячей и готовой принять трафик обратно.

  • Минимум: 30 секунд
  • Максимум: 10 минут
  • Рекомендация: 5 минут для production
  • Статические сайты — Blue-Green применяется только к Compute деплоям (Node.js / Bun серверы). Статические сайты обновляются мгновенно через CDN
  • Preview окружения — если вы единственный, кто смотрит на preview, cold start в 500ms не критичен
  • Экономия ресурсов — если приложение потребляет много памяти и вы хотите минимизировать расходы

Автоматический откат работает только во время grace period и только при падении процесса. Для всех остальных случаев используйте ручной откат, который мгновенно переключает трафик на любую предыдущую версию.