被领导嫌弃?从零开始画出专业级系统架构图的完整指南

系统架构图怎么画,不会画架构图被领导嫌弃,从零开始画出专业级系统架构图的完整指南,

系统架构图

不会画架构图被领导嫌弃?从零开始画出专业级系统架构图的完整指南

场景:周一早会,你打开PPT展示系统架构图,领导皱着眉头说"这图画的是啥?重画。"——如果你经历过这种社死时刻,这篇文章就是写给你的。

一、先搞清楚:架构图不是画给技术人看的

很多人画架构图的第一个错误,就是站在技术视角自嗨。

你画了一堆 Kafka 集群、Redis 哨兵模式、Nginx 负载均衡,技术同事看了频频点头,但领导和业务方一脸懵——他们只想知道:这个系统解决了什么问题?花了多少钱?有没有风险?

架构图的第一个原则:先确定读者。

读者类型他们想看什么你该画什么
技术负责人系统边界、技术选型、数据流向完整技术架构,含中间件和基础设施
业务方/产品业务能力、功能边界业务架构图,按业务域划分
领导/老板投入产出、风险点、核心能力精简版,突出核心链路和关键指标
新入职同事快速理解系统全貌分层架构,从上到下逐层展开

一个实战建议:同一套系统,准备三张图——给领导的看"价值",给技术的看"细节",给新人的看"全景"。别试图用一张图讨好所有人。

二、架构图的标准分层结构

一张专业级架构图,通常包含 4-5 层,从上到下依次是:

分层时的三个坑

坑1:层次太多。 超过5层,图就没人看了。如果系统确实复杂,拆成多张图,而不是一张图塞满。

坑2:跨层连线。 接入层直接连数据层?说明你的应用层形同虚设。每一条跨层连线都意味着架构设计有漏洞。

坑3:层次混乱。 把消息队列放在数据层还是应用层?取决于它的角色——如果是业务逻辑的一部分(如订单异步处理),放应用层;如果是纯基础设施(如日志收集),放基础设施层。

三、形状和连线:别乱用,它们有固定语义

架构图里每个形状都有明确含义,乱用会让内行一眼看出你不专业。

3.1 常用形状语义

形状含义使用场景
矩形模块/服务/组件微服务、功能模块
圆角矩形外部系统/第三方支付网关、短信平台
圆柱体数据存储数据库、缓存、消息队列
菱形判断/决策节点流程图中的分支
云形外部网络/互联网用户接入、CDN
箭头线数据流向/调用关系A调用B,数据从A到B
虚线异步/间接关系事件通知、异步消息
双向箭头双向同步数据库主从同步

3.2 连线规范

最重要的一条:连线不是装饰品,每一条线代表一个承诺。

  • 同步调用用实线箭头
  • 异步消息用虚线箭头
  • 双向同步用双向实线
  • 不要画交叉线——如果两条线交叉,说明布局有问题,重新排列

实战技巧:画完之后,给每条线标注协议和频率(如"HTTP/REST,QPS 500"),让看图的人立刻知道这条链路的负载情况。

四、颜色规范:三色克制原则

架构图不是调色盘。颜色越多,信息越混乱。

4.1 三色法则

角色建议颜色用途
主色蓝色系核心业务模块、主链路
对比色橙色/红色异常链路、风险点、重点标注
中性色灰色系基础设施、辅助模块

为什么不用更多颜色? 因为颜色的唯一作用是控制视觉权重。你需要让读者第一眼看到核心模块,第二眼看到异常点,第三眼看到基础设施。三色足够了。

4.2 颜色使用的反面教材

  • 用红色标注正常模块(读者会误以为是风险)
  • 用绿色标注数据库(和实际语义冲突)
  • 五颜六色像彩虹(视觉噪音,找不到重点)
  • 背景用深色(打印出来全是黑块)

五、画图工具选择:在线绘制 vs 本地软件

5.1 在线画图工具推荐

