Что означает каждая стратегия развертывания Spinnaker?

Я хотел бы знать, что означает каждая стратегия и как они работают за кулисами (например, Highlander, Red/Black, Rolling Push). Было бы очень полезно иметь эту информацию на официальном сайте.

Спасибо


person Hugo Tavares    schedule 17.03.2016    source источник


Ответы (2)


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

Типы и стратегии развертывания Введение

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

  1. Повторное создание: (также известное как Highlander) Version A прекращается, затем развертывается version B.
  1. Рамперное (также известное как Последовательное обновление или Пошаговое обновление): Version B постепенно развертывается и заменяет version A.
  1. Синий/Зеленый (также известный как Красный/Черный): Version B освобождается вместе с version A, затем трафик переключается на version B.
  1. Canary: Version B выпускается для части пользователей, затем выполняется полное развертывание.
  1. A/B-тестирование: Version B выпускается для группы пользователей при определенных условиях.
  1. Тень: Version B получает реальный трафик вместе с version A и не влияет на отклик.

Сводная таблица типов и стратегий развертывания

введите здесь описание изображения


Стратегии развертывания спинакера

Spinnaker рассматривает облачные стратегии развертывания как первоклассные конструкции, обрабатывая базовую оркестровку, такую ​​как проверка проверки работоспособности, отключение старых групп серверов и включение новых групп серверов.

Стратегии развертывания, поддерживаемые Spinnaker (в активной разработке):

  • Горец
  • Красный/черный (также известный как синий/зеленый)
  • Красный/черный
  • Канарейка

На рисунке ниже показано следующее: введите здесь описание изображения

  1. Горец: эта стратегия развертывания метко названа в честь фильма «Горец» из-за знаменитой реплики, которая может быть только одна. При использовании этой стратегии балансировщик нагрузки работает с одним кластером. Highlander уничтожает предыдущий кластер после завершения развертывания. Это самая простая стратегия, и она хорошо работает, когда скорость отката не важна или необходимо снизить затраты на инфраструктуру.

  2. Красный/черный. Эту стратегию развертывания также называют синей/зеленой. Стратегия «красный/черный» использует балансировщик нагрузки и два целевых кластера/группы серверов (известных как «красный/черный» или «синий/зеленый»). Балансировщик нагрузки направляет трафик в активный (включенный) кластер/группу серверов. Затем новое развертывание заменяет серверы (с провайдером K8s -> Наборы реплик и поды) в отключенной группе кластера/сервера. Когда вновь включенный кластер/группа серверов готов, балансировщик нагрузки направляет трафик в этот кластер, а предыдущий кластер отключается. Текущая отключенная группа кластера/сервера (ранее включенная группа кластера/сервера) поддерживается спинакером на случай, если потребуется откат для следующих X развертываний (это настраиваемый параметр).

  1. Rolling Red/Black: более медленный красный/черный с большим количеством возможных точек проверки. Процесс такой же, как красный/черный, но разница в том, как переключается трафик. Изображение выше иллюстрирует эту разницу. Синий — включенный кластер. Синие экземпляры постепенно заменяются новыми экземплярами в зеленом кластере, пока на всех включенных экземплярах не будет установлена ​​самая новая версия. Развертывание может происходить с шагом 20 %, то есть может быть 80/20, 60/40, 40/60, 20/80 или 100 %. Оба сине-зеленых кластера получают трафик до завершения развертывания.

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

person Exequiel Barrirero    schedule 29.06.2019
comment
Один быстрый вопрос, как вы создали эту красивую графику, какой инструмент вы использовали? - person craftsmannadeem; 17.03.2021

Как я понимаю:

  • Highlander: когда новый ASG работает и исправен, все старые ASG автоматически уничтожаются.
  • Красный/черный: запускается новая ASG, выполняются некоторые ручные (или более сложные, чем в Highlander) шаги проверки, и только после выполнения этих шагов старая ASG удаляется вручную. Сообщение в блоге Netflix здесь: http://techblog.netflix.com/2013/08/deploying-netflix-api.html
  • Последовательное нажатие: «Старые экземпляры изящно удаляются и заменяются новыми экземплярами по одному или по два за раз, пока не будут заменены все экземпляры в ASG». Сообщение в блоге Netflix здесь: http://techblog.netflix.com/2012/06/asgard-web-based-cloud-management-and.html

В моей компании мы регулярно используем только Highlander и Red/Black.

person jpancoast    schedule 18.03.2016
comment
Highlander уничтожит ВСЕ неактивные объекты, где красный/черный отключает последний. - person Tomas Lin; 22.03.2016