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

问题描述:

我们有一个在bluemix上运行的应用程序,但是无论我们何时部署应用程序停止,新版本都会被编译/捆绑然后启动,所有这些导致停机时间至少为60s 。如何在不停机的情况下在Bluemix中部署

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

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

这是一个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 
+0

太棒了!感谢您添加'cf'命令 – John

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

我建议阅读下列操作之一:

有一个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>