是否有任何工具可以在cloudfoundry上为node.js应用程序自动化蓝/绿部署。我已经尝试过cloudfoundry gradle插件(https://github.com/cloudfoundry/cf-java-client/tree/master/cloudfoundry-gradle-plugin),但它需要带有jar / war文件的文件参数,这在节点应用程序中不存在。如何在cloudfoundry中自动部署节点应用程序的蓝/绿?
答案 0 :(得分:3)
Bluemix文档包含一个关于如何影响蓝/绿零停机部署(也称为A / B部署)的简要教程[1]。本教程提供了两种方法。我建议第二个,它使用'cf map-route'和'cf unmap-route'命令,允许你有两个版本的应用程序共享一条路线。您使用仅为您所知的路由部署新版本。测试以确保其行为符合预期,然后,您将原始路线映射到新版本,以便应用的旧版本和新版本共享相同的路线。然后,您可以将旧版本缩小(缩小到零实例),并在将两个版本映射到同一路径后再缩放另一个版本。在缩减实例时,弹性运行时将确保在终止实例之前停止所有活动请求。
Tim Spann的这篇教程[2]也非常擅长解释,并且引用了Matt Stine发布的另一个很好的资料来源,它在发布时非常棒,但是现在有点过时了w / r / t cf cli语法。
以下是我们必须影响cloudfoundry.org网络应用程序的蓝/绿部署的自动化示例[3]。希望您可以根据自己的需要重新调整用途。
另一个包含自动化的好教程[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
答案 1 :(得分:1)
Cloud Foundry有一个社区插件,可自动进行蓝绿色部署。来源是https://github.com/bluemixgaragelondon/cf-blue-green-deploy。 要使用,请在部署脚本中执行以下操作:
cf install-plugin blue-green-deploy -r CF-Community
cf blue-green-deploy <app_name> --smoke-test <path to test script>
(烟雾测试是可选的,但是很明智。)
如果测试脚本以零退出代码退出,则插件会将所有路径从当前实时应用重新映射到新应用。