架构图绘制:从“CEO 套话”到“物理部署图”的实战心法

54 阅读12分钟

架构图绘制:从“CEO 套话”到“物理部署图”的实战心法

面向一线开发和准架构师,讲清架构图绘制:需求分析(系统上下文/用例模型/需求矩阵)、功能性模型(架构草图/模块关系图/时序图/ER图)、运行性模型(ALOM/LOM/POM/容灾)、架构决策/验证/服务模型与面试策略。


1. 架构师的立命之本:画实实在在的架构工件

画图才是架构师的看家本领

  • 项目管理 → 项目管理专家
  • 产品思维 → 产品经理
  • 团队管理 → 研发总监
  • 画图 → 只有架构师才具备

这一章全部是实战:在 PowerPoint 里手画图,不一定精,但思想和思路要清晰。


2. 实战项目:点播平台媒资系统

2.1 CEO 的话(业务战略)

第一句:我要用全新的热门技术(分布式、NoSQL、对象存储),全部冲刷原有的企业软件资产,整个领域焕然一新。

第二句:我要建立一个数字化、网络化、自动化、高效率的节目制作、采编、播存管发布一体系统。

第三句:我要打造一个全方位的音视频资料服务业务平台。

理解:媒资平台 = 多媒体资料管理 = 存储 + 管理 + 转换 + 编目 + 发布

2.2 CTO 的话(系统目标)

原有系统:收入平台、转码平台、迁移系统、检索系统

整合目标

  • 存储数字化
  • 编目(索引获取,方便检索)
  • 素材转码
  • 素材发布(推送到用户终端或 CDN)

业务流:把原来的工作模式和操作模式全取代,满足业务快速更新迭代需求。


3. 需求分析:系统上下文 + 用例模型 + 需求矩阵

3.1 系统上下文图(System Context)

系统:媒资管理系统(大圆圈,黑盒)

外部用户/系统

  • 外部内容供应商:提供内容上传
  • 独立内容提供者:UGC 用户生成内容上传(抖音、B站 up 主、斗鱼直播)
  • 系统管理员:管理基础架构和平台软件
  • 媒资管理员:编目(描述视频内容、上传人、时间、关键词)
  • 版权和内容审核系统:反黄反暴力、版权审核
  • 内容发布代理:CDN、运营商缓存、内容转发频道
  • 内容制作岛:非线性编辑、编解码处理(小媒资,一期不做)

关键点:系统上下文描述系统跟外面系统/用户的关系,是后续用例图的前置条件。

3.2 用例模型(Use Case Model)

媒资管理员用例(举例):

  • UC14:分配编目任务
  • UC15:增加编目(快速浏览视频、分类、写特征、编目时间、主角名字、上传时间、敏感内容标记)
  • UC16:内容审核(人工审核)
  • UC17:编目管理(修改编目、标签更替)
  • UC18:视频抽样(降低带宽,适用于手机平台)
  • UC19:视频转码(传统格式 → MP4 等快速播放格式)
  • UC20:模糊化处理(隐私保密)
  • UC21:水印管理(平台版权声明)

用例详细描述(表格形式):

  • 用例编号、用例功能、用例目标、用例详细内容(文字 + 图片)

关键点

  • 用例模型描述系统要实现多少个 What 才能满足要求
  • 每个用例必须有触发源(外围系统/外围用户)
  • 没有触发源的需求不是真正的需求

3.3 需求矩阵

功能性需求矩阵(FR)

  • FR01:API 标准化(所有数据上传、迁移、下载、编目、搜索功能支持 API 接口)
  • FR02:自动化编目索引和检索(快速上传、编目、快编、非编、检索虚拟化和自动化)
  • FR03:非结构化编目索引和检索(类似百度识图,通过视频哈希/MD5 匹配,自动导出编目信息)

非功能性需求矩阵(NFR)

  • NFR01:安全性(用户认证授权、数据加密传输、零信任模型、密钥每月更换、只识别最新两个密钥)
  • NFR02:可靠性(网络抖动秒级处理、运营商网络崩溃切换、集群、数据备份、容灾)
  • NFR03:先进性(符合未来趋势的数据存储业务管理方式,领先竞争对手 3-5 年技术水平)

关键点

  • 用例描述要详细(少于 50 个用例可能有问题)
  • 需求矩阵重点指引架构验证(不用太详细,但右边可以有很多细节)

4. 功能性模型:架构草图 + 模块关系图 + 时序图 + ER 图

4.1 架构草图(AOD:Architecture Overview Diagram)

两种画法

1. 偏用户交互式

  • 内容供应商 → 数据导入 → 素材分离 → 媒资包存储(视频、音轨、海报、字幕、元数据)→ 数据分发 → 终端用户
  • 制作岛:非线性编辑、特效处理、视频合成、渲染、转码

