Представьте, что вы обновляете приложение, которым прямо сейчас пользуются тысячи людей.
Можно просто остановить сервер, загрузить новую версию и запустить его снова.
Но тогда несколько минут никто не сможет пользоваться сервисом.
Именно поэтому существует Blue-Green Deployment.
Суть очень простая.
Есть две одинаковые версии приложения.
🔵 Blue — та, которой сейчас пользуются все пользователи.
🟢 Green — новая версия, которая уже развернута на другом сервере, но пока скрыта от пользователей.
Пока все работают с Blue, разработчики спокойно проверяют Green: запускают тесты, убеждаются, что всё работает, подключаются к базе данных и проверяют основные сценарии.
А затем происходит самое интересное.
Вместо долгого обновления серверов система буквально за секунду переключает пользователей с Blue на Green.
Никаких долгих перезапусков.
Никаких сообщений «Сервис временно недоступен».
Для большинства пользователей обновление проходит настолько быстро, что они даже не замечают его.
А если после релиза вдруг обнаружится критическая ошибка?
Всё ещё проще.
Достаточно вернуть трафик обратно на Blue — и рабочая версия снова обслуживает пользователей буквально за несколько секунд.
Именно поэтому Blue-Green Deployment так любят в крупных сервисах, где каждая минута простоя может стоить очень дорого.
Получается простое правило:
Сначала запускаем новую версию. Потом переключаем пользователей. А не наоборот. 😄
💬 А знали о таком способе деплоя? Или впервые слышите про Blue-Green Deployment?