项目经验_之_架构图
前言
Github:https://github.com/HealerJean
一、为什么要画
为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和表达,对于读者来说也更加容易理解架构所要表达的意思。
然而不擅长画图的程序员,在大脑里已经有了思路,如何快速能够产出精美的架构图呢?这篇文章帮你总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合你的业务需要的架构图。
二、图
1、周期图
| 图形特点 | 简洁、容易理解、易扩展 |
|---|---|
| 使用场景 | 适用于一组或者一组以上的数据趋势对比 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆☆ |

2、时间轴
| 图形特点 | 简洁、容易理解、易扩展 |
|---|---|
| 使用场景 | 时间轴维度 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆ |

3、生命周期图
| 图形特点 | 简洁、容易理解、易扩展 |
|---|---|
| 使用场景 | 适用于对一个对象进行生命周期划分或者分类扩展 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆ |

4、坐标轴带图标模板
| 图形特点 | 简洁、容易理解、美观 |
|---|---|
| 使用场景 | 适用于对一个带有产品图的对象进行生命周期划分或者分类扩展 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆ |

5、块状图
| 图形特点 | 简单、模块化、信息丰富、易拓展 |
|---|---|
| 使用场景 | 适合对于信息平铺展示图 |
| 美观度 | ☆☆☆ |
| 复杂度 | ☆☆ |

6、架构图
1)应用依赖图
| 图形特点 | 简洁,引入容易理解的图标,扩展性强 |
|---|---|
| 使用场景 | 适用于应用、数据库之间的依赖 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆ |

2)系统分层简图

| 图形特点 | 简洁、容易理解、流程指向清晰、拓展性简单 |
|---|---|
| 使用场景 | 适用于简单应用分层架构 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆☆☆☆ |
3)系统分层彩图
| 图形特点 | 增加 ICON、和业务深度集成,相对简洁 |
|---|---|
| 使用场景 | 可叠加业务名词、标签等应用分层架构 |
| 美观度 | ☆☆☆☆☆ |
| 复杂度 | ☆☆☆☆ |

4)多维系统架构分层图
| 图形特点 | 多维度分层 |
|---|---|
| 使用场景 | 可叠加业务、系统等多维度封层架构 |
| 美观度 | ☆☆☆☆☆ |
| 复杂度 | ☆☆☆☆ |

7、业务流程图
1)三角流程图
| 图形特点 | 简单、清晰 |
|---|---|
| 使用场景 | 可形成闭环的业务流程 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆☆ |

2)块状流程图
| 图形特点 | 简单、清晰 |
|---|---|
| 使用场景 | 流程+块状业务图 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆ |

3)链式流程简图
| 图形特点 | 简单、链式流程、易扩展 |
|---|---|
| 使用场景 | 可以形成链式的流程 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆ |

8、分类数据图
1)垂直块状分类图
| 图形特点 | 简单、清晰、易拓展 |
|---|---|
| 使用场景 | 可以结构化、可分类的描述 |
| 美观度 | ☆☆☆☆☆ |
| 复杂度 | ☆☆ |

2)矩阵分类图
| 图形特点 | 简单、清晰、结构化 |
|---|---|
| 使用场景 | 可以结构化、可分类的描述 |
| 美观度 | ☆☆☆☆ |
| 复杂度 | ☆☆☆ |

9、业务大图
1)矩阵式业务大图
| 图形特点 | 美观、内容丰富、承载模块多 |
|---|---|
| 使用场景 | 大型系统的描述 |
| 美观度 | ☆☆☆☆☆ |
| 复杂度 | ☆☆☆☆☆ |

