Сине-зеленое развертывание приложения node.js в cloudfoundry

Есть ли какой-либо инструмент для автоматизации синего/зеленого развертывания в cloudfoundry для приложений node.js. Я пробовал подключаемый модуль Cloudfoundry Gradle (https://github.com/cloudfoundry/cf-java-client/tree/master/cloudfoundry-gradle-plugin), но для этого требуется параметр файла с файлом jar/war, который не существует в приложении node. Как вы автоматизируете синее/зеленое развертывание приложений узла в cloudfoundry?


person Piotr Bochynski    schedule 13.04.2015    source источник


Ответы (2)


Документация Bluemix включает краткое руководство [1] о том, как повлиять на сине-зеленое развертывание с нулевым временем простоя (также называемое развертыванием A/B). Учебник предлагает два подхода. Я бы порекомендовал второй, который использует команды cf map-route и cf unmap-route, чтобы позволить вам иметь две версии вашего приложения, разделяющие маршрут. Вы развертываете новую версию, используя маршрут, который известен только вам. Протестируйте, чтобы убедиться, что оно работает должным образом, а затем сопоставьте исходный маршрут с новой версией, чтобы старая и новая версии вашего приложения использовали один и тот же маршрут. Затем вы можете уменьшить масштаб старой версии (до нуля экземпляров) и увеличить масштаб другой после того, как обе версии будут сопоставлены с одним и тем же маршрутом. По мере уменьшения масштаба экземпляров эластичная среда выполнения гарантирует, что все активные запросы будут приостановлены до завершения работы экземпляра.

Это руководство [2] Тима Спанна также очень хорошо объясняет и ссылается на другой замечательный источник, опубликованный Мэттом Стайном, который был великолепен в то время, когда он был опубликован, но теперь немного устарел с синтаксисом cf cli.

Вот пример [3] автоматизации, которую мы должны были повлиять на синее/зеленое развертывание веб-приложения cloudfoundry.org. Надеюсь, вы сможете переназначить его для своих нужд.

Еще одно хорошее руководство [4], которое включает в себя автоматизацию и описывает, как интегрировать сине-зеленую автоматизацию развертывания в IBM DevOps Services.

[1] https://www.ng.bluemix.net/docs/#manageapps/index-gentopic3.html#genTopProcId4

[2] http://www.cloudfoundry.rocks/blue-green-deployment-with-cloudfoundry/

[3] https://github.com/cloudfoundry/cloudfoundry.org/blob/master/publish.sh

[4] http://ryanjbaxter.com/2015/04/15/performing-zero-downtime-deployments-from-ibm-devops-services-to-bluemix/

person christo4ferris    schedule 14.04.2015
comment
Я должен отметить, что пока я ссылался на документацию Bluemix; IBM Bluemix основан на Cloud Foundry, поэтому руководство в равной степени применимо к большинству предложений на основе Cloud Foundry и, конечно же, к любым развертываниям Cloud Foundry с помощью OSS. - person christo4ferris; 14.04.2015
comment
Спасибо, но вопрос в том, как автоматизировать синее/зеленое развертывание, а не в том, как это сделать. Я хочу, чтобы новая версия приложения развертывалась с каждой фиксацией для разработки ветки (непрерывное развертывание). Это может случиться даже 3 раза в день. Я не хочу, чтобы там были ручные шаги. - person Piotr Bochynski; 14.04.2015
comment
Петр, спасибо, кажется, у меня где-то есть скрипт, который может помочь. - person christo4ferris; 14.04.2015
comment
Не забывайте о переменных окружения. Мне нужно скопировать три переменные среды из синего в зеленый (или наоборот), чтобы мое приложение заработало. - person Costa Michailidis; 13.08.2015