《后端架构设计·演进与治理》目录与学习路径

《后端架构设计·演进与治理》的阅读入口:13 章分四段的结构、章节依赖图、三条阅读路径、症状到章节的对照表、arch-lab 在卷四新增的拆分、契约、发现、网关、配置、可观测性、SLO、混沌、发布、多租户、平台与成本组件,以及实测值、目标值与示例值的口径和读完本卷的五项标准。

本卷要解决的问题

卷四接着卷三的交接表往下问:当系统已经拆开、已经跨库、已经多活,组织靠什么让每一次变更都可预期、可回滚、可追责? 卷三把一致性机制讲到了可运行,但它留下四类未证明项:真实共识性能、跨单元冲突率、演练覆盖和组织成本。卷四不重新讲 Raft、Saga 和对账,而是处理这些机制之外的变量。

具体拆成四个问题:

  1. 拆到哪:什么条件下值得把模块拆成服务,拆完的边界怎么验证,拆错了怎么退;
  2. 怎么连:同步与异步如何组合,契约如何演进,实例上下线时流量如何找到正确的副本;
  3. 怎么运营:配置、开关、遥测、SLO、混沌与发布如何形成闭环,而不是各自一堆工具;
  4. 谁来付:多租户隔离、平台能力、成本归集如何落到团队和责任。

卷一解决“边界画在哪”,卷二解决“边界内的代价怎么付”,卷三解决“边界被跨过去之后还剩什么保证”,卷四解决“边界和保证都要持续演进时,组织怎么不被自己拖垮”。

全书结构:13 章分四段

13 章按“先定边界与通信,再建运行时治理,然后管变更与风险,最后落到组织与成本”分成四段。

段主题块章节回答的问题本段产出
一、边界与通信拆分、契约、发现、网关第 1–4 章拆不拆?拆完怎么连?拆分评分卡、契约门禁、注册表、BFF 与级联模型
二、运行时治理配置开关、可观测性、SLO第 5–7 章运行时怎么改?怎么看见?怎么定好坏?配置同步、语义约定、错误预算门禁
三、变更与风险混沌、发布、多租户安全第 8–10 章怎么验证?怎么发?怎么隔离?演练状态机、金丝雀控制器、租户与身份策略
四、组织与成本平台工程、成本治理、综合第 11–13 章谁来提供能力?谁来付钱?整套怎么走?黄金路径、成本模型、四卷路线图

13 章不是 13 个工具的安装指南。每一章都往 arch-lab 里加一个可运行或可检查的治理组件;第 13 章把这些组件装进同一次拆分与发布,并用 SLO 门禁和混沌演练验收。

章节依赖图

第 1 章 拆分判据(触发条件 / 粒度 / 演练)
   │
   ├──► 第 2 章 契约演进(同步异步 / schema / 消费者契约)
   │        │
   │        └──► 第 3 章 服务发现与负载均衡(注册 / P2C / 网格)
   │                 │
   │                 └──► 第 4 章 网关与 BFF(路由 / 聚合 / 级联)
   │
   ├──► 第 5 章 配置与开关(分层 / 生命周期 / 同步)
   │        │
   │        └──► 第 6 章 可观测性(语义 / 采样 / 诊断)
   │                 │
   │                 └──► 第 7 章 SLO 与错误预算(SLI / 门禁 / 依赖)
   │
   ├──► 第 8 章 混沌演练(注入 / 稳态 / 游戏日)
   │        │
   │        └──► 第 9 章 发布工程(制品 / 金丝雀 / 迁移)
   │
   ├──► 第 10 章 多租户与安全(隔离 / 身份 / 审计)
   │
   ├──► 第 11 章 平台工程(能力 / 黄金路径 / 度量)
   │        │
   │        └──► 第 12 章 成本治理(归因 / 容量 / 预算)
   │
   └──► 第 13 章 综合(两服务 / 带门禁发布 / 四卷路线图)

这张图表达阅读顺序,不是代码依赖。第 3、4 章可以和第 5、6 章互换;第 7 章最好在第 6 章之后;第 8、9 章依赖第 7 章的门禁定义;第 13 章要求前十二章的组件都已就位。

分章篇目与速览

