Нажать и удалить или перенаправить? Развертывание Blue Green на CloudFoundry

Есть ли причина, по которой документация CloudFoundry рекомендует следующие шаги для сине-зеленого развертывания (мы в Pivotal CloudFoundry):

  1. Нажмите GoodApp_new
  2. Добавить маршрут GoodApp в GoodApp_new (балансировка нагрузки между ними)
  3. Удалить маршрут GoodApp из GoodApp
  4. Удалить маршрут GoodApp_new из GoodApp_new
  5. Удалить GoodApp
  6. Обычный следующий шаг: переименуйте GoodApp_new в GoodApp.

Когда следующие шаги кажутся эквивалентными?

  1. Переименуйте GoodApp в GoodApp_old (маршруты остаются без изменений)
  2. Отправьте новую версию с именем GoodApp (эффективно сбалансированная нагрузка, по умолчанию имеет правильные маршруты, потому что имя приложения правильное)
  3. Удалить GoodApp_old

Может быть, это необычно, что все правильные маршруты добавляются во время отправки?

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


person Sturzl    schedule 05.02.2018    source источник


Ответы (1)


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

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

Список плагинов здесь -> https://plugins.cloudfoundry.org/

Я вижу, что часто используется https://github.com/contraband/autopilot, но это не удар по любому из других плагинов.

Надеюсь, это поможет!

person Daniel Mikusa    schedule 06.02.2018
comment
Одна ошибка, с которой я столкнулся: переменные среды, настроенные после отправки, НЕ сохраняются при использовании ручных шагов или blue-green-deploy плагин. Я не уверен насчет других плагинов, но вам может понадобиться создать свой собственный, если вы настраиваете переменные среды вручную (вне сервера конфигурации, файла свойств или манифеста). - person Sturzl; 22.04.2018
comment
Antifreeze — решение этой проблемы. Это рекомендуется в файле readme для плагина Autopilot, указанного в ответе (который также не сохраняет env vars). - person Sturzl; 22.04.2018