是否有任何工具可以在cloudfoundry上为node.js应用程序自动化蓝/绿部署。我试过cloudfoundry gradle插件(https://github.com/cloudfoundry/cf-java-client/tree/master/cloudfoundry-gradle-plugin),但它需要带有jar/war文件的文件参数,而节点应用程序中不存在jar/war文件。如何在cloudfoundry中实现节点应用程序的蓝/绿部署自动化?

最佳答案

BlueMix文档包括一个关于如何影响蓝/绿零停机部署(也称为A/B部署)的简短教程[1]。本教程提供了两种方法。我建议使用第二个命令,它使用“cf map route”和“cf unmap route”命令,允许您有两个版本的应用程序共享一个路由。使用只有您知道的路由部署新版本。测试以确保其按预期运行,然后,将原始路由映射到新版本,以便应用程序的旧版本和新版本共享同一路由。然后,在将两个版本映射到同一路由后,可以将旧版本向下缩放(到零个实例),并将另一个向上缩放。当您缩小实例规模时,弹性运行时将确保在终止实例之前停止所有活动请求。
Tim Spann的本教程[2]也非常擅长解释,并引用了Matt Stine发布的另一个伟大的源代码,该源代码在发布时非常棒,但现在已经有点过时了,因为它使用了cf cli语法。
这里有一个自动化的例子[3],我们必须影响cloudfoundry.org Web应用程序的蓝/绿部署。希望你能根据自己的需要重新调整用途。
另一个很好的教程[4],其中包括自动化,并描述了如何将blue/green部署自动化集成到ibm devops服务中。
[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/

09-27 22:10