一张技术架构图看起来可能只是方框、箭头和技术名称,真正困难的部分却是确定“为什么画、画到哪一层、哪些关系值得被看见”。如果没有明确读者和决策,图很容易变成技术栈清单:组件很多、颜色漂亮,却无法判断接口边界、数据归属、故障影响和部署可行性。
技术架构图绘制应先明确读者和技术决策,再划定系统边界,按接入、应用、数据、基础设施与横切能力分层,标注组件职责、接口协议、同步或异步关系、部署位置、信任边界和关键约束,最后用正常、故障与变更场景校验。
一、技术架构图是什么?它具体解决什么问题
技术架构图是对软件系统技术实现的结构化表达。它展示应用、服务、数据存储、中间件、基础设施与外部系统的边界和关系,并补充接口协议、运行环境、安全区域及关键质量约束。它的价值不是“把系统画出来”,而是让研发、运维、安全和架构评审人员使用同一份技术语言讨论方案。
技术架构图通常要回答四个问题:系统由哪些技术组件组成;每个组件负责什么;组件如何通信和交换数据;组件在哪里运行以及受到哪些约束。缺少任何一项,图都可能只能用于介绍,而无法用于评审或实施。
| 图表类型 | 主要回答 | 典型读者 | 不应过度展开 |
|---|---|---|---|
| 系统架构图 | 系统边界、应用组成、业务能力与总体关系 | 业务、产品、研发负责人 | 每个技术组件和实例 |
| 技术架构图 | 技术分层、组件、接口、数据、部署与约束 | 架构师、研发、运维、安全 | 类和代码实现细节 |
| 应用架构图 | 应用系统如何支撑业务能力及相互集成 | 企业架构、产品、应用负责人 | 底层网络和节点规格 |
| 部署架构图 | 软件单元运行在哪里,如何隔离、扩缩容和恢复 | 运维、SRE、安全 | 与部署无关的业务流程 |
如果需要先建立整体系统视角,可参考系统架构图绘制步骤。
二、动手前先确定读者、决策和系统边界
技术架构图没有脱离场景的“标准答案”。面向研发评审,组件职责和接口协议必须清楚;面向运维评审,部署区域、容量和故障恢复更重要;面向安全评审,则要突出身份、数据路径与信任边界。开始绘图前先写一段不超过三行的图表任务说明:
- 读者:谁是主要读者,谁只提供补充意见。
- 决策:读者看完要批准、比较或修改什么。
- 范围:图中包含哪些系统和环境,明确排除哪些内容。
例如:“供研发、运维和安全评审新订单平台;决定服务边界、通信方式、数据归属和生产部署;包含订单、库存、支付接入与运行基础设施,不展开第三方支付内部实现。”这段说明能直接约束后续层级与细节。
三、技术架构图常见分层:从接入到基础设施
分层是组织信息的方法,不是必须套用的标准。多数互联网应用可以从以下六组能力开始,再按真实系统删减或调整:
| 层或分区 | 常见内容 | 图中要表达的重点 |
|---|---|---|
| 用户与接入层 | Web、移动端、开放接口、网关、负载入口 | 入口、身份、流量方向和外部边界 |
| 应用与领域层 | 应用、领域服务、后台任务、规则引擎 | 职责、服务边界、依赖方向 |
| 集成与通信层 | API、消息队列、事件总线、第三方适配 | 协议、同步/异步、重试与幂等 |
| 数据层 | 关系数据库、缓存、对象存储、搜索与分析 | 数据所有者、读写方向、复制和保留 |
| 基础设施与部署层 | 主机、容器、集群、网络区域、云服务 | 运行位置、隔离、扩缩容与容灾 |
| 横切能力 | 身份权限、配置、日志、指标、追踪、密钥 | 哪些组件受统一治理,责任由谁承担 |
层级之间不一定只能从上到下调用。例如事件驱动架构可能通过消息在多个业务域之间协作。此时应优先表达发布者、事件、消费者和数据一致性约束,而不是强行画成传统分层。若正在比较分层、微服务或事件驱动等组织方式,可先阅读常见软件架构风格与适用场景。
四、组件、接口和连接线应该怎样标注
技术架构图是否专业,通常不取决于用了多少图标,而取决于命名和关系是否可验证。每个组件至少应包含“名称+类型+职责”,例如“订单服务|应用服务|负责订单生命周期”,而不是只写“Order”。
组件:用职责定义边界
应用、服务、数据库、缓存、队列和外部系统应使用不同类型或清晰标签。一个组件如果无法用一句话说清职责,可能边界过大、过碎,或只是把技术产品名误当成了架构职责。
接口:写明方向、动作和协议
连接线不要只写“调用”或完全不标注。推荐使用“提交订单|HTTPS/JSON|同步”“发布订单已创建事件|消息主题|异步”等格式。关键链路还应注明超时、重试、幂等或版本约束。
数据:明确所有者和读写关系
共享数据库往往会隐藏耦合。图中应标明哪个服务拥有数据、其他服务通过接口读取还是直接访问、敏感数据经过哪些边界,以及备份、复制和保留策略由谁负责。
图例:保持符号和抽象层级一致
颜色、线型和边框必须有稳定含义,并在图例中解释。不要在同一层同时放“支付系统”“支付服务”“某个类”和“某台服务器”,这会把系统、组件、代码和部署四个抽象层级混在一起。
五、技术架构图怎么画?8个可执行步骤
下面的流程适合从零绘制,也适合改造一张已有但难以评审的技术架构图。每一步都有可检查的产出,避免直接进入美化阶段。
步骤1:确定读者与要做的技术决策
写明主要读者、评审目标以及看完图后要决定的问题。例如确认这张图是为了确定服务拆分、技术选型、生产部署,还是安全整改;目标不同,图中细节也不同。
步骤2:划定系统边界和外部依赖
列出图中包含与排除的系统、用户、第三方服务和基础设施边界。先画外部参与者和系统边界,再展开内部。被排除的内容可以用一句注释说明,避免读者误以为遗漏。
步骤3:建立组件清单和职责
为每个应用、服务、数据库、队列或网关写一句可验证的职责。清单应覆盖应用、服务、数据存储、消息设施、外部接口和基础设施。暂时不确定的项标记为“待确认”,不要凭空补齐。
步骤4:选择分层或分区方式
按接入、应用、集成、数据、基础设施或业务域组织组件,保持抽象层级一致。分组应帮助读者理解责任和依赖。层之间、业务域之间或安全区域之间的边界要有一致视觉表达。
步骤5:标注接口、协议和数据流
在关键连接线上写明动作、方向、协议、同步或异步方式及主要数据。先画三到五条最关键链路,再逐步补充。正常请求、异步事件和批量数据同步可用不同线型,但必须有图例。
步骤6:映射运行环境与部署关系
说明组件运行位置、网络区域、实例关系、扩缩容和容灾边界。逻辑组件与部署节点应能对应。需要说明生产环境时,再加入区域、可用区、集群、实例和网络分区,避免把所有环境堆在主图。
步骤7:补充非功能约束与取舍
记录可靠性、安全、性能、成本、可观测性和合规要求及其设计依据。把质量目标转成可讨论的问题,例如故障是否隔离、入口如何鉴权、容量如何扩展、监控是否覆盖关键链路,而不是只写“高可用”。
步骤8:用场景走查并形成版本
分别验证正常、故障和变更场景,记录负责人、适用版本和待确认项。让团队沿关键链路讲述一次完整请求,再演练依赖超时、消息重复、数据库不可用和版本升级。无法讲通的位置就是下一轮修改任务。
如果需要快速建立画布,可从架构图模板与示例开始,但模板只负责结构起点,组件、接口、数据与约束必须替换为真实信息。
六、逻辑、运行时和部署视角怎样保持一致
C4 Model把系统上下文、容器、组件和代码作为不同缩放层级,并补充动态与部署图。实务中不需要画齐所有视角,更有效的做法是建立“最少充分图集”:用少量相互关联的图回答不同问题。
| 视角 | 回答的问题 | 建议内容 | 校验方式 |
|---|---|---|---|
| 逻辑技术视角 | 有哪些组件,职责和依赖是什么 | 应用、服务、数据、外部依赖、接口 | 职责是否清楚,是否存在循环依赖 |
| 运行时视角 | 一个场景实际如何执行 | 请求、事件、顺序、失败分支 | 正常与异常链路是否能完整讲述 |
| 部署视角 | 组件在哪里运行和怎样恢复 | 环境、节点、网络、实例、区域 | 是否存在单点,逻辑组件能否映射 |
三种视角应共享组件名称和编号。例如逻辑图中的“订单服务 S1”,在运行时图和部署图中仍使用 S1。这样既避免一张巨图承载所有细节,也能让读者跨图追踪同一对象。
七、示例:订单系统技术架构图怎样拆解
以下是用于说明方法的简化示例,不代表任何真实生产系统。假设读者要评审订单创建、库存预占和支付接入,可按以下结构组织:
- 接入:用户端经网关进入订单接口,网关负责统一鉴权和流量入口。
- 应用:订单服务拥有订单生命周期;库存服务拥有库存可用量;支付适配器隔离第三方差异。
- 通信:创建订单使用同步接口,订单状态变化发布事件;连接线上注明协议与超时策略。
- 数据:订单库和库存库分别由对应服务拥有,其他组件不直接跨库读写。
- 部署:服务实例、数据库、消息设施与外部支付分别位于明确网络边界,并标出入口和监控。
随后至少走查三条路径:正常下单;库存服务超时;支付回调重复。第一条验证功能链路,第二条暴露重试、降级与一致性问题,第三条检查幂等与状态转换。通过场景验证,架构图才从“静态结构”变成可评审的工程模型。
若方案采用微服务,还应专项检查服务边界、网关、同步调用、消息、数据所有权与故障传播,可参考微服务架构图绘制方法。
八、把非功能需求转成图上的工程约束
“高性能、高可用、高安全”无法直接指导设计。更可靠的表达方式是把质量目标转成可以定位、询问和验证的约束。AWS Well-Architected从运营、安全、可靠性、性能效率、成本优化和可持续性等维度评审架构;这些维度可以作为提问框架,而不是照搬云产品。
| 质量维度 | 图中可见内容 | 评审问题示例 |
|---|---|---|
| 可靠性 | 冗余、故障域、队列、降级与恢复路径 | 单个依赖不可用时,影响会传播到哪里? |
| 安全 | 身份入口、信任边界、敏感数据和密钥服务 | 跨边界调用如何认证、授权和审计? |
| 性能 | 缓存、异步处理、热点路径和容量边界 | 高峰流量的瓶颈在哪里,如何扩展? |
| 可运维性 | 日志、指标、追踪、告警和发布单元 | 出现故障时能否定位到组件和请求链路? |
| 成本 | 主要资源、数据传输和冗余策略 | 可靠性收益是否匹配资源与维护成本? |
| 演进性 | 稳定接口、依赖方向、版本与替换边界 | 替换一个组件会影响多少调用方? |
重要约束最好放在相关组件旁,而不是全部堆在图角落。例如“RTO 30分钟”应与对应系统或数据恢复路径关联;如果数字尚未确认,就明确写“RTO待业务确认”,不要虚构精确指标。
九、技术架构评审:用正常、故障和变更场景走查
仅检查图形是否完整,很难发现真实问题。建议让组件负责人按三类场景沿箭头讲述系统:
正常场景:验证职责和主链路
选择最重要的用户请求或数据处理过程,从入口讲到最终存储或外部结果。每条连接都应能说明发起方、接收方、动作、协议和主要数据。
故障场景:验证隔离和恢复
依次假设第三方超时、数据库不可用、消息重复、网络分区或某个实例故障。检查超时、重试、熔断、幂等、降级和人工恢复由谁承担。
变更场景:验证耦合和演进成本
假设接口升级、服务拆分、数据迁移或部署区域调整,观察哪些组件必须同时变更。修改范围过大通常说明边界、数据所有权或接口契约需要重新评估。
- 主要读者和评审目标已注明
- 系统边界及排除范围清楚
- 每个组件都有类型和职责
- 抽象层级保持一致
- 关键连接有方向和动作
- 协议及同步/异步方式明确
- 数据所有者和读写关系清楚
- 外部依赖与信任边界可见
- 逻辑组件可映射到部署节点
- 不存在未说明的关键单点
- 质量约束有依据或待确认标记
- 负责人、版本和核验日期可追溯
十、技术架构图最常见的7个错误
- 画成技术栈海报:只列框架和产品名称,没有职责、关系与决策。
- 一张图塞入所有细节:系统、组件、代码和服务器实例混在一起,任何读者都看不清。
- 箭头没有语义:不知道是请求、事件、读、写、同步还是异步。
- 只画正常流程:忽略超时、重试、重复消息、降级和恢复。
- 数据没有所有者:多个服务直接共享存储,耦合被图形布局隐藏。
- 使用模糊质量词:只写“高可用”或“高性能”,没有目标、边界和验证方法。
- 发布后不再维护:代码、接口和部署已经变化,图仍被当作现状依据。
解决这些问题的顺序应该是先改语义,再改布局。先让组件、关系和约束可验证,最后才统一颜色、间距和视觉样式。
十一、在Boardmix中绘制、协作与持续维护
可以先在Boardmix中建立系统边界和分层框架,再拖入组件、使用连接线标注关键关系,并通过对齐和分组保持结构清晰。团队评审时,将待确认项放在相关组件旁,通过评论记录问题和责任人,避免反馈脱离图表上下文。
建议给每张图增加四项维护信息:负责人、适用系统版本、最后核验日期和变更原因。重大方案保留版本快照;接口、服务边界、数据归属或部署关系变化时同步更新。这样,技术架构图才会成为持续可信的团队资产,而不是一次性汇报材料。
让架构图与决策记录相互引用
技术架构图适合呈现结构和关系,却不适合塞入完整的决策背景。对于“为什么使用异步消息”“为什么按业务域拆分”“为什么选择单区域或多区域”等关键取舍,可以单独建立架构决策记录,并在图中使用简短编号关联。决策记录写明问题、候选方案、选择依据、已知代价和重新评估条件;架构图则展示这个决策最终改变了哪些组件、连接或部署边界。
这种双向引用对长期维护尤其重要:读者从图上看到一个不直观的结构时,可以追溯当时的约束;当容量目标、合规要求或团队能力发生变化时,也能依据重新评估条件判断是否需要改图。不要只记录“选择了什么”,还要记录“放弃了什么以及为何放弃”,否则后续团队很容易重复已经讨论过的方案。
建立轻量的变更触发规则
可以把更新责任嵌入日常流程:新增外部依赖、拆分或合并服务、改变接口协议、迁移数据所有权、调整生产网络或容灾范围时,把“核对技术架构图”加入变更清单。小改动更新当前版本,影响系统边界或关键质量属性的改动则保留评审快照。这样既不需要为每次代码提交改图,也能避免图和真实系统长期漂移。
AI可以帮助整理组件清单、生成候选图和改善布局,但必须显式标记未知项,并由团队校验真实边界和约束。需要这类流程时,可使用AI生成系统架构图教程;选择具体软件前,也可对比架构图工具的绘图与协作能力。
十二、技术架构图常见问题
技术架构图和系统架构图有什么区别?
系统架构图更强调系统边界、业务能力、应用组成与关键关系;技术架构图更深入技术实现,重点表达技术分层、组件职责、接口协议、数据归属、部署位置和非功能约束。两者可以共享术语,但应分别服务于不同评审问题。
技术架构图应该画多细?
细节由读者和决策决定。能回答当前评审问题即可,不必把类、表字段、每台服务器和所有调用都放进一张图。一般先画系统边界和主要组件,再为争议较大的模块补充组件图、动态视图或部署视图。
技术架构图必须按固定层级绘制吗?
不必。接入、应用、数据和基础设施是常见起点,但业务域、事件流或部署区域也可以成为主分组。分层的目的在于暴露职责和依赖,而不是追求形式统一。
技术架构图多久更新一次?
不建议只按固定周期更新。新增或拆分服务、接口协议变化、数据所有权调整、部署拓扑变化以及安全边界变化时,都应同步修订;架构评审和重大版本发布前还应做一次完整核验。
AI可以直接生成技术架构图吗?
AI适合根据结构化需求生成候选组件、初稿和不同视角,但不能替代真实技术决策。生成后仍需人工核对系统边界、依赖方向、数据归属、故障路径、安全约束和部署可行性。
十三、参考资料与核验说明
架构设计延伸阅读

