我们在TeamCity构build服务器上使用Maven部署一个应用程序到几个Jelastic Tomcat环境。 这工作很好,并已经这样做了相当一段时间。
现在,我们希望更接近于零宕机时间的部署,并希望find一种简单的方法来最小化或消除停机时间。 Tomcat的并行部署function似乎非常合适。
但是,Jelastic Maven插件似乎并不处理并行部署或非标准(即<artifact-name>##<artifact-version>.war )归档名称。 tomcat-maven-plugin与我们的Nginx代理/负载均衡器声称请求(PUT)太大不能很好地配合。 100 MB不应该是一个问题,对…? 🙂
当我尝试使用邮差进行部署时,我也收到一个错误,说上下文/已经被使用了。 确切地说,这就是为什么我想要一个并行部署…
我已经在本地尝试了一切,它的作用就像一个魅力,但远程是另一个问题,有没有人在这种设置成功,或者我错过了什么?
您是对的,Jelastic Maven目前不支持在Tomcat中的并行部署。 function请求已添加到增强列表中。 作为现在的替代选项,您可以通过直接SSH连接到容器来部署战争归档。 或者你可以玩swap域 – 创build一个新的环境,部署一个新的版本到这个新的env,testing它,如果一切正常的旧域和新的envs交换域。
除此之外,我们将发布Traffic Distributor – 一个专门针对复杂应用零停机部署的模块。 这是一种负载平衡器,允许通过拖放或API调用,在环境之间重新分配部分stream量或全部stream量。 它将在一个月内上市。
如果您在负载平衡器上使用公共IP地址(推荐),还有另一种select。
在这种情况下,您可以创build一个具有相同拓扑结构的全新/独立环境,在那里部署更新的代码,然后在testing之后将公共IP从旧的负载平衡器移动到新的负载平衡器。 这是非常快的(只是几个丢包)。
这个工作stream程对于蓝绿色部署非常有效。