在进行项目开发中,大佬非常关注故障恢复的能力,尤其是严重bug导致版本回退,必须要有合理的解决方案,快速恢复显得尤其重要。于是小强搜集了网上一些常用的方法,记录在wiki上以便自己回顾。
回滚策略
- 容器化回滚。容器化技术日新月异,回滚也是通过tag进行操作的。效率高,若项目使用了容器技术,推荐使用此方式。
- 备份回滚。每次版本发布都会保存以往备份文件,将备份文件用作回滚时使用,可以免去编译、打包的过程,直接发布。
- git回滚。使用branch或者tag、通过切换到指定的commit-id回到当时的开发节点,进行编译打包。效率比较低。
小强项目使用的是git回滚方式(未来考虑上容器)
git回滚
首先给你的jenkins安装git parameter插件
回到jenkins job配置
general配置
在general通用设置中勾选参数化构建项目
源码管理配置
构建(为了做验证)
验证环节
先初始化一个标签
添加一个文件
再打一个标签
这样gitlab的标签库就准备好了,我们去jenkins构建页面看看效果
这里git parameter插件会自己去读取git上的标签库,然后作为下拉框供我们选择。
注意:如果是正常发版的话,是不需要勾选的,后台默认使用origin/master(我们配置的分支)发版,所以会发最新的代码。
如果线上遇到严重bug需要回退版本,则根据需要勾选执行Tag进行回滚。
不勾选时检出的commit-id
勾选v0.0.1-2021-01-04时,可以看到检出的commit-id与标签指向的7f590617一致