「Linux」- 关于关于升级的经验与教训

  CREATED BY JENKINSBOT

问题描述

该文档将记录:在软件升级过程中,遇到的问题,以及应该尽量遵守的准则。

常见问题

升级跨度大,是件危险的事情

如果升级跨度大,比如跨过很多次版本号,会带来如下问题:

1)将跳过某些动作:每次官方的更新脚本可能都会执行某些升级动作,而跨版本升级,可能会跳过这些升级动作。在 GitLab 中,官方甚至给出升级路线,因此只能进行多次升级。

升级内容多,让问题变得复杂

如果升级内容多,比如很多相关的依赖都需要升级,会带来如下问题:

1)破坏依赖关系:某些服务具有非常多插件(比如 Jenkins 服务),直接升级所有插件会破坏依赖关系。因此,我们因该进行多次插件升级,而每次进行少量插件升级。

我们的升级策略

在升级前,进行数据备份

在服务运维中,不管是否升级,都应该进行数据备份。当升级失败后,我们能够快速回滚到原先的版本。

频繁升级,但非最新版本

现在(# 07/30/2021),软件的更新速度越来越快(多亏 DevOps 发展),某些软件半个月就会发个新版本。如果不紧跟步伐(也不至于步步紧逼),那很可能将来无法升级(比如,找不到官方文档,升级包,相关资源等等问题)。

虽然频繁升级,但是我们也并非使用最新版本。比如 GitLab 出现 13.6 版本,那我们可能只会升级到 13.4 版本,然后关注 13.5 及 13.6 相关的问题,最后再决定是否需要升级。