我一直在试图弄清楚Java EE生产部署的世界正在发生什么,坦率地说,这似乎是相当可怕的。 在对一百多人讲话之后,这些是我的假设:
我还试图找出更新过程是如何发生的,它有多难,在人为测量(小时)和无灵魂的业务衡量(美元)方面花了多less钱。
我请你帮助我,并提供一些我可以用来更好地理解现实中发生的事情的半固态数据。 希望你会certificate我错了。 我期待着你的答案,但也会要求你回答这个调查,以获得一些数据:http: //0t.ee/appupdq11
我知道这不是典型的ServerFault问题,因为在这里没有正确的答案,但通过填写调查问卷,您将帮助我很多,如果您提供更长的答案,这将是非常棒的。
很大程度上取决于应用程序。
大多数J2EE应用程序在服务器集群场中运行,通过滚动升级可以完成基本的应用程序升级。 也就是说,将一台服务器从负载平衡器场中取出,等待其工作完成,更新EAR部署,testing它,将其放回lb场,然后重复下一步。 您可能需要停机才能进行数据库模式升级,只是为了确保数据的一致性。 数据库软件升级通常可以在没有大的中断的情况下完成,Oracle就是一个很好的例子。
在weblogic中,我使用wlst(python on java – jython)来进行部署。 你可以用它做任何你想要的逻辑。 所有部署的复杂部分是当你做一个数据库模式更新…这不是一个真正的Java问题,但它影响到Java系统。
对glassfish和tomcat更简单… tar目录安装一个新的实例与旧的configuration,然后部署战争,ear文件。
当然你可以把所有这些与cfengine,puppet或者fabric等configurationpipe理工具结合起来。