可靠性與 SRE 進階
什麼是混沌工程 (Chaos Engineering)?如何在生產環境中安全地實踐它?
混沌工程的定義
主動在系統中注入故障,驗證系統的彈性和容錯能力,在真實災難發生之前發現弱點。
由 Netflix 在 2011 年開創,最著名的工具是 Chaos Monkey(隨機終止生產環境的 EC2 實例)。
核心原則
1. 建立穩定狀態假說:定義系統正常運行的量測指標(如 P99 延遲、錯誤率)
2. 設計實驗:引入真實世界的故障場景
3. 在生產環境中運行(或盡可能接近生產的環境):Staging 環境無法完全複製生產的複雜度
4. 最小化爆炸半徑:從小範圍開始(先測試 1% 的流量),逐步擴大
5. 自動化持續執行:將混沌實驗整合進 CI/CD,確保每次變更後系統仍然有彈性
常見故障注入類型
| 故障類型 | 範例 |
|---|---|
| 資源耗盡 | CPU/記憶體高負載 |
| 網路故障 | 延遲注入、封包丟失、網路分區 |
| 服務依賴 | 殺死下游服務、模擬超時 |
| 基礎設施 | 隨機終止 Pod/VM、可用區故障 |
| 資料層 | 資料庫慢查詢注入 |
工具生態
- Chaos Monkey(Netflix):VM/容器隨機終止
- Chaos Mesh:Kubernetes 原生混沌工程平台
- Gremlin:商業平台,更多故障類型
- AWS Fault Injection Simulator:AWS 原生
安全實踐原則
- 先從非生產環境開始,累積信心再進入生產
- 實驗進行中持續監控,發現異常立即停止
- 通知相關團隊,避免引起不必要的恐慌
- 永遠有回滾計畫
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