二、架构图
1、什么是架构图
架构图 = 架构 + 图
1)架构定义
架构体现的是整体结构和组件之间的关系
架构是设计出来的,更是演化而来的; 架构的形成是一个不断迭代的过程,架构重构升级,以支撑业务发展; 架构模式不是固定的
| 来源 | 定义 | ||
|---|---|---|---|
| 百度百科 | 架构,又名软件架构,是有关软件整体结构与组件的抽象描述,⽤于指导⼤型软件系统各个方面的设计。 | ||
| 维基百科 | 软件架构 是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件架构会包括软体组件、组件之间的关系 | ||
ISO/IEC 42010 |
国际标准化组织(ISO)和国际电工委员会(IEC)联合发布的 《系统与软件工程 —— 架构描述》(ISO/IEC 42010:2007) 标准。 |
架构是环境中该系统的一组基础概念和属性,具体表现就是它的元素、元素之间的关系,以及设计与演进的基本原则。 | |
IEEE |
电气与电子工程师协会(EEE)对 “架构” 的定义,常见于其软件工程相关标准或文献中(如 IEEE 对软件架构的定义)。 |
架构是环境中该系统的一组基础概念和属性,具体表现就是它的元素、元素之间的 | |
TOGAF: |
开放群组(The Open Group)发布的 《TOGAF 标准》(The Open Group Architecture Framework),是企业架构领域的权威框架。 |
一个系统的形式化描述,或指导系统实现的组件级的详细计划。一组构件的结构、构件间的相互关系,以及对这些构件的设计和随时间演进的过程进行治理的一些原则和指导策略。 |
2)架构本质
下面三个观点提到的内容,基本表达了架构的核心目的:管理复杂性,效率最大化。以及架构的两个主要变化来源:一个是以改善软件质量为目的的内在结构性变化;另外一个是以满足客户需求为目的的外在功能性变化。
1、架构的本质是为了管理复杂性;
2、架构的本质就是对系统进行有序化重构,不断减少系统的“熵”,使系统不断进化;
3、架构的本质就是对系统进行有序化重构,以符合当前业务的发展,并可以快速扩展。

3)要表达的是什么

4)为什么画?

a、如果不做架构规划,会带来什么问题?
答:系统烟囱式建设,系统边界模糊扯皮现象频发,系统重复建设,标准不统一,系统之间无法集成,阻碍创新
业务架构、数据架构、应用架构和技术架构是企业架构中的四个主要架构,它们在关注的方面和功能上有所不同,但是它们是相互关联和相互支持的,共同构成了企业的总体架构。在企业中台建设中,数据架构是核心,通过对企业的数据资源进行规划和设计,可以实现数据共享和数据治理,提高数据的价值和利用效率。
一个清晰的企业架构,如此才能保证业务流程的相互运转、信息化系统合理支撑、构建步骤有条不紊。企业架构是企业进行项目决策的重要依据,同时也是支撑企业后续发展的重要基石。
4)架构图选型
通过明确目标(是展示业务、技术还是部署?)和受众(技术人员还是管理层?),可以快速选择最适合的架构图类型,避免信息冗余或遗漏关键细节。
- 业务需求阶段:优先使用 业务架构图 梳理业务流程和领域划分。
- 技术设计阶段
- 单应用设计用 应用架构图(如分层架构);
- 复杂系统用 微服务架构图 或 分布式架构图。
- 部署和运维阶段:使用 技术架构图 或 物理架构图 描述基础设施和部署细节。
| 需求场景 | 推荐类型 | 核心关注点 |
|---|---|---|
| 向客户展示业务流程 | 业务架构图(泳道图) | 角色协作、流程节点顺序 |
| 技术团队设计开发方案 | 微服务架构图 / 技术架构图 | 模块拆分、技术组件选型 |
| 规划服务器部署和网络安全 | 网络架构图 / 部署架构图 | 设备连接、网段划分、安全策略 |
| 梳理数据流动和存储方案 | 数据架构图 | 数据源、存储组件、处理链路 |
| 快速说明系统整体轮廓 | 分层架构图 / 系统架构图 | 层级划分、模块交互、外部依赖 |
三、架构分类


