可靠性與 SRE 進階

什麼是混沌工程 (Chaos Engineering)?如何在生產環境中安全地實踐它?

AI 練習作答

混沌工程的定義

主動在系統中注入故障,驗證系統的彈性和容錯能力,在真實災難發生之前發現弱點。

由 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 評分