下面按章列出全部 39 篇正文。每章先给两三句话的定位和产出,再给三节链接。

第 1 章 微服务拆分

拆分不是一个“要不要上微服务”的口号,而是一组可验证的触发条件:变更频率是否互相拖累、是否需要独立扩缩容、是否需要故障与合规隔离。本章先给判据和反例,再把粒度落到业务能力、数据所有权与变更频率,最后用订单域做一次带共享数据与回退路径的拆分演练。

产出:拆分就绪度评分卡、依赖图、两服务拆分演练。

第 2 章 通信与契约演进

拆开之后,第一道裂缝是契约。本章比较同步 RPC 与异步事件的组合,给出 schema 兼容性检查器,并用消费者驱动契约把“provider 改字段、consumer 炸掉”挡在发布之前。

产出:同步/异步决策矩阵、schema 兼容检查器、契约门禁。

第 3 章 服务发现与负载均衡

实例会上下线,网络会抖动,重试会放大。本章实现带 TTL 与健康状态的注册表、P2C 负载均衡与重试预算,再讨论服务网格的收益边界:Sidecar 与 xDS 带来统一治理,也带来配置冲突和运维成本。

产出:注册表、负载均衡器、xDS 路由冲突检查。

第 4 章 网关与 BFF

网关是流量的入口,也是故障的放大器。本章处理路由、认证与租户限流,讲 BFF 如何按端聚合与裁剪契约,最后用超时预算和连接池模型解释一次网关级联故障。

产出:边缘路由、BFF 聚合、级联故障模拟。

第 5 章 配置、开关与运行时治理

配置错误和代码错误一样能打挂系统。本章做配置分层、版本与灰度,给功能开关定义类型与生命周期,最后处理动态配置的一致性:推送与轮询的取舍、版本水位与回滚。

产出:分层配置、开关债报告、配置同步。

第 6 章 可观测性

没有统一语义的遥测数据只是三堆日志。本章先统一日志、指标与追踪的字段约定,再讨论采样与上下文传播的成本,最后用一次跨服务排障复盘把信号串成诊断路径。

产出:语义约定校验器、采样器、诊断排序。

第 7 章 SLO 与错误预算

SLO 不是给 dashboard 看的数字,而是发布与冻结的决策依据。本章定义 SLI 与窗口,计算错误预算与燃尽率,再处理多服务依赖下的预算分配,避免所有服务都“达标”而用户仍然不满。

产出:SLI 计算、预算门禁、依赖预算。

第 8 章 混沌演练

混沌不是随机杀机器。本章把故障注入分成进程、网络、依赖与区域四层,用稳态假设和爆炸半径约束实验,最后用游戏日把演练结果变成可回归的修复项。

产出:分层注入器、演练状态机、游戏日报告。

第 9 章 发布工程

发布是治理动作最密集的时刻。本章从制品摘要与不可变环境讲起,实现金丝雀状态机与自动回滚,最后处理数据库变更与发布协同的 expand-contract 顺序。

产出:制品校验、金丝雀控制器、迁移阶段检查。

第 10 章 多租户与安全边界

多租户把“隔离”从部署问题变成数据与身份问题。本章比较租户隔离级别与分区键,实现服务身份与最小权限求值,最后处理密钥轮换、审计与合规边界。

产出:租户策略、授权求值、密钥审计。

第 11 章 平台工程

平台不是一组工具的集合,而是一个有用户、有能力边界、有采纳指标的产品。本章讲平台即产品的边界、黄金路径与自助服务,以及如何度量采纳率和反悔成本。

产出:能力目录、黄金路径状态机、采纳度量。

第 12 章 成本治理

成本是架构决策的滞后指标。本章做标签归因与未分摊桶、预留/弹性/闲置的成本模型,最后把预算、评审与责任落到团队,避免“月底看账单”式治理。

产出:成本分摊、容量模型、预算规则。

第 13 章 综合演进实验

最后三节把前面的治理组件装进同一次演进:把模块化单体拆成两服务,用 SLO 门禁和混沌演练做一次发布,最后整理四卷的路线图与仍未证明的假设。

产出:两服务端到端、带门禁的发布、四卷路线图。

前置与附录