2. 偏逻辑分层式

  • 用户层 → 应用层 → 网络层 → 中间件层 → 数据库层

关键点:怎么快怎么来,可以在后续过程中不停补充、更新。

4.2 模块关系图(Component Relationship Diagram)

认证登录子系统例子

  • 外部服务(Web Service,API)
  • 认证登录应用服务器(核心应用服务)
  • 目录服务(LDAP/AD)
  • 数据服务(审计日志)

关系:Use(调用关系)

4.3 时序图(Sequence Diagram)

工具:WebSequenceDiagrams.com 或 webchart.ihuha.cn

新用户注册流程

  1. 客户 → Web 服务:访问
  2. Web 服务 → 认证登录应用服务器:注册
  3. 认证登录应用服务器 → 目录服务:新建用户
  4. 目录服务 → 认证登录应用服务器:完成(虚线回复)
  5. 认证登录应用服务器 → 数据服务:更新记录
  6. 数据服务 → 认证登录应用服务器:完成(虚线回复)
  7. 认证登录应用服务器 → Web 服务:注册成功
  8. Web 服务 → 客户:新用户创建完成

串行 vs 并行

  • 串行(大闸蟹从头串到底):目录服务 → 数据服务(增强耦合,不好)
  • 并行:认证登录应用服务器 → 目录服务 + 数据服务(解耦,好)
  • 尽量采用并行,而不是全部串行

4.4 数据逻辑模型(ER 图)

媒资库(对象存储)

  • 内容:视频 + 音轨(一个对象,原数据媒资 ID + 内容)
  • 原数据:海报、字幕、弹幕、评论、制作者、人物、创建时间、哈希编码、关键帧哈希

媒资索引(Elasticsearch)

  • 所有内容作为字段(除了视频和音频),每条记录是一个文档
  • 关键词匹配、通配符搜索

关系:一一对应(一条索引对应一个对象存储的媒资内容)


5. 运行性模型:部署单元拆分 + 架构转换

5.1 部署单元拆分(DU:Deployment Unit)

四大部署单元

  • 展现单元(U):用户界面
  • 执行单元(E):运行管理、入库接口、下载接口、存储管理、编目、检索、入库、下载、转码、水印、模糊化、抽样、工作流、生成索引
  • 数据单元(D):媒资操作记录、存储操作记录、索引、媒资库、工作流规则、对象存储、归档存储
  • 安装单元(I):搜索引擎安装、容器编排工具、消息队列

关键点:不是所有模块都要拆解成四个单元,有些模块只对应一个单元。

5.2 架构转换:三步走(乐高积木)

第一步:应用逻辑运行模型(ALOM:Application Logical Operational Model)

关键点

  1. 定义场景和边界(数据中心、互联网、合作伙伴、总部)
  2. 摆放节点(ALN1-13:界面、运行管理、数据库、进出库、存储管理、编目、搜索、转换、工作流、容器编排、消息队列、对象存储)
  3. 连通节点(网络连线)

实战例子

  • 数据中心:媒资系统节点
  • 互联网:独立内容提供者、内容发布代理
  • 合作伙伴:外部内容供应商
  • 总部:用户认证、版权系统、媒资管理员、系统管理员

第二步:逻辑运行模型(LOM:Logical Operational Model)

增加技术元素

  • DMZ 区:界面、蜜罐系统、防火墙
  • 主数据中心:时间同步服务、负载均衡器、监控、运维管理、仲裁系统

关键点

  • 从 ALN(应用逻辑节点)→ LN(逻辑节点)
  • 增加技术组件(防火墙、蜜罐、负载均衡、时间同步)
  • 网络划分(DMZ、主数据中心、安全区、保密总线区)

第三步:物理运行模型(POM:Physical Operational Model)

物理节点替换

  • PN1 容器计算节点:5 台高密度计算节点机柜(每台 200 个刀片,共 1000 个节点,数万个容器)
  • PN2 管理节点:6 台中小型服务器(时间同步、容器编排、ETCD)
  • PN3 对象存储:5 套小型机 + 2 台高端光纤交换机 + 10 台存储服务器(在线数据百 PB)+ 3 套大型带库(离线数据上千 PB)
  • 负载均衡器:一对最高端硬件负载均衡器
  • 防火墙、蜜罐:实际设备图标
  • 界面服务器:6 台服务器

关键点

  • 忽略部署单元(在 LOM 上达到最高潮)
  • 重点看节点摆放、互通、高性能、高质量、高安全
  • 采用真实图标、设备型号、名称

5.3 容灾多活

双数据中心

  • 主数据中心:生产中心
  • 灾备中心:灾难备份中心

