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

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: Если новая падает → авто-откат
  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 и только при падении процесса. Для всех остальных случаев используйте ручной откат, который мгновенно переключает трафик на любую предыдущую версию.