---
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/) 许可发布。
