如何在不停机的情况下在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
答
您可以使用滚动更新来避免停机。有时他们也可以被视为“蓝色/绿色部署”。基本上,你保持旧版本运行,直到新版本启动。然后,您可以直接切换或在一段时间后切换,以查看新版本是否真的稳定。该技术可以与负载平衡相结合,以确定需要路由的流量。
我建议阅读下列操作之一:
答
有一个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>
太棒了!感谢您添加'cf'命令 – John