遗留系统的现代化主要分为4个部分:
1)代码的现代化
2)架构的现代化
3)Devops现代化
4)组织结构的现代化
针对遗留系统一般是没有devops的能力的,因此需要创建现代化的devops能力。现在国内大部分使用的git flow的分钟策略。其优点是可以方便的实现延迟上线。其缺点主要是:
1)质量隐患,没有大量的集成测试
2)无法实现制品晋级
3)无法实现小步提交和持续构建
4)开发需要识别什么时候合并代码,认知负载高
之所以有这些问题的本质原因是,把软件开发这个团队活动割裂为单个开发人员的单人行为,与 DevOps 的价值观背道而驰。能够更好的满足持续集成要求的分治策略是Trunk Based Development。其主要流程如下:
1)持续提交。开发人员每日持续提交当天开发的代码,持续构建和集成
2)冲突处理。每次提交代码,都会先 rebase 远端的 master 代码,这让开发人员有机会在本地解决当前的冲突
3)制品晋级。提交的代码经过持续集成流水线产生制品,该制品不断晋级,最终成为生产环境的部署候选
但是这种方式会有延迟发布的问题,针对这个问题,可以通过特性开关来解决,但是也会带来特性开关的复杂管理的问题。
此文章为4月Day6学习笔记,内容来源于极客时间《遗留系统现代化实战》