Как делать zero-downtime deploy?

Middle+
535 просмотров
AFK Offer AI

Zero-downtime deploy — обновление без перерыва в обслуживании. Основные подходы: blue-green (два окружения, переключение трафика), rolling update (обновление инстансов по одному), graceful shutdown в Go (signal.NotifyContext, server.Shutdown). Ключевой момент — Go-сервер должен дообработать текущие запросы перед остановкой. В Docker это SIGTERM + STOPSIGNAL + grace period. Nginx upstream с health check автоматически убирает мёртвые бэкенды. Для баз данных — миграции должны быть backward-compatible.

Следующий вопрос

Что такое hexagonal architecture?