17.4 架構設計原則:N+1、回滾、禁用、監控、多活、水平擴展、FinOps 與 AI 安全#
全書收束:八條保命原則#
前面 16 章是「招式」,本節是「心法」。八條原則不分先後,大促前逐條打勾:
flowchart TD
N1[N+1 容量] --> R[回滾方案]
R --> K[禁用開關]
K --> M[監控告警]
M --> MA[多活容災]
MA --> H[水平擴展]
H --> F[FinOps 成本]
F --> AI[AI 安全]
AI --> N1原則 1–4:活下來#
| 原則 | 做法 | 檢查命令/配置 |
|---|---|---|
| N+1 | 掛掉一個 AZ/一批節點仍夠用 | 壓測水位 × 1.3 備量,HPA max 留餘 |
| 回滾 | 每次發布可一鍵回滾 | Argo Rollouts 自動回滾(13.1) |
| 禁用 | 非核心一鍵降級 | 開關中心 + 網關限流(16.1) |
| 監控 | SLO 燒蝕才叫人 | PrometheusRule + OnCall(13.2) |
# 禁用開關:大促時關掉非核心(評價圖片、個性化裝飾)
apiVersion: v1
kind: ConfigMap
metadata:
name: degrade-switches
namespace: prod
data:
review-images: "off" # 關:只顯示文字評價
fancy-theme: "off" # 關:用預設皮膚
recommend-llm-rerank: "off" # 關:降級為 XDL 排序(見 16.3)
原則 5–6:擴得開、容得災#
- 水平擴展:無狀態優先;有狀態(DB/會話)用分片+親和(15.3)+ 外部記憶。
- 多活:同城雙活扛機房災、異地多活扛地域災;ACK One 統一下發(17.1);核心鏈路 RPO≈0、RTO 分鐘級,演練按季度。
# 多活演練清單(摘錄):
# [ ] DNS/流量一鍵切 20% 到備地域
# [ ] 備地域 DB 延遲 < 50ms 且無堆積
# [ ] 禁用開關在備地域同樣生效
# [ ] 演練後流量切回,主備資料對賬一致
原則 7–8:算得清、守得住(含 AI 安全)#
- FinOps:每條鏈路有成本歸屬(13.3),AI 按 Token(16.1);大促預算封頂,超了自動降級。
- AI 安全: prompt 注入過濾、工具最小授權、執行前確認、輸出合規校驗、全鏈路審計。
# AI 安全上線檢查:
# [ ] 系統提示詞防注入(外部內容不作指令執行)
# [ ] Agent 工具 scope 最小(導購無退款權)
# [ ] 下單/支付類操作需用戶確認 + 可撤銷
# [ ] 所有工具調用記審計(who/when/what/tokens)
# [ ] 敏感推理走 TEE/機密通道(見 14.5)
# [ ] 輸出合規校驗(承諾類話術攔截,見 14.1 護欄)
本章小結#
- 八原則:N+1、回滾、禁用、監控、多活、水平擴展、FinOps、AI 安全
- 活下來(1–4)→ 擴得開容得災(5–6)→ 算得清守得住(7–8)
- 每條都有具象抓手:開關 ConfigMap、Rollout、SLO 告警、演練清單、安全檢查表
- 這是全書的「畢業考試」:新架構先過八條再上線
想一想#
- N+1 的「1」怎麼定?是 1 台機器、1 個 AZ 還是什麼?和成本如何 trade-off?
- 禁用開關為什麼要在平時就演練?從未用過的開關在大促時會怎樣?
- AI 安全檢查表中,若只能先落三項,你選哪三項?為什麼?