【问题标题】:IBM Bluemix - Multiple server restarts upon deploymentIBM Bluemix - 部署时多台服务器重启
【发布时间】:2018-11-12 03:34:22
【问题描述】:

我们有一个启用了 DevOps 交付管道的 NodeJS Cloud Foundry 应用程序。我们正在尝试更新我们的部署脚本,以允许我们在不停机的情况下部署应用程序更新。我们现在有一个大部分工作的脚本(见下文)。

但是,我们意识到在部署过程中,我们的应用会启动两次。我们需要在脚本中进行哪些更改,以便只发生一个服务器初始化? 这是脚本:

#!/bin/bash
# Push app
if ! cf app $CF_APP; then
   cf set-env "${CF_APP}" NODE_ENV development
   cf set-env "${CF_APP}" HOST_NAME bluemix
   cf push $CF_APP
else
   OLD_CF_APP=${CF_APP}-OLD-$(date +"%s")
   rollback() {
       set +e
           if cf app $OLD_CF_APP; then
           cf logs $CF_APP --recent
           cf delete $CF_APP -f
           cf rename $OLD_CF_APP $CF_APP
       fi
       exit 1
   }
   set -e
   trap rollback ERR
   cf rename $CF_APP $OLD_CF_APP
   cf push $CF_APP
   cf set-env "${CF_APP}" NODE_ENV development
   cf set-env "${CF_APP}" HOST_NAME bluemix
   cf restage ${CF_APP}
   cf delete $OLD_CF_APP -f
fi

【问题讨论】:

    标签: ibm-cloud cloud-foundry devops continuous-deployment blue-green-deployment


    【解决方案1】:

    我建议进行更广泛的研究并考虑所谓的“blue green deployment”。基本上,您启动另一个应用程序实例,然后从旧代码版本切换到新代码版本。

    您可以对这样的High Availability deployment with Cloud Foundry apps on IBM Cloud 采取不同的方法。有“autopilot”或“blue-green-deploy”等Cloud Foundry CLI plugins可以使用。他们的目标是实现零停机部署。您还可以将它们作为输入来编写您自己的脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多