Канареечное развертывание

Стратегия канареечных развертываний (canary deployments) начинается с двух окружений: одно из них уже обслуживает пользователей, другое — содержит обновленный код (но пока без трафика). Трафик постепенно переключается с исходной, старой версии приложения на новую. Начинают обычно с минимального процента (например, с 1%) и постепенно увеличивают долю трафика, которая поступает в новую версию, пока та не достигнет 100%. Такая стратегия позволяет протестировать новую версию ПО в production, получить обратную связь, диагностировать ошибки и при необходимости быстро откатиться к старой стабильной версии.

Сам термин происходит от старой практики, когда канарейки помогали выявлять опасные газы в шахтах. Если в шахте были вредные газы, не имеющие запаха, птица погибала, и шахтеры понимали, что необходимо срочно эвакуироваться. То же самое справедливо и для канареечных развертываний: если окажется, что с новым кодом что-то не так, можно сразу откатиться на старую версию.

Какую проблему решает

Какой бы тщательной ни была стратегия тестирования, в процессе эксплуатации всегда обнаруживаются те или иные ошибки. Переключение сразу всего трафика с одной версии приложения на другую может привести к масштабным сбоям.

Как именно решает проблему

Канареечные развертывания позволяют увидеть, как новое программное обеспечение поведет себя в реальных условиях, прежде чем направлять на него весь трафик. Такая стратегия помогает минимизировать время простоя и быстро откатиться назад в случае возникновения проблем с новым развертыванием. Также она позволяет проводить более глубокое тестирование production-приложений, не оказывая существенного влияния на пользовательский опыт.


Последнее изменение October 27, 2023: [ru] Localize canary-deployment.md (4b46d1b)