Я хотел бы знать, что означает каждая стратегия и как они работают за кулисами (например, Highlander, Red/Black, Rolling Push). Было бы очень полезно иметь эту информацию на официальном сайте.
Спасибо
Я хотел бы знать, что означает каждая стратегия и как они работают за кулисами (например, Highlander, Red/Black, Rolling Push). Было бы очень полезно иметь эту информацию на официальном сайте.
Спасибо
Там есть полезная информация, которая может помочь вам с вашим вопросом, я сделаю все возможное, чтобы обобщить ее ниже.
Существует множество методов развертывания новых приложений в рабочей среде, поэтому выбор правильной стратегии является важным решением, взвешивая варианты с точки зрения влияния изменений на систему и конечных пользователей.
Version A
прекращается, затем развертывается version B
.Version B
постепенно развертывается и заменяет version A
.Version B
освобождается вместе с version A
, затем трафик переключается на version B
.Version B
выпускается для части пользователей, затем выполняется полное развертывание.Version B
выпускается для группы пользователей при определенных условиях.Version B
получает реальный трафик вместе с version A
и не влияет на отклик.Spinnaker рассматривает облачные стратегии развертывания как первоклассные конструкции, обрабатывая базовую оркестровку, такую как проверка проверки работоспособности, отключение старых групп серверов и включение новых групп серверов.
Стратегии развертывания, поддерживаемые Spinnaker (в активной разработке):
На рисунке ниже показано следующее:
Горец: эта стратегия развертывания метко названа в честь фильма «Горец» из-за знаменитой реплики, которая может быть только одна. При использовании этой стратегии балансировщик нагрузки работает с одним кластером. Highlander уничтожает предыдущий кластер после завершения развертывания. Это самая простая стратегия, и она хорошо работает, когда скорость отката не важна или необходимо снизить затраты на инфраструктуру.
Красный/черный. Эту стратегию развертывания также называют синей/зеленой. Стратегия «красный/черный» использует балансировщик нагрузки и два целевых кластера/группы серверов (известных как «красный/черный» или «синий/зеленый»). Балансировщик нагрузки направляет трафик в активный (включенный) кластер/группу серверов. Затем новое развертывание заменяет серверы (с провайдером K8s -> Наборы реплик и поды) в отключенной группе кластера/сервера. Когда вновь включенный кластер/группа серверов готов, балансировщик нагрузки направляет трафик в этот кластер, а предыдущий кластер отключается. Текущая отключенная группа кластера/сервера (ранее включенная группа кластера/сервера) поддерживается спинакером на случай, если потребуется откат для следующих X развертываний (это настраиваемый параметр).
Rolling Red/Black: более медленный красный/черный с большим количеством возможных точек проверки. Процесс такой же, как красный/черный, но разница в том, как переключается трафик. Изображение выше иллюстрирует эту разницу. Синий — включенный кластер. Синие экземпляры постепенно заменяются новыми экземплярами в зеленом кластере, пока на всех включенных экземплярах не будет установлена самая новая версия. Развертывание может происходить с шагом 20 %, то есть может быть 80/20, 60/40, 40/60, 20/80 или 100 %. Оба сине-зеленых кластера получают трафик до завершения развертывания.
Canary: развертывание — это процесс, в котором изменение частично развертывается, а затем проверяется на соответствие базовым показателям, прежде чем продолжить. Этот процесс снижает риск того, что изменение вызовет проблемы после того, как оно будет полностью внедрено, за счет ограничения радиуса распространения до небольшого процента вашей пользовательской базы. Базовые метрики задаются при настройке канарейки. Показатели могут быть количеством ошибок или задержкой. Количество ошибок выше базового уровня или всплески задержки убивают канарейку и, таким образом, останавливают конвейер.
Как я понимаю:
В моей компании мы регулярно используем только Highlander и Red/Black.