Понимание основ Canary, Blue/Green и других развертываний

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

Доступны различные стратегии развертывания, но пятью наиболее популярными являются развертывание Blue-Green, выпуск Canary, A/B-тестирование, повторное развертывание и теневое развертывание. Каждая стратегия развертывания имеет свои преимущества и недостатки и может использоваться в зависимости от ваших потребностей.

В этой статье вы узнаете больше об этих типах развертывания.

Давайте начнем!

Сине-зеленое развертывание

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

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

Основным недостатком является то, что это связано с более высокими затратами, поскольку вы должны работать с двумя параллельными средами.

Канарский выпуск

Канарский выпуск — это стратегия развертывания, которая обеспечивает поэтапное развертывание в производственной среде. Идея состоит в том, чтобы медленно выпускать новую версию для подмножества пользователей. Например, 10% рабочего трафика можно отправить на канарейку. Мы можем протестировать стабильность и производительность и получить отзывы пользователей. Если все работает как положено, мы можем постепенно переводить трафик со старой версии на новую.

Такое развертывание снижает риск появления ошибок в новой версии программного обеспечения. Он также имеет простую стратегию отката.

Одним из недостатков является то, что цикл разработки является более сложным и занимает больше времени. Например, канарейка требует написания сценариев и ручного/человеческого тестирования.

A/B-тестирование

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

Это отличный способ поэкспериментировать с новыми функциями в рабочей среде.

Недостатком этого метода является то, что написание A/B-тестов занимает много времени и сложна в настройке.

Воссоздать развертывание

Эта стратегия сначала закрывает старую версию приложения, а затем развертывает новую версию. Все приложение перезапускается.

Плюс этой стратегии в том, что она проста и понятна.

Минус в том, что у приложения будет время простоя. Он не подходит для критически важного программного обеспечения, которое должно быть всегда доступно для клиентов. Кроме того, выполнить откат не так-то просто.

Теневое развертывание

Эта стратегия включает развертывание новой версии вместе с существующей версией. Производственные запросы зеркалируются/копируются и отправляются в теневую версию для проверки соответствия требованиям.

Это безопасный способ проверить, как изменения кода будут вести себя в продуктивной среде.

Однако это дорого и сложно в настройке. Инженеры также должны быть осторожны с трафиком, чтобы избежать дублирования запросов в реальном времени.

Заключение

В этой статье вы узнали о некоторых наиболее часто используемых стратегиях развертывания. Если вы новичок и ваши коллеги рассказывают о развертывании Canary, вы поймете, как это работает.

Надеюсь, вы узнали что-то новое из этого поста. Спасибо за чтение, и до встречи в следующий раз!