7 стратегий деплоя


Canary Deployment - эта стратегия развертывания предполагает постепенное распространение новой версии программного обеспечения на подмножество пользователей или серверов перед тем, как сделать ее доступной для всей базы пользователей. Это позволяет разработчикам отслеживать и оценивать производительность новой версии, выявлять потенциальные проблемы и постепенно снижать риски. Если канареечное развертывание оказывается успешным, обновление распространяется на всю инфраструктуру.

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

Feature Toggles (Feature Flags) - Feature toggles подразумевает развертывание новых функций или изменений в кодовой базе, но скрывает их от пользователей до тех пор, пока они не будут готовы к выпуску. Это позволяет разработчикам включать или отключать определенные функции без переразвертывания всего приложения. Переключатели функций ценны для тестирования и экспериментов, а также для управления выпуском новой функциональности для различных сегментов пользователей.

A/B-тестирование - A/B-тестирование, или сплит-тестирование, - это стратегия развертывания, которая предполагает выпуск двух или более вариантов (A и B) функции или дизайна для разных сегментов пользовательской базы. Это позволяет разработчикам оценить, какая из вариаций работает лучше, основываясь на заранее определенных показателях. A/B-тестирование полезно для принятия решений, основанных на данных, о том, какие функции следует полностью развернуть или какой дизайн больше нравится пользователям.

Shadow Deployment - также известное как "темный запуск", теневое развертывание подразумевает выпуск новой версии программного обеспечения параллельно с существующей производственной версией, но без направления пользовательского трафика на новую версию. Это позволяет разработчикам наблюдать за поведением и производительностью новой версии в реальной среде, не затрагивая конечных пользователей. После того как уверенность будет достигнута, можно переходить к перенаправлению трафика на новую версию.

Rolling Deployment - при скользящем развертывании новая версия программного обеспечения постепенно развертывается по всей инфраструктуре, по одному подмножеству (или узлу) за раз. Эта стратегия гарантирует, что приложение будет оставаться доступным на протяжении всего процесса развертывания, поскольку в любой момент времени отключается только часть инфраструктуры. Скользящие развертывания особенно полезны для крупномасштабных приложений с распределенной архитектурой.

Rollback Strategy - откат не является стратегией развертывания как таковой, но является важным аспектом любого плана развертывания. Эта стратегия подразумевает возврат к предыдущей версии программного обеспечения в случае возникновения проблем или неожиданных проблем во время или после развертывания. Хорошо разработанная стратегия отката гарантирует, что приложение сможет быстро и безопасно вернуться в стабильное состояние, минимизируя время простоя и воздействие на пользователей.

Прокрутить вверх