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
Развертывание можно выполнить в любой момент
Стратегии развертывания описаны и автоматизированы, развертывание во время технического окна не происходит
Развертывание можно выполнить в любой момент
Стратегии описаны и автоматизированы, но развертывание все равно происходит во время технического окна
Ресурсы 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