Подтвердить что ты не робот

Стратегия выпуска Канарских островов против Blue/Green

Мое понимание выпуска канарейки заключается в том, что это частичный выпуск подмножества производственных узлов с включенными липкими сессиями. Таким образом, вы можете контролировать и минимизировать количество пользователей/клиентов, которые пострадали, если вы в конечном итоге выпустили плохую ошибку.

Мое понимание синего/зеленого релиза состоит в том, что у вас есть две зеркальные производственные среды ( "синий" и "зеленый" ), и вы сразу же нажимаете изменения на все узлы синего или зеленого цвета, а затем используете сети магия для контроля того, какие пользователи окружения перенаправляются через DNS.

Итак, прежде чем я начну, если что-то, что я сказал до сих пор, неверно, начните с исправления!

Предполагая, что я более или менее на ходу, затем несколько вопросов о двух стратегиях:

  • Существуют ли сценарии, где канарейка предпочтительнее синего/зеленого и наоборот?
  • Существуют ли сценарии, в которых модель развертывания может одновременно реализовать обе стратегии?
4b9b3361

Ответ 1

Сине-зеленое высвобождение проще и быстрее.

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

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

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

Итак, сине-зеленое развертывание, если вы привержены практикам, которые позволяют вам быть уверенными в этом. В противном случае отправьте канарейку.

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

Ответ 2

Я написал подробное эссе по этой теме здесь: http://blog.itaysk.com/2017/11/20/deployment-strategies-defined

На мой взгляд, разница в том, доступна ли новая "зеленая" версия реальным пользователям. Если это так, то я бы назвал это канарейка. Распространенным способом реализации Canary является обычный Blue/Green с добавлением интеллектуальной маршрутизации конкретных пользователей к новой версии. Прочитайте пост для подробного сравнения

Цвет морской волны: enter image description here

Канарейки: enter image description here

Ответ 3

Релизы "синий/зеленый" и "канарейка" решают одну и ту же цель тестирования программного обеспечения с целевой аудиторией, прежде чем предоставлять функции программного обеспечения более широкой аудитории. В случае канарейки развертывания могут совместно использовать одну и ту же инфраструктуру, но в случае синего/зеленого вся инфраструктура дублируется с маршрутизатором /DNS/reverseproxy впереди для маршрутизации трафика.

В облачной среде, где проще создавать сценарии & Для воссоздания инфраструктуры предпочтительным является сине-зеленое развертывание, поскольку оно позволяет инфраструктуре синхронизироваться с автоматизацией. Это прекрасная возможность, когда требуется воссоздать окружение.

Вы можете обратиться к следующим статьям для более подробного сравнения:

Развертывание BlueGreen:http://martinfowler.com/bliki/BlueGreenDeployment.html

Канарское развертывание:http://martinfowler.com/bliki/CanaryRelease.html

Ответ 4

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

Канарейки

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

  2. Вскоре вы получите представление о том, как будет работать новая версия (интеграция с другими приложениями, процессор, память, использование диска и т.д.).

Синий/зеленый:

  1. Это больше о предсказуемом выпуске с нулевым временем простоя развертывания.
  2. Легкий откат в случае сбоя.
  3. Полностью автоматизированный процесс развертывания

Ответ 5

Хорошее начало определений. Я думаю, что это также поможет в принятии решения для вашей стратегии, если вы разделите определение "релиз" на "развертывание" и "выпуск (функциональность)".

Развертывание (двоичные файлы)

Действие бинарного развертывания вашего продукта в (производственной) системе.

Выпуск (функциональность)

Действие по управлению доступностью функциональности для (групп) пользователей.

Почему? У вас обычно есть (несколько) две проблемы при "отпускании": 1) Ошибки/обратная совместимость/и т.д. 2) Проверка правильности/удобства использования новых функций

Затем спросите себя, прежде чем выбрать канарейку, сине-зеленую или любую другую стратегию с серым/смешанным режимом: с какими проблемами мы сталкиваемся при выпуске/развертывании новой версии? И только тогда, если вы знаете свои проблемы, выберите свою стратегию.

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

Пометка функций

Действие "настройка" (холодная или даже горячая), какие функции (не) доступны для (группы) пользователей

Если вы также делаете что-то вроде "маркировки функций", вы можете сначала развернуть, измерить надежность вашего релиза с точки зрения обратной совместимости/ошибок и постепенно выпускать новые функции для разных пользователей или наоборот (уменьшать или даже уменьшать функциональность отката и/или двоичные файлы.). Пометка функций позволяет отделить доступность функциональности от развертывания двоичных файлов и дает гораздо более детальное принятие решений, чем только "развертывание/откат"

Ответ 6

Вот несколько встроенных определений -

  • Сине-зеленое развертывание - при развертывании новой версии приложение, вторая среда создается. Однажды новый среда проверена, она берет свое начало от старой версии. Старый среда может быть отключена.

  • A/B-тестирование - одновременно работают две версии приложения. Часть запросов направляется каждому. Разработчики могут сравнить версии.
  • Canary Release - Новая версия микросервиса запускается вместе со старыми версиями. Эта новая версия может затем принять часть запросов, и команда может проверить, как эта новая версия взаимодействует с системой в целом.