【问题标题】:Blue/green deployment for node.js application on cloudfoundryCloudfoundry 上 node.js 应用程序的蓝/绿部署
【发布时间】:2015-06-19 07:38:36
【问题描述】:

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

【问题讨论】:

    标签: node.js cloud-foundry blue-green-deployment


    【解决方案1】:

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

    Tim Spann 的本教程 [2] 也非常擅长解释,并引用了 Matt Stine 发布的另一个重要资源,该资源在发布时很棒,但现在有点过时了 w/r/t 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/

    【讨论】:

    • 我应该注意,虽然我参考了 Bluemix 的文档; IBM Bluemix 基于 Cloud Foundry,因此该指南同样适用于大多数基于 Cloud Foundry 的产品,当然也适用于 Cloud Foundry 的任何 OSS 部署。
    • 谢谢,但问题是如何自动化蓝/绿部署而不是如何做到这一点。我想在每次提交开发分支时部署新版本的应用程序(持续部署)。它甚至可以每天发生3次。我不想在那里有手动步骤。
    • Piotr,谢谢,我想我有一个脚本可能会有所帮助。
    • 不要忘记环境变量。我必须将三个环境变量从蓝色复制到绿色(或相反)才能使我的应用程序正常工作。
    【解决方案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>
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 2018-07-15
      • 2017-02-13
      • 1970-01-01
      • 2019-01-01
      • 2021-07-18
      • 1970-01-01
      相关资源
      最近更新 更多