在工作中,我继承了Jenkins的两个实例.一个在Java 1.5上运行遗留作业.另一个在Java 1.6上运行更新的项目.
我被要求将两个实例升级到Java 1.8.
这将涉及升级:
Java 1.6到1.8
詹金斯从1.460到1.614
Glassfish从3.1.2到4.1
题:
我开始升级时应该注意什么?(例如从JDK6升级到JDK8的风险)
这些版本之间是否存在已知的兼容性错误?
您正在同时升级三件事......不仅仅是Java的版本......因此很难可靠地识别风险.(风险可能不是那么大,但如果你要进行风险缓解,那对你来说太模糊了.)
但是,我并不认为"识别风险"是你应该关注的.您应该做的是制定一种使风险无关紧要的升级策略.基本上,如果升级严重,您需要有保证的回滚策略.
我会做这样的事情:
获取新的服务器计算机或新的虚拟机.
在新服务器上安装新版本的Java和Glassfish.
通过以下方式克隆现有的Jenkins实例:
备份现有Jenkins实例的状态(请参阅wiki)
在新服务器上安装相同版本的Jenkins作为现有实例.
将备份还原到新服务器上.
检查新服务器是否正常运行(仍为旧版本).
使用Jenkins的自动升级工具将新服务器升级到目标版本.
安装Jenkins插件等
测试新服务器.
将新服务器投入生产.
这里的关键是你在新系统上进行升级.如果升级出现问题,您的现有系统仍处于完全正常工作状态.如有必要,您可以多次重复此过程,直到您做对,或者您可以花几天或几周调整新的CI系统,同时团队的其余成员继续使用当前的生产CI系统.
当你参与其中时,你可以借此机会刷新基本操作系统