你现在所写的每一行代码,都是未来的遗留系统
为什么要对遗留系统进行现代化?
什么是遗留系统?
判断遗留系统的几个维度:代码、架构、测试、DevOps 以及技术和工具。时间长短并不是衡量遗留系统的标准。代码质量差、架构混乱、没有测试、纯手工的 DevOps(或运维)、老旧的技术和工具,才是遗留系统的真正特点。
遗留系统的现代化价值
首先,可能是成本太高了,企业不愿意投入资源去改进;也可能是因为积重难返,根本改不动。
其次,遗留系统蕴含了大量的数据资产。
另外,遗留系统中还藏匿着丰富的业务知识。
总结
我们从业界对遗留系统的定义中总结出了 4 个关键字:旧、过时、重要、仍在使用。然而人们对于遗留系统的认识存在一个普遍的误区,即时间长的系统就是遗留系统。
遗留系统的四化建设
遗留系统在代码、架构、测试、DevOps 方面存在诸多问题,我们在此基础上,将代码和测试合并(因为它们说的都是代码的质量),并引入开发团队这个维度,就得到了遗留系统现代化的四个方向:代码现代化、架构现代化、DevOps 现代化和团队结构现代化。
代码现代化
代码现代化的首要任务,就是对遗留系统的代码进行安全的可测试化重构。
当代码可测了,我们就可以为它们添加足够的测试,提供质量保障。然后,在测试的保障下进行安全的重构。当代码结构良好了,再实现下一个代码现代化的目标,也就是良好的分层结构。
架构现代化
改造老城区模式是指对遗留系统内部的模块进行治理、让模块内部结构合理、模块之间职责清晰的一系列模式。
建设新城区模式是指将遗留系统内部的某个模块拆分到外面,或将新需求实现在遗留系统外部的一系列模式。
DevOps 现代化
遗留系统的 DevOps 现代化与其说是一种改进,不如说是从 0 到 1 的建设。这一部分可以和代码、架构的治理并行,甚至可以更早。要从头开始搭建一个 DevOps 平台,包括代码、构建、测试、打包、发布、配置、监控等多个方面。
团队结构现代化
四种团队拓扑包括业务流团队、复杂子系统团队、平台团队和赋能团队。三种团队交互模式包括协作、服务和促进。团队拓扑不仅对遗留系统至关重要,对一个新系统如何组建开发团队、团队之间如何沟通协作也是至关重要的。
总结