How to update bluemix application but leaving this application available?

时间:2015-11-12 10:46:00

标签: ibm-cloud websphere-liberty

I have Java Liberty Web Application on Bluemix. If I need to update it, the app becomes unavailable for a few minutes. Is it possible to update it without turning it off? For example deploy two applications and reroute to a second one one when first is being updated?

2 个答案:

答案 0 :(得分:6)

是的。目前最好的方法是通过以下步骤。

  1. 在myroute.mybluemix.net上部署原始应用程序
  2. 进行一些代码更改
  3. 在myroute2.mybluemix.net上部署已更改的应用程序
  4. 使用cf map-route APP_NAME DOMAIN [-n HOSTNAME]将myroute.mybluemix.net映射到已更改的应用程序。原始应用程序现在有myroute.mybluemix.net,已更改的应用程序现在有myroute.mybluemix.net& myroute2.mybluemix.net。此时,流量将在两个应用程序版本之间平均路由(假设它们具有相同数量的实例)。
  5. 使用cf unmap-route APP_NAME DOMAIN [-n HOSTNAME]从原始应用程序中取消映射myroute.mybluemix.net。 myroute.mybluemix.net上的所有流量现在都将被路由到更新的版本。
  6. 使用cf delete APP_NAME
  7. 删除原始应用程序
  8. (可选)使用cf unmap-route APP_NAME DOMAIN [-n HOSTNAME]
  9. 删除myroute2.mybluemix.net

    这似乎有点长,但它会实现你想要的。

答案 1 :(得分:2)

这被称为蓝绿色部署,并且有几个云代工插件可以“自动”执行:

<强> Bluemix's Active Deploy service

这是新功能,所以它目前处于测试阶段。要使服务可用,您可以将其从Bluemix服务目录添加到您的空间。如果您在本地运行cf,则需要安装插件:

  cf add-plugin-repo bluemix http://plugins.ng.bluemix.net/
  cf install-plugin active-deploy -r bluemix 

一旦它可用(使用cf插件安装或目录配置),并且你有路由,你可以做

cf push --no-route new-version
cf active-deploy-create old-version new-version

<强> Cloud Foundry community-contributed plugin for blue green deployments

您可以使用此安装     cf add-plugin-repo garage https://garage-cf-plugins.eu-gb.mybluemix.net/     cf install-plugin blue-green-deploy -r garage

然后,推,

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

烟雾测试部分是可选的,但是一个好主意。