Zero downtime deployment

Доставка zero-downtime-deployment
Текущая практика
Зависит от (требует)
Описание

Практика, реализация которой позволяет производить обновление сервиса без его остановки. В Docker Swarm существует несколько стратегий такого обновления: - Start-first — сначала запускается контейнер с новой версией приложения и только после успешного запуска новой версии останавливается контейнер со старой версией. Предпочтительная стратегия, но требует наличия свободных вычислительных ресурсов. - Stop-first — сначала останавливается контейнер со старой версией приложения и только после этого запускается контейнер с новой версией приложения. Стратегия требует больше чем одну запущенную реплику приложения. В k8s существуют еще несколько стратегий деплоя, обеспечивающих данную практику: - Rolling - полностью аналогична стратегии Start-First в Docker-Swarm - Blue/green - полностью разворачивается новая версия(blue), но клиенты продолжают пользоваться старой версией (green), пока новая версия проходит тестирование и проверку. После окончания валидации происходит переключение пользователей со старой версии на новую. - Canary - похожа на blue/green, но в рамках данной стратегии к новой версии имеет доступ небольшое количество клиентов. Стратегия используется для тестирования новой функциональности на малом количестве лояльных клиентов. - Dark или A/B-развертывание - стратегия похожа на Canary, но в отличие от нее выбирает пользорвателей по объективным параметрам (куки, user-agent и другим параметрам) - Shadow Deployment - стратегия аналогична Canary, но на новые версии просто зеркалится пользовательский траффик без переключения самих пользователей.

Ценность
Преимущества:
  • Проведение обновления сервисов в любое время, а не только в окно с минимальной нагрузкой на систему.
  • Более частые релизы.
  • Методы Feature Toggles и Canary Release / Dark Launch позволяют безопасно проверить гипотезу на малом количестве пользователей.
Последствия отсутствия:
  • Обновление системы только в период минимальной нагрузки на систему;
  • Релизы зависят от наличия доступных свободных окон для развертывания с учетом проведения инфраструктурных работ.
Критерии оценки 4
SURVEY

Развертывание можно выполнить в любой момент

Варианты по умолчанию: Да / Нет / Частично
SURVEY

Стратегии развертывания описаны и автоматизированы, развертывание во время технического окна не происходит

Варианты по умолчанию: Да / Нет / Частично
CHECK

Развертывание можно выполнить в любой момент

CHECK -1

Стратегии описаны и автоматизированы, но развертывание все равно происходит во время технического окна

Ресурсы 3
  • Blue-green deployment with Istio - https://gitlab.com/express42/starsmap/httpapi/-/blob/develop/.gitlab-ci.yml?ref_type=heads#L265
  • habr.com
    https://habr.com/ru/companies/flant/articles/471620/
  • codefresh.io
    https://codefresh.io/learn/kubernetes-deployment/top-6-kubernetes-deployment-strategies-and-how-to-choose/
Метаданные
ID:
f4b83e63-b886-4e4e-af63-610acd84267f
Slug:
zero-downtime-deployment
Версия:
2.0
Проекты:
ФармаИмпекс Client1/Project1
Критерии:
2 survey 2 check
Создано:
2026-04-30
Обновлено:
2026-04-30