本卷共 45 篇:1 篇序、1 篇前言、1 篇目录、39 篇正文、3 篇附录。前置材料给立场与用法,附录用于查表和验收。

篇目作用什么时候读
序三个治理事故、卷三交接的未证明项、四个立场第一次打开本卷时
前言结构、arch-lab 组件、L1–L4 分级、固定场景 G1–G3、数字口径读正文前
目录本篇,查章节、依赖与阅读路径随时回查
附录 A 演进与治理速查拆分、SLO、开关、发布、成本的判据表读第 1、7、9 章时对照
附录 B Go/Java 21 治理组件对照并发、配置、指标、限流与发布工具的结构对照读第 3、5、6 章时对照
附录 C 上线治理检查清单拆分、契约、SLO、演练、发布、成本的 24 条检查第 13 章之后使用

三条阅读路径

路径 A:顺序通读

适合第一次系统补演进与治理、准备架构评审或平台建设的读者。按四段推进,不跳章。

阶段章节建议投入读完应该能做什么
边界与通信第 1–4 章10–12 小时判断该不该拆、设计契约门禁与网关边界
运行时治理第 5–7 章8–10 小时管住配置与开关、统一遥测、定义 SLO
变更与风险第 8–10 章8–10 小时设计演练、渐进式发布与租户隔离
组织与成本第 11–13 章7–9 小时设计平台能力、成本归因并完成综合实验

总计约 33–41 小时。代码量比卷三分散,建议至少跑通第 1 章的拆分演练、第 7 章的错误预算门禁和第 9 章的金丝雀状态机。

路径 B:拆分与发布驱动

适合手上正有一次“单体拆服务”或“发布经常回滚”任务的读者。

  1. 1.1 三个触发条件 与 1.2 拆分粒度 ;
  2. 1.3 订单域拆分演练 ;
  3. 2.2 契约版本演进 与 2.3 契约门禁 ;
  4. 4.3 网关失败模式 ;
  5. 7.2 错误预算门禁 与 9.2 金丝雀与自动回滚 ;
  6. 9.3 expand-contract ;
  7. 13.1 两服务拆分 与 13.2 带门禁的发布 。

第 1 步和第 6 步不能跳。先证明拆分收益大于分布式成本,再证明数据库变更能在旧版本仍在线时完成。

路径 C:线上治理驱动

适合已经有一堆告警、开关和账单问题的读者。先读 7.1 SLI 定义 ,统一“好坏”的口径,再查下面的症状表跳章。每跳一章,先看“常见错误与边界”。

症状到章节对照表

症状先读再读
拆完调用链暴涨、发布互相拖累1.1 拆分触发条件1.2 拆分粒度
provider 改字段打挂 consumer2.2 契约版本2.3 契约门禁
实例上下线导致 5xx 抖动3.1 注册与健康3.2 重试预算
网关一慢全站慢4.3 网关失败模式4.1 边缘网关
配置推错、开关没人敢关5.1 配置分层5.2 开关债
排障时三套系统对不上 trace6.1 语义约定6.3 从信号到诊断
SLO 都达标但用户仍抱怨7.1 SLI 定义7.3 依赖预算
演练不敢做、做了伤生产8.1 注入层次8.2 稳态与止损
金丝雀看不出问题、回滚不干净9.2 金丝雀9.1 不可变制品
数据库变更与代码发布互相卡9.3 expand-contract9.2 渐进式发布
跨租户数据泄漏10.1 租户隔离10.2 服务身份
平台没人用、工单还是那么多11.1 平台边界11.2 黄金路径
账单暴涨但不知道谁用的12.1 成本归因12.3 成本机制

arch-lab 在卷四扩展了什么

卷四不改领域模型,仍在 CREATED → INVENTORY_RESERVED → PAID → FULFILLED 状态机上做文章;新增的是“运行与演进”能力,放在 internal/platform/ 与 internal/evolve/ 下。