工具免费程度适合画什么优势劣势
Draw.io (diagrams.net)完全免费架构图、流程图、网络拓扑开源、无广告、支持离线界面略简陋
Excalidraw完全免费手绘风格架构图、白板脑暴手绘风格、适合早期讨论不适合正式文档
ProcessOn免费版够用各类图表中文友好、模板丰富高级功能需付费
墨刀免费版够用产品原型、交互设计组件库丰富、上手快偏原型设计
Figma免费版够用UI设计、高保真图表协作能力强学习成本较高
Canva免费版够用演示型架构图模板精美、配色专业不适合复杂架构

5.2 选工具的三个原则

  1. 看场景选工具:内部讨论用 Excalidraw(手绘风格降低正式感,方便修改);正式文档用 Draw.io(导出清晰、格式规范);给领导汇报用 Canva(颜值高、配色专业)。
  1. 看团队选工具:如果团队需要多人协作,优先选支持实时协作的(Figma、ProcessOn);如果只是个人使用,Draw.io 完全够用。
  1. 别迷信付费工具:90%的架构图需求,免费工具都能满足。付费工具的优势在于模板和协作,不是画图能力本身。

六、从零画一张架构图:完整实操步骤

以一个"电商订单系统"为例,手把手走一遍流程。

Step 1:列出所有模块

先在纸上或文档里列出系统涉及的所有模块:

  • 用户端(APP、Web)
  • API网关
  • 订单服务、商品服务、用户服务、支付服务
  • 消息队列(Kafka)
  • MySQL(订单库、商品库、用户库)
  • Redis(缓存)
  • ES(搜索)
  • 监控系统

Step 2:分层归类

把模块归入对应层级:

  • 接入层:APP、Web、API网关
  • 应用层:订单服务、商品服务、用户服务、支付服务
  • 数据层:MySQL × 3、Redis、ES
  • 基础设施层:Kafka、监控系统

Step 3:画框架,先摆位置

打开 Draw.io,先画4个横向分层区域,把模块摆进去。这一步不要画线,只管位置和层次。

Step 4:连线,标注关系

从上往下连:

  • APP/Web → API网关(实线箭头,HTTP)
  • API网关 → 各服务(实线箭头,HTTP/REST)
  • 订单服务 → MySQL订单库(实线箭头,JDBC)
  • 订单服务 → Kafka(虚线箭头,异步消息)
  • Kafka → 支付服务(虚线箭头,异步消费)
  • 各服务 → Redis(实线箭头,缓存读写)
  • 各服务 → 监控系统(虚线箭头,指标上报)

Step 5:调色,控制视觉权重

  • 订单服务(核心):蓝色填充
  • 支付服务(风险点):橙色边框
  • 其他服务:浅灰色
  • 基础设施:白色+灰边

Step 6:标注关键信息

在关键连线上标注:

  • 协议类型(HTTP、gRPC、MQ)
  • 调用频率(QPS 500)
  • 数据量级(日均10万订单)

Step 7:写一句话总结

在图的最上方或最下方写一句话:"用户下单 → 订单服务落库 → 异步通知支付 → 支付完成回调更新订单状态。核心链路3个节点,支付环节为高风险点。"

如果你写不出这句话,说明你自己都没想清楚系统全貌。

七、架构图自检清单

画完之后,用这份清单逐项检查:

  • 确定了读者是谁?图的内容是否匹配读者需求?
  • 层次是否在5层以内?超过的考虑拆分多张图
  • 每个形状的语义是否正确?圆柱体只用于存储?
  • 有没有交叉线?有的话重新排列布局
  • 同步用实线,异步用虚线,双向用双箭头?
  • 颜色是否在3种以内?主色/对比色/中性色是否各司其职?
  • 关键链路是否标注了协议和频率?
  • 能不能用一句话总结这张图的核心信息?
  • 给一个不懂技术的人看,他能不能30秒内理解核心链路?

八、总结

架构图不是"画得好看"就行,它的本质是信息翻译——把复杂的系统逻辑,翻译成不同受众能快速理解的视觉语言。

记住三句话:

  1. 先想清楚给谁看,再动手画。
  1. 连线和颜色都有语义,不是装饰品。
  1. 如果你不能一句话总结这张图,说明你还不够理解这个系统。

好的架构图,是花10分钟想清楚,5分钟画出来。而不是花1小时画了一堆框框,最后自己都看不懂。


发布平台:星程· Singcheng