---
source: ../../../core/chaos-engineering-standards.md
source_version: 1.0.0
translation_version: 1.0.0
last_synced: 2026-04-10
status: current
---

# 混沌工程標準

> 版本: 1.0.0 | 最後更新: 2026-04-01

## 概述

本文件定義混沌工程標準，涵蓋實驗工作流、故障注入類型、安全護欄、漸進式混沌階段、SLO 整合及實驗記錄範本。目標是透過科學化的混沌實驗持續驗證系統韌性。

---

## 實驗工作流

混沌實驗遵循 4 步驟科學方法：

| 步驟 | 名稱 | 說明 |
|------|------|------|
| **步驟 1** | **假設** | 定義穩態假設：「在故障 X 下，系統應維持行為 Y」 |
| **步驟 2** | **實驗** | 設計並執行故障注入，記錄參數、持續時間與範圍 |
| **步驟 3** | **觀察** | 監控系統指標、日誌與告警，對比實際行為與假設 |
| **步驟 4** | **結論** | 分析結果：假設確認或推翻，記錄發現與改進項目 |

---

## 故障注入類型

| 類型 | 說明 | 範例 |
|------|------|------|
| **Network Latency** | 注入網路延遲或封包遺失 | 200ms 延遲、5% 封包遺失 |
| **Service Disruption** | 終止或降級服務實例 | 隨機 kill pods、關閉可用區 |
| **Resource Exhaustion** | 耗盡運算資源 | CPU 飽和、記憶體壓力、磁碟空間耗盡 |
| **Dependency Failure** | 模擬外部依賴故障 | 資料庫連線中斷、第三方 API 返回 503 |
| **Clock Skew** | 引入時鐘漂移 | 時鐘偏移 5 分鐘、NTP 服務中斷 |

---

## 安全護欄

每個混沌實驗**必須**具備三項安全機制：

| 機制 | 說明 |
|------|------|
| **Blast Radius** | 限制影響範圍（最多 N% 流量、M 個實例） |
| **Auto-Stop** | 定義自動終止條件（錯誤率超限、延遲超限） |
| **Rollback** | 一鍵移除所有注入故障並恢復正常狀態 |

---

## 漸進式混沌

| 階段 | 環境 | 前提條件 |
|------|------|---------|
| **階段 1** | **非生產** | 基礎監控就位；團隊理解混沌工程原則 |
| **階段 2** | **Staging** | 完成 3+ 階段 1 實驗；完整可觀測性；自動化 rollback 已驗證 |
| **階段 3** | **生產** | 階段 2 無重大問題；管理層核准；事件回應計畫就緒 |

---

## SLO 整合

| 規則 | 閾值 | 說明 |
|------|------|------|
| **單次實驗限制** | **10%** | 單次實驗不得消耗超過 Error Budget 的 10% |
| **暫停閾值** | **30%** | Error Budget 剩餘低於 30% 時暫停實驗 |
| **預算報告** | — | 所有混沌實驗的 Error Budget 影響必須記錄 |

---

## 實驗記錄範本

每個完成的混沌實驗必須使用 5 區段記錄格式：

| 區段 | 內容 |
|------|------|
| **假設** | 穩態假設描述、預期行為、可量測指標 |
| **方法** | 故障注入類型、參數、持續時間、blast radius、環境 |
| **結果** | 實際系統行為、指標變化、告警觸發、使用者影響 |
| **學習** | 假設確認/推翻、發現的弱點、非預期行為 |
| **行動** | 後續改進計畫、負責人、時程、相關 ticket |

---

## 授權

本標準以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 授權釋出。
