17 架构设计文档模板

0.1. 备选方案模板

0.1.1. 需求介绍

[需求介绍主要描述需求的背景、目标、范围等]

0.1.2. 需求分析

[需求分析主要全方位地描述需求相关的信息]

0.1.2.1. W

5W 指 Who、When、What、Why、Where

  • Who:需求利益干系人,包括开发者、使用者、购买者、决策者等
  • When:需求使用时间,包括季节、时间、里程碑等
  • What:需求的产出是什么,包括系统、数据、文件、开发库、平台等
  • Where:需求的应用场景,包括国家、地点、环境等,例如测试平台只会在测试环境使用
  • Why:需求需要解决的问题,通常和需求背景相关

0.1.2.2. H

[这里的 How 不是设计方案也不是架构方案,而是关键业务流程。消息队列系统这部分内容很简单,但有的业务系统 1H 就是具体的用例了,有兴趣的同学可以尝试写写 ATM 机取款的业务流程。如果是复杂的业务系统,这部分也可以独立成“用例文档”]

0.1.2.3. C

8C 指的是 8 个约束和限制即 Constraints,包括

  • 性能 Performance
  • 成本 Cost
  • 时间 Time
  • 可靠性 Reliability
  • 安全性 Security
  • 合规性 Compliance
  • 技术性 Technology
  • 兼容性 Compatibility

注:需求中涉及的性能、成本、可靠性等仅仅是利益关联方提出的诉求,不一定准确;如果经过分析有的约束没有必要,或成本太高、难度太大,这些约束是可以调整的。

0.1.3. 复杂度分析

[分析需求的复杂度,复杂度常见的有高可用、高性能、可扩展等,具体分析方法请参考专栏前面的内容]

注:文档的内容省略了分析过程,实际操作的时候每个约束和限制都要有详细的逻辑推导,避免完全拍脑袋式决策。

0.1.3.1. 高可用

0.1.3.2. 高性能

0.1.3.3. 可扩展

0.1.4. 备选方案

[备选方案设计,至少 3 个备选方案,每个备选方案需要描述关键的实现,无须描述具体的实现细节]

0.1.5. 备选方案评估

[备选方案 360 度环评。注意备选方案评估的内容会根据评估会议的结果进行修改,也就是说架构师首先给出自己的备选方案评估,然后举行备选方案评估会议,再根据会议结论修改备选方案文档]

0.2. 架构设计模板

[备选方案评估后会选择一个方案落地实施,架构设计文档就是用来详细描述细化方案的]

0.2.1. 总体方案

[总体方案需要从整体上描述方案的结构,其核心内容就是架构图,以及针对架构图的描述,包括模块或者子系统的职责描述、核心流程]

0.2.2. 架构总览

[架构总览给出架构图以及架构的描述]

0.2.3. 核心流程

0.2.4. 详细设计

[详细设计需要描述具体的实现细节]

0.2.4.1. 高可用设计

0.2.4.2. 高性能设计

0.2.4.3. 可扩展设计

[此处省略具体设计。如果方案不涉及,可以简单写上“无”,表示设计者有考虑但不需要设计;否则如果完全不写的话,方案评审的时候可能会被认为是遗漏了设计点]

0.2.4.4. 安全设计

0.2.4.5. 其他设计

0.2.4.6. 部署方案

[部署方案主要包括硬件要求、服务器部署方式、组网方式等]

0.2.5. 架构演进规则

[通常情况下,规划和设计的需求比较完善,但如果一次性全部做完,项目周期可能会很长,因此可以采取分阶段实施,即:第一期做什么、第二期做什么,以此类推]

上次修改: 10 June 2020