Ror*_*ick 5 java deployment patch build
我们的构建/部署过程非常繁琐,手动充足且容易出错.你能提出改进建议吗?
让我来描述一下我们的部署策略和构建过程.我们正在开发名为Application Server(简称AS)的系统.它本质上是托管在JBoss Web服务器上的基于servlet的Web应用程序.AS可以安装在两个"环境"中.每个环境都是一个包含webapp代码的目录.此目录位于网络存储上.存储安装到安装了JBoss实例的多个生产服务器.目录链接到JBoss的webapps
目录.因此,所有JBoss实例都使用相同的环境代码.JBoss的配置与环境分开,并且基于每个实例进行更新.
所以我们有两种类型的补丁:webapp补丁(针对不同的环境)和配置补丁(针对每个实例配置)
补丁是一个可执行文件.实际上它是带有嵌入式二进制rpm包的bash脚本.安装非常简单:您只需执行文件并可选择回答一些问题.重要的一点是补丁不是一个整体系统 - 它只包含一些带有修改和/或修改配置文件的脚本的类.将类复制到WEB-INF/classes中(AS部署为展开的目录).
我们构建这些方案的方式是:
此外,我对有关补丁准备和部署实践的任何参考感兴趣,最好是对Java应用程序.我没有成功用Google搜索.
我工作的地方有类似的问题,但也许并不复杂.
我们完全取消了补丁的概念.我们停止了修补,开始简单地安装整个应用程序(即使我们做了一个小小的改动).
我们现在有Cruise Control构建完整的安装工具包,恰好包含安装工具包名称中的构建时间戳.这是一个Cruise Control构建工件.
Cruise Control在测试服务器上自动安装它们,并运行一些自动烟雾测试.然后,我们在测试服务器上运行手动测试.然后我们在临时,然后生产服务器上安装工件.
摆脱修补导致一些人喋喋不休,"如果你只是改变一些事情,那不是很浪费吗?" 并且"为什么要覆盖所有软件只是为了补丁?"
但事实是,良好的源代码控制,自动安装工具包构建和一步安装为我们节省了大量时间.安装需要花费几秒钟的时间,但我们可以更多地重复这一过程并减少开发人员的工作量.
归档时间: |
|
查看次数: |
2174 次 |
最近记录: |