17.2 全景複盤:單體 → 分散式 → 微服務 → 雲原生 → AI 原生#
14 次演進,一條主線#
本書用淘寶教學模型走了 14 次演進,主線只有一句:流量漲 10 倍,就有一個舊假設崩掉,就換一層架構。單機扛不住 → 分離;DB 扛不住 → 快取+拆分;人多了 → 微服務;環境亂了 → Docker;機器多了 → K8s;成本貴了 → FinOps;AI 來了 → AI 原生。
flowchart LR
S1[單體<br/>Ch1-2] --> S2[分散式<br/>Ch3-4]
S2 --> S3[微服務<br/>Ch5-6]
S3 --> S4[容器化<br/>Ch7-8]
S4 --> S5[雲原生<br/>Ch9-13]
S5 --> S6[AI 原生<br/>Ch14-16]
S6 --> OPS[守則<br/>Ch17]五代架構對比總表#
| 代 | 核心解法 | 代表技術 | 解掉的痛 | 新欠的債 |
|---|---|---|---|---|
| 單體 | 一個包跑天下 | Tomcat+DB | 簡單快速 | 擴展與協作 |
| 分散式 | 拆 DB、加 LB | Nginx/Redis/分庫分表 | 併發與可用 | 一致性、事務 |
| 微服務 | 拆應用、服務化 | Dubbo/Spring Cloud | 團隊與發布 | 運維地獄 |
| 容器/雲原生 | 標準打包+編排 | Docker/K8s/GitOps | 環境與彈性 | 成本與複雜度 |
| AI 原生 | 模型/Agent 一等公民 | 推理棧/AgentRun/網關 | 智能與執行 | 評估、安全、算力賬 |
每次演進的「不變量」#
- 快取思想(2.2):從 Redis 到特徵快取到 KV 快取,永遠是第一優化。
- 非同步解耦(6.2/15.2):從 RocketMQ 削峰到 AI MQ 排任務。
- 拆合辯證(12.1/12.2):拆解決協作,合解決複雜,來回擺動。
- 可觀測先行(13.2):每代都先補監控,否則不敢擴。
- 成本意識(13.3):每代紅利吃完,賬單倒逼下一代優化。
複盤方法:給自己畫演進圖#
# 團隊複盤模板(每季度一次):
# 1) 當前最大痛點是什麼?(延遲/成本/發布/智能)
# 2) 它屬於哪一代的債?(見上表「新欠的債」列)
# 3) 下一代解法中最小的一步是什麼?(先試點,不推倒)
# 4) 回滾計劃是什麼?(見 17.4)
本書章節與演進的對應:速查地圖#
| 你遇到的痛 | 先讀 | 再讀 |
|---|---|---|
| 發布慢、環境亂 | Ch7 Docker、13.1 GitOps | Ch9 K8s 核心 |
| 大促扛不住 | Ch11 彈性、13.2 可觀測 | 16.3 搜推、16.4 實戰 |
| 帳單太貴 | 13.3 FinOps、12.3 縮零 | 14.5 推理棧、17.1 VN |
| 微服務太碎 | 12.1 技術債、12.2 合併 | 12.4 FaaS |
| 想加 AI | 15.1 白皮書、15.2 AgentRun | 16.1 網關、16.2 中間件 |
| 要穩定多活 | 17.4 八原則 | 13.4 託管、17.1 ACK One |
flowchart TD
PAIN[你的痛點] --> MAP{對上表定位}
MAP --> READ[讀對應章試點]
READ --> PILOT[最小試點+回滾]
PILOT --> REVIEW[季度複盤四問]
REVIEW --> PAIN這張地圖也是教學用法:授課先讓學生說痛,再進章節;結課用 17.3 選型模板做課程設計評審。
記住主線那句話:下一次流量漲 10 倍時,先問哪個假設會崩,而不是先問用什麼新技術。假設先行,技術隨後——這就是演進式架構的全部心法。
本章小結#
- 主線:流量漲 10 倍 → 舊假設崩 → 換一層架構
- 五代表:每代解舊痛、欠新債;沒有終極架構,只有當下合適
- 不變量:快取、非同步、拆合辯證、可觀測、成本意識
- 複盤四問:痛點、哪代債、最小步、回滾計劃
想一想#
- 為什麼「沒有終極架構」?用「解舊痛、欠新債」解釋微服務與 AI 原生的例子。
- 五個不變量中,哪一個在你經歷的專案裡最缺?補上它要做的最小一步是什麼?
- 若流量再漲 10 倍,你認為下一個崩掉的假設是什麼?(提示:看看 17.3 的選型陷阱)