组新增组件目录首次出现
拆分就绪度评分卡、依赖图、两服务路由internal/platform/split第 1 章
契约schema 兼容检查、消费者契约internal/platform/contract第 2 章
发现注册表、P2C、xDS 配置检查internal/platform/discovery第 3 章
网关边缘路由、BFF、级联模拟internal/platform/gateway第 4 章
配置分层配置、开关、动态同步internal/platform/config第 5 章
观测语义约定、采样、诊断排序internal/platform/obs第 6 章
SLOSLI 窗口、错误预算、发布门禁internal/platform/slo第 7 章
混沌分层注入、演练状态机、游戏日internal/platform/chaos第 8 章
发布制品校验、金丝雀、expand-contractinternal/platform/release第 9 章
租户隔离策略、授权、密钥审计internal/platform/tenant第 10 章
平台能力目录、黄金路径、采纳度量internal/platform/idp第 11 章
成本归因、容量模型、预算规则internal/platform/cost第 12 章
综合两服务端到端、带门禁发布、路线图internal/evolve第 13 章

代码仍分四级:L1 纯逻辑、L2 进程内端到端、L3 真实依赖、L4 多环境与故障注入。卷四以 L1 为主;第 1、4、7、9、13 章各有一个 L2 场景;L3/L4 只写清需要什么环境,不伪造云上实测。

数字口径:实测、目标与示例

类型写法用途
实测值附命令、机器、输入规模与运行次数证明某次运行的结果
目标值写成 SLO 或设计约束,例如“发布回滚目标 ≤ 5 分钟”设计约束,不是测量结果
示例值用于算式或配置形状,例如“假设每租户 100 QPS”说明计算过程

几条纪律:

  • 本机 Go 测试的数字必须能由文章里的代码复现;
  • SLO、RTO、成本这类数字,没有真实流量或账单时只写目标值与算式;
  • 不把“行业常见做法”写成“实测最佳值”;
  • 没有真正接入的云服务、网格或追踪后端,一律写“需真实环境”;
  • 第 13 章的综合实验是场景验收,不等于生产容量或生产故障率。

六个常见误区

第一,把“拆服务”当成架构升级。拆分只改变边界,不自动带来自治;没有契约、观测和发布能力,拆完只是把单体的复杂度复制成网络复杂度。第 1 章先给触发条件。

第二,把契约当成文档。契约是运行时约束,必须有兼容性检查和消费者验证,否则文档更新得再及时也挡不住一次字段改名。第 2 章把检查放进 CI。

第三,把服务发现当成“加个注册中心”。注册、健康检查、摘流、重试预算是同一条链路;只做注册不做摘流,会把故障实例留在流量里。第 3 章处理生命周期。

第四,把 SLO 当成 dashboard。SLO 的价值在于触发发布冻结、预算评审和优先级排序;只展示不决策,等于没有。第 7 章把预算接进门禁。

第五,把混沌演练当成故障表演。没有稳态假设、爆炸半径和止损条件的注入,只是制造事故。第 8 章先定义“什么算失败”。

第六,把成本治理当成财务动作。成本是架构、容量和发布决策的结果;没有归因和单位经济,只能月底砍预算。第 12 章把成本接到团队与决策。

读完本卷的标准

不是“看完 45 篇”,而是能独立产出下面五样东西:

  1. 一份拆分决策记录:触发条件、收益、分布式成本、回退路径与验收指标;
  2. 一套契约门禁:schema 兼容规则、消费者验证与弃用窗口;
  3. 一张 SLO 与错误预算表:SLI、窗口、目标、燃尽率、发布冻结条件;
  4. 一份混沌演练方案:稳态假设、注入层、爆炸半径、止损与回归项;
  5. 一份成本与平台账单:归因口径、单位经济、黄金路径与采纳指标。

如果这五样能写出来,四卷的内容才算连成一条线:从边界到性能,从一致性到治理。

从哪开始

第一次读,从1.1 微服务拆分不是默认答案 开始,按顺序走到第 13 章。手上有发布或成本问题,直接用症状表跳转;要做拆分,先读第 1 章,再回到第 2、9、13 章。

全书完整篇目见书架 ,或按顺序从 1.1 走到 13.3。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「books」更多文章

  1. 《互联网产品的 AI 架构·平台化与治理》附录 C 平台化评审清单
  2. 《互联网产品的 AI 架构·平台化与治理》附录 B 能力目录与配额字段速查
  3. 《互联网产品的 AI 架构·平台化与治理》附录 A 治理角色与职责速查