容灾机制

  • 应用服务器:无状态,准双活快速切换
  • NoSQL(MongoDB):Mongo Shake 异地容灾
  • 对象存储:企业级光纤链路复制总线(实时复制,半秒到 1 秒延迟)
  • 带库:企业级带库具有复制功能、容灾恢复功能

网络

  • 千兆/万兆以太网直通
  • 光纤链路直通(SAN 网络)
  • 专有网络、互联网访问

6. 架构决策 + 验证 + 服务模型

6.1 架构决策

架构决策目录

  • 范畴(存储层、应用层等)
  • 决策编号、决策内容

架构决策记录(ADR)

  • 问题、假设、选项、结论、理由、决策过程

例子(存储层):

  • 决策一:在线存储用分布式文件系统还是对象存储?→ 选择对象存储(支持 API、直接放原数据)
  • 决策二:归档文件用传统带库还是新型磁盘性存储?→ 选择带库(价格原因)

6.2 架构验证(RAID)

R:Risk(风险)

  • 风险编号、风险描述、概率、影响、执行策略
  • 例子:Elasticsearch 不同语言分词问题(小语种找不到插件)→ 开发分词引擎插件

A:Assumption(假设)

  • 假设编号、假设内容、确认状态

I:Issue(问题)

  • 问题编号、问题描述、解决方案

D:Dependency(依赖)

  • 依赖编号、依赖内容、减少依赖策略

6.3 服务模型(乙方架构师)

内容

  • 服务承诺、时间点、技术方案(对象存储百 PB、服务器带宽、分布式容器化)
  • 运行成本、采购成本、SLA
  • 优势和价值
  • 目标用户

7. 完整流程总结

第一步:业务战略确定(CEO、CTO 访谈)

第二步:行业标准调研(架构资产输入)

第三步:当前 IT 了解(调研表、访谈、架构资产)

第四步:系统上下文图

第五步:用例模型(黑盒变白盒)

第六步:架构资产找出(方法论资产)

第七步:非功能性需求分析(非功能性需求矩阵)

第八步:架构草图

第九步:功能性模型(模块关系图、时序图、ER 图)

第十步:运行性模型(ALOM → LOM → POM)

伴随全过程

  • 架构决策(架构决策目录 + ADR)
  • 架构验证(RAID)
  • 服务模型(乙方)

8. 面试实战:现场画图

8.1 第一题:画一下你设计过的系统的模块架构图

要点

  • 从架构草图开始,细化成模块
  • 领域驱动设计或分层思路
  • 模块关系图 + 时序图(挑一两个用例)

拿高分

  • 结合实例:为什么这样拆分?为什么这样设计?
  • 交互图:A 调 B 调 C 调 D vs A 调 B、A 调 C、A 调 D(耦合度不同)
  • 为什么这样选?有什么好处?做了什么牺牲?

8.2 第二题:画一下你设计过的系统的架构部署图

要点

  • ALOM、LOM、POM
  • 从功能逐步增加非功能,最后形成部署

拿高分

  • 结合行业、熟悉的架构设计
  • 为什么在这个环节加入这些技术组件(中间件、容器化、时间同步、用户管理、安全)
  • 考虑到什么限制,做了什么产品选型
  • 物理部署形式(异地容灾、双活、多活)

8.3 第三题:你如何组织和技术架构决策?

要点

  • 组织方式:JAD(联合架构决策)或 ARB(架构评审委员会)
  • 工件:RAID、架构决策记录、架构验证工件

拿高分

  • 横向完整(方法论)+ 纵向深入(挑一两个点,如 Risk)
  • 风险分析越透彻,越能体现架构师经验
  • 当场写出架构决策工件框架、RAID 表格
  • 举实例:如何决策、出现什么风险/问题/依赖、如何处理、如何成功上线

9. 总结:从需求到落地的完整流程

需求分析

  • 系统上下文图 + 用例模型 + 需求矩阵

功能性模型

  • 架构草图 + 模块关系图 + 时序图 + ER 图

运行性模型

  • 部署单元拆分 + ALOM → LOM → POM + 容灾多活

伴随全过程

  • 架构决策 + 架构验证(RAID)+ 服务模型

关键:通过架构立方体,从需求到功能到运行,一步步把架构图画清楚,最终实现可落地的架构和系统。


10. 延伸思考

  • 挑选一个复杂的架构项目,用新学到的架构图思路重新画图
  • 从需求到落地,架起漂亮的桥梁(不一定要金门大桥,小木桥也可以)
  • 简洁快速地把需求落地实现
  • 比较最新版架构图和之前版本,看看有没有长足进步

把架构师的基本功练扎实,把匠心精神练出来。