Jenkins:将Java 6升级到Java 8有什么风险?

时间:2015-05-19 10:00:44

标签: java jenkins glassfish upgrade compatibility

在工作中,我继承了Jenkins的两个实例。一个在Java 1.5上运行遗留作业。另一个在Java 1.6上运行更新的项目。

我被要求将两个实例升级到Java 1.8。

这将涉及升级:

  • Java 1.6到1.8
  • Jenkins 从1.460到1.614
  • Glassfish 从3.1.2到4.1

问题:

当我开始升级时,我应该注意什么? (例如,从JDK6升级到JDK8的风险)

这些版本之间是否存在已知的兼容性错误?

1 个答案:

答案 0 :(得分:9)

您正在同时升级三件事......不仅仅是Java的版本......因此很难可靠地识别风险。 (风险可能不是那么大,但如果你正在进行风险缓解,那对你来说太模糊了。)

但是,我并不认为“识别风险”是你应该关注的。您应该做的是制定一种使风险无关紧要的升级策略。基本上,如果升级严重,您需要有保证的回滚策略。

我会做这样的事情:

  • 获取新的服务器计算机或新虚拟机。
  • 在新服务器上安装新版本的Java和Glassfish。
  • 通过以下方式克隆现有的Jenkins实例:
    • 备份现有Jenkins实例的状态(请参阅wiki
    • 在新服务器上安装相同版本的Jenkins作为现有实例。
    • 将备份还原到新服务器上。
  • 检查新服务器是否正常运行(仍为旧版本)。
  • 使用Jenkins的自动升级工具将新服务器升级到目标版本。
  • 安装Jenkins插件等
  • 测试新服务器。
  • 将新服务器投入生产。

这里的关键是您正在对新系统进行升级。如果升级出现问题,您的现有系统仍处于完全正常工作状态。如有必要,您可以多次重复此过程,直到您做对,或者您可以花几天或几周调整新的CI系统,同时团队的其余成员继续使用当前的生产CI系统。

当你参与其中时,你可以借此机会刷新基本操作系统