我们有一个在bluemix上运行的应用程序,但是每当我们部署应用程序停止时,新版本将被编译/捆绑然后启动,所有这些都导致停机时间至少为60秒。
我们如何在没有停机的情况下进行部署?
答案 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>