如何在没有停机的情况下在Bluemix中部署

时间:2016-07-23 10:29:25

标签: ibm-cloud cloudfoundry

我们有一个在bluemix上运行的应用程序,但是每当我们部署应用程序停止时,新版本将被编译/捆绑然后启动,所有这些都导致停机时间至少为60秒。

我们如何在没有停机的情况下进行部署?

3 个答案:

答案 0 :(得分:2)

它通常被称为蓝绿色部署或红黑部署。基本的想法是将旧版本的应用程序与旧版本并排部署,测试一切正常,然后将流量切换到新版本。旧应用程序将作为备份保留(最终可能会停止,因此不会消耗内存或删除内存)。

这是一个non-Bluemix-specific description的想法,还有Bluemix documentation

使用cf CLI,它看起来像这样:

$ cf push Blue
$ cf push Green
$ cf map-route Green mybluemix.net -n Blue
$ cf unmap-route Blue mybluemix.net -n Blue
$ cf unmap-route Green mybluemix.net -n Green

答案 1 :(得分:1)

您可以使用滚动更新来避免停机。有时他们也可以被发现为"蓝/绿部署"。基本上,您保持旧版本运行,直到新版本启动。然后直接或在一段时间后切换,看新版本是否真的稳定。该技术可以与负载平衡相结合,以决定路由的流量。

我建议阅读其中一个:

答案 2 :(得分:0)

有一个用于蓝绿部署的Cloud Foundry插件。除了基本行为(零停机时间),它还支持烟雾测试等功能。它住在https://github.com/bluemixgaragelondon/cf-blue-green-deploy

要使用它,请从CF社区存储库获取插件:

cf install-plugin blue-green-deploy -r CF-Community

然后部署应用程序(冒烟测试参数是可选的)

cd your_app_root
cf blue-green-deploy app_name --smoke-test <path to test script>