2

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

4

2 回答 2

3

Bluemix 文档包含一个简短的教程 [1],介绍如何影响蓝/绿零停机时间部署(也称为 A/B 部署)。本教程提供了两种方法。我推荐第二个,它使用“cf map-route”和“cf unmap-route”命令让您的应用程序的两个版本共享一条路线。您使用只有您自己知道的路由来部署新版本。测试以确保其行为符合预期,然后将原始路由映射到新版本,以便应用程序的新旧版本共享相同的路由。然后,您可以将旧版本缩小(为零实例)并在将两个版本映射到同一路线后扩大另一个版本。当您缩小实例时,弹性运行时将确保在终止实例之前停止任何活动请求。

Tim Spann 的本教程 [2] 也非常擅长解释,并引用了 Matt Stine 发布的另一个重要资源,该资源在发布时非常好,但现在与 cf cli 语法相比有点过时了。

这是一个自动化示例 [3],我们必须影响 cloudfoundry.org Web 应用程序的蓝/绿部署。希望您可以根据需要重新调整用途。

另一个很好的教程 [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/

于 2015-04-14T00:46:30.397 回答
2

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>

(烟雾测试是可选的,但很明智。)

如果测试脚本以零退出代码退出,插件会将所有路由从当前实时应用重新映射到新应用。

于 2016-04-12T08:30:39.173 回答