1、TOGAF
| 业务架构 | 战略,价值链,端到端,业务流程,业务组件,自上而下分解 |
| 应用架构 | 系统建设,系统集成,中台,自下而上抽象 |
| 技术架构 | 技术选型,框架,PaaS平台,云原生,DevOps,微服务,容器化,部署架构 |
| 数据架构 | 数据标准,数据采集加工,数据入湖,数据治理,数据共享服务,数据安全,数据质量,数据架构 |
1)业务架构图
业务架构定义了业务策略、治理、组织和关键业务过程。是企业架构的核心内容,承接了企业战略,直接决定企业战略的实现能力,是其他架构领域工作的前置条件。主要目标是根据企业战略愿景,分析业务现状,识别现有业务能力及问题,提出业务改进需求,设计目标业务架构。。
目的:根据企业战略,以价值链梳理分析业务开展流程,识别上下游依赖关系,从业务和产品的视角,描述整个平台或者产品的实现。
作用:从业务视角描述系统的业务模块、流程、角色及相互关系,帮助团队理解业务需求和边界。业务架构图描绘了一个组织如何运作的框架,包括其业务流程、关键活动、组织结构以及业务能力。
核心内容:
- 业务领域划分(如电商系统的用户、商品、订单、支付等领域)。
- 业务流程(如用户下单→库存校验→支付→物流配送)。
- 角色与职责(如用户、商家、管理员的权限和交互)。
- 示例场景:企业数字化转型前的业务规划、跨部门协作流程梳理。
a、业务架构图-1

b、业务架构图-2
内容产品业务架构图

2)数据架构图
作用:描述系统运行所需的硬件、网络、云资源等基础设施的布局和连接方式。
核心内容
- 物理设备(服务器、路由器、防火墙)。
- 网络拓扑(内网、外网、VPN 连接)。
- 云服务组件(如 EC2、S3、Kubernetes 集群)。
示例场景:数据中心架构设计、混合云(On-Premises + Cloud)部署方案。

3)应用架构图

4)技术架构图
作用:聚焦系统的技术实现,展示底层基础设施、中间件、技术栈和部署方式。
核心内容:
- 技术栈选型(如 Java/Go/Python、Spring Boot/Django 框架)。
- 中间件(如消息队列 RabbitMQ、缓存 Redis、数据库 MySQL/PostgreSQL)。
- 部署架构(如服务器、容器(Docker)、云服务(AWS/Azure/ 阿里云))。
示例场景:分布式系统的技术方案选型、云原生架构设计。

2、4R
4R架构:软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。

1)业务架构图

2)系统架构图
作用:宏观展示系统的组成部分、模块交互及外部依赖,帮助理解系统整体轮廓和边界。
核心内容:
- 内部模块:用户中心、订单中心、支付中心。
- 外部系统:物流公司 API、第三方支付接口(用虚线框表示)。
- 交互方式:HTTP 接口、文件传输(FTP)。
示例场景:
- 需求文档编写(向非技术人员说明系统结构)。
- 跨团队协作(明确系统上下游对接关系)。
a、系统架构图-1


a、系统架构-2

b、系统架构-3

c、系统架构-4

3)应用架构图

4)部署架构图

四、常见问题
1、边界
| 错误的 | 正确的 |
|---|---|
2、色彩
不超过
3个

3、可跟踪性
• 架构图版本
• 架构图的变更记录
• 比较不同版本架构图之间的不同点
• 架构图的及时更新
4、画图工具
| 工具 | 说明 |
|---|---|
draw.io |
是开源免费的在线画图工具 |
ProccessOn: |
一款优秀的国产在线协作画图软件 |
OmniGraffle |
一款在苹果系统上的画图软件 |
PlantUML |
开源的画图工具,可以用代码来画图,支持IDEA插件 |
Visio |
微软出品,以前还是十分常用的 |
Lucidchart |
一款优秀的在线协作画图软件,收费 |


