6.4 架构演进路线图
架构演进是通过时间维度来分解复杂度的一种方法,在设计时就考虑架构的演进方式,并制定一套架构演进路线图,对架构非常有帮助。
制定架构演进路线的好处有:
- 更容易落地,从最小的、最核心的地方落地架构,但是保持某个方向拓展性。
- 容易说服关键的干系人,让当期成本、风险变得可以接受。
- 保持团队技术战略在同一个目标,以及排列工作优先级。
- 跟随技术趋势,在合适的情况下演进到主流的技术上,让技术成本更低。
架构演进路线主要需要包含当前状态、目标状态、关键节点和时间。比如,我们可以使用企业架构标准化制定组织 Open Group 提供的通用图例绘制架构演进路线。

图片来源:Open Group 文档
我们在架构设计时,往往拿到的不会是一个全新的系统,从一张白纸开始设计。我们往往容易被当前的系统状态限制,将未来、现在两种状态混在到一起。
比较好的做法,我们可以将架构设计工作分为 AS-IS、TO-BE 两套,AS-IS 用来分析现状,将当前的架构信息重建出来,使用 TO-BE 的工作设计未来的架构方案。AS-IS 和 TO-BE 中间还需要考虑分阶段实施方案、数据迁移方案。
架构路线图需要包含 4 个要素:
- 确定当前的状态。包括当前架构的问题和矛盾,我们可以对架构图进行还原,并分析出当前架构图中的痛点。
- 确定理想的状态。包括未来的状态是什么,需要满足什么样的目标。比如能够支持多大用户量的访问,性能指标,开发成本,需要更新到什么技术栈上等。
- 阶段切片(列)。制定每一步可执行的演进活动,比如将 Redis 切换到集群模式。阶段设计,需要根据当前的制约来制定,评估每个阶段的分享,是否会影响正常的业务开发节奏。
- 执行序列(行)。我们可能会将一些可以并行执行的演进活动放到架构路线图中,这样可以同步演进,但是会带来协同的问题。因此可以设计一些执行序列。
一些项目管理工具是可以提供一些架构演进工具的,比如 roadmunk.com 网站就提供了如下风格的架构演进地图:

图片来源:Enterprise Architecture Roadmap https://www.productplan.com/glossary/enterprise-architecture-roadmap/
在不使用专业工具的情况下,使用表格软件、PPT 也没有问题,关键在于我们的架构应该保持一种活跃的状态,因此在研发资源投入的时候需要将架构演进和持续更新的成本计算在内。