Среды
Blue/green среды (preprod ⇄ prod)
Запустите preprod-копию приложения, тестируйте сколько нужно, не трогая прод, затем мгновенно переключите рабочий домен на неё и так же быстро откатите.
Вернуться к справке платформыКак это работает
- В проекте две среды: prod (рабочая) и preprod. Каждая — обычное приложение со своим тестовым поддоменом ca-*.cdn.com.tr.
- Promote переносит рабочий домен с prod на preprod за секунды без простоя; Rollback так же быстро возвращает.
- На вкладке Platforms аккаунта → Managed Container Apps панель «Blue/Green среды» (прямо над «Ваши приложения») содержит Create preprod, Promote и Rollback.
Создание и тест preprod
- Нажмите «Create preprod» на прод-приложении: оно клонирует образ, env, секреты, ресурсы и health check в новое preprod-приложение.
- Разверните preprod и тестируйте на его поддомене сколько нужно; прод не затрагивается.
- Когда готово, нажмите Promote, чтобы вывести preprod в прод; при проблеме Rollback мгновенно возвращает к предыдущему приложению.
- Если репозиторий подключён с автодеплоем, используйте конвейер деплоя: каждый push автоматически разворачивает Staging, а production меняется только при нажатии Promote (см. руководство «Конвейер деплоя»).
Состояние (БД и статика) и обратимость
- shared: preprod использует ту же управляемую БД/Redis и те же object-storage бакеты, что и prod (без копии). Подходит для изменений кода/UI.
- clone: preprod получает собственную управляемую MySQL с копией данных prod — безопасно для изменений данных/схемы.
- isolated: preprod начинается с чистого состояния.
- Promote сначала делает автоматический снапшот БД; Rollback восстанавливает его, поэтому изменения данных тоже обратимы. Статика на постоянном томе может быть общей (RWX), чтобы загрузки оставались согласованными.
Создание и тестирование preprod
- Выберите режим состояния и нажмите Create preprod (для одного приложения или «from all apps» для всего аккаунта). Клонируются образ, окружение, секреты, ресурсы и health check каждого приложения в новое preprod-приложение.
- Разверните preprod-приложения и тестируйте их на собственных поддоменах ca-* столько, сколько нужно, — production всё это время остаётся рабочим и нетронутым.
- Когда всё готово, нажмите Promote; если после запуска что-то пошло не так, нажмите Rollback, и трафик мгновенно вернётся к предыдущим приложениям.
Состояние (БД и статика) — что preprod разделяет с prod
- shared (по умолчанию): preprod использует ТУ ЖЕ управляемую БД/Redis и бакеты object storage, что и prod, через безопасные межприложенческие ссылки (без копирования). Лучший вариант для изменений кода/UI.
- clone: preprod получает СОБСТВЕННУЮ управляемую MySQL с копией данных prod — безопасно для тестирования данных или изменений схемы; данные prod не затрагиваются. (Копирование данных Postgres пока не поддерживается — БД запустится пустой.)
- isolated: preprod стартует с чистого листа, с собственными новыми дополнениями.
- Статические файлы на постоянном томе можно разделять (CephFS RWX), чтобы загрузки оставались согласованными между окружениями.
Обратимость и ограничения
- Трафик — с подключённым собственным доменом: Promote сначала привязывает домен к новому приложению, затем освобождает старое (без разрыва); Rollback — то же переключение в обратную сторону, за секунды, без пересборки.
- Трафик — production только на поддомене ca-*.cdn.com.tr: Promote выкатывает протестированный образ Staging на production-приложение через плавное обновление без разрыва (старый под обслуживает трафик, пока новый не будет готов). URL остаются стабильными; конфигурация (окружение/секреты) намеренно не переносится вместе с образом.
- Данные: Promote сначала делает автоматический снимок БД, а Rollback его восстанавливает, поэтому изменения данных, сделанные после запуска, тоже можно откатить.
- Область действия: всё происходит внутри одного аккаунта, поэтому владение DNS и production-сертификат никогда не затрагиваются.
- Пока НЕ поддерживается: продвижение между аккаунтами, копирование данных Postgres при clone и полностью транзакционное продвижение «всё или ничего» сразу для многих приложений (сейчас это делается по мере возможности для каждого приложения, с отдельными отчётами об ошибках).