有青岛的同行问我,老系统该怎么改?我的答案是:别想着一步到位推倒重来,先把边界圈住,再一块块替换,确认新系统稳了才把老的撤下来,渐进着来才稳。信服无限青岛团队处理过不少这类历史系统。
先给老系统加围栏
老系统先别急着动,把它的接口和边界圈清楚,让新代码别直接依赖它的内部。这样它怎么变,外面都不受影响。青岛不少团队一上来就改老代码,牵一发动全身,改一处崩一片,越改越怕。
围栏建好,替换才有基础。青岛做系统改造的都知道,把老系统藏在接口后面,新功能对着接口开发,将来换成新的实现,外面几乎无感。这一步是渐进改造的地基,先打好,后面才顺。
一块一块替换
挑一个相对独立、风险小的模块先替换,跑通了再换下一块。别贪多。青岛不少团队想一口气全换,结果新旧交织、问题成堆,分不清是谁的错,进度一拖再拖,团队也疲惫不堪。
小步替换的好处是可回退。青岛做改造的,会让新旧系统并行一段时间,新模块出问题能立刻切回旧的,业务不停。一块稳定了再动下一块,风险被切成小份,心理压力也小得多。
确认无误再撤老的
确认新系统稳定、数据都迁完了,再把老系统正式下线。别急着关。青岛不少团队新系统一上线就把老的停了,结果新系统冒出一堆没测到的问题,想回退已经没了退路,只能硬着头皮救火。
下线要留足缓冲。信服无限青岛团队做这类项目时,会让老系统多跑一阵子,确认无人使用再做大扫除。稳一点,慢一点,换来的是一次平稳的升级,而不是一场惊心动魄的危机。
老系统改造的常见疑问
老系统必须换掉吗
未必,若能加固和维护,可继续用;确有瓶颈再考虑渐进替换。
改造要多久
按模块分步进行,通常以阶段推进,具体周期视系统规模而定。
留好退路,才改得稳
先加围栏、再逐块替换、确认无误再撤老的,老旧系统改造才稳。信服无限团队做系统服务时,最在意有没有留退路。把该做的做在前面,后面就少操不少心,这道理放在哪都通用。你要在青岛,先画出老系统的边界图,标出哪些模块相对独立、可以先动。