问题描述
该文档将记录:在软件升级过程中,遇到的问题,以及应该尽量遵守的准则。
常见问题
升级跨度大,是件危险的事情
如果升级跨度大,比如跨过很多次版本号,会带来如下问题:
1)将跳过某些动作:每次官方的更新脚本可能都会执行某些升级动作,而跨版本升级,可能会跳过这些升级动作。在 GitLab 中,官方甚至给出升级路线,因此只能进行多次升级。
升级内容多,让问题变得复杂
如果升级内容多,比如很多相关的依赖都需要升级,会带来如下问题:
1)破坏依赖关系:某些服务具有非常多插件(比如 Jenkins 服务),直接升级所有插件会破坏依赖关系。因此,我们因该进行多次插件升级,而每次进行少量插件升级。
我们的升级策略
在升级前,进行数据备份
在服务运维中,不管是否升级,都应该进行数据备份。当升级失败后,我们能够快速回滚到原先的版本。
频繁升级,但非最新版本
现在(# 07/30/2021),软件的更新速度越来越快(多亏 DevOps 发展),某些软件半个月就会发个新版本。如果不紧跟步伐(也不至于步步紧逼),那很可能将来无法升级(比如,找不到官方文档,升级包,相关资源等等问题)。
虽然频繁升级,但是我们也并非使用最新版本。比如 GitLab 出现 13.6 版本,那我们可能只会升级到 13.4 版本,然后关注 13.5 及 13.6 相关的问题,最后再决定是否需要升级。