45 分钟架构演进白板模板¶
30 秒版(开场)¶
架构白板常给 开放式业务场景(设计 IM / 外卖 / 企业知识平台),45 分钟练习 澄清 → 估算 → MVP → 扩展 → 非功能 → 演进。本模板整合 03 系统设计 单场景能力,形成 完整叙事;不是新知识点,而是 白板交付结构。
3 分钟版(精讲深度)¶
- 是什么:可复用的白板时间盒与话术,展示 Staff/架构师级结构化思维。
- 为什么:架构实践者差在「散点懂很多,45min 讲不完整」;本模板是 架构师岗必练。
- 怎么做:按下面 7 段推进,每段留 3~8 分钟,留 5 分钟 Q&A。
10 分钟版:45 分钟时间盒¶
flowchart LR
A[0-5 澄清] --> B[5-10 估算]
B --> C[10-20 MVP]
C --> D[20-28 扩展]
D --> E[28-35 非功能]
E --> F[35-40 演进路线图]
F --> G[40-45 Q&A]
第 1 段:澄清需求(0~5 min)¶
关键清单:
| 维度 | 示例问题 |
|---|---|
| 规模 | DAU、QPS 峰值、数据量级 |
| 延迟 | P99 目标、强一致 vs 最终一致 |
| 功能 | 核心路径 vs 二期 |
| 约束 | 预算、团队、已有系统 |
话术:「我先确认范围,避免过度设计;如果 100 万 DAU 和 1 亿 DAU 方案会不同。」
第 2 段:容量估算(5~10 min)¶
背公式(与 S-ARCH-18 容量 一致):
- 平均 QPS = 活跃用户 × 观察周期内人均请求 / 周期秒数;峰值应优先来自历史曲线、
业务事件和地域分布。没有数据时再声明一个假设系数并做 sensitivity,不能把
3~10当行业常量 - 存储 = 日增 × 保留天数 × 副本系数
- 带宽 = QPS × 平均响应体
写出 数量级 即可,精确到个位无意义。
第 3 段:MVP 架构(10~20 min)¶
白板上至少包含:
[Client] → [LB/GW] → [Go API] → [Cache?] → [DB]
↓
[MQ?]
第 4 段:扩展与瓶颈(20~28 min)¶
按 10x 压力 讲改动:
| 瓶颈 | 手段 |
|---|---|
| 读 | 缓存、CDN、读副本 |
| 写 | 先定位锁/索引/事务/热点;再考虑批处理、分片或异步派生。需要同步确认的核心写不能为提吞吐随意异步化 |
| 热点 | 本地缓存、请求合并 |
| 单点 | 冗余只是第一步;还要有 quorum/leader fencing、故障转移、数据恢复与演练 |
画 Before / After 小图,不要堆组件名词。
第 5 段:非功能(28~35 min)¶
架构师差异化段落:
| 主题 | 要点 |
|---|---|
| 可用性 | 多副本、熔断 S-ARCH-09 |
| 可观测 | 指标/日志/链路 S-ARCH-16 |
| SLO | 错误预算 S-ARCH-17 |
| 安全 | S-SOL-07 一句 |
| 多租户 | 若 B 端则 S-SOL-05 |
第 6 段:演进路线图(35~40 min)¶
三阶段叙事(提问者最爱):
| 阶段 | 目标 | 架构变化 |
|---|---|---|
| MVP | 最小闭环 | 从业务不变量出发选择最少组件;不默认必须有 Redis |
| 10x | 已验证瓶颈 | 针对读、写、热点或 fan-out 的证据做缓存、批处理、队列或分片 |
| 100x / 多区域 | 地域延迟或隔离需求明确 | 评估分片、单元化、主备或多活;多活不是规模增长后的自动终点 |
提及 绞杀者 若从遗留迁移:S-SOL-02。
第 7 段:Q&A(40~45 min)¶
准备 3 个 主动风险:
- 「最大风险要与题目不变量对应;若订单写必须同步确认,先做幂等、容量与降载, 异步化仅用于可延迟的派生处理,对账是检测/修复防线而不是一致性的替代品」
- 「回滚策略是特性开关 + 网关切流」
- 「团队能力不足则 Phase 1 不上 Mesh」
生产场景(练习建议)¶
用本仓库题目 组卷模拟:
| 模拟题 | 关联题单 |
|---|---|
| 企业知识库 + AI 问答 | S-AI-02 + S-SOL-05 + S-ARCH-16 |
| 订单中台从单体演进 | S-SOL-01/02/03 + S-ARCH-12 |
| 多租户 SaaS 报表 | S-SOL-05 + S-ES-02 + S-SOL-03 |
录音 45 分钟自述,回听是否跳步、是否缺数字。
架构取舍¶
| 过早 100x 设计 | 只讲 MVP |
|---|---|
| 提问者觉虚 | 觉无深度 |
平衡:MVP 具体 + 演进 credible。
深挖问答¶
- 估算离谱怎么办? → 说明假设,给 sensitivity(DAU ±2x 时 DB 变化)。
- Go 为何不用 Java? → 团队、GC 延迟、容器密度 — 不贬损,讲 tradeoff。
- 如何体现架构师而非高级开发? → 多讲 域、演进、治理、组织(S-SOL-01/06)。
- 白板画乱? → 从左到右数据流,组件 ≤7 个/图,分图。
反模式与事故¶
- 跳过澄清直接画 Kafka → 被追问惨
- 无数字 → 不可信
- 不会说「这块 Phase 2」 → 时间不够答不完
代码示例¶
非代码题;配合 learning-path-senior.md 架构师 4 周计划演练。
延伸阅读¶
- 本手册 03 系统设计 21 题作为组件知识库
- Google SRE - SLO