用途:通过受控故障注入测试系统韧性,适用于验证容错能力、灾难恢复与系统可靠性。
原则:先建立假设(定义预期行为);最小化爆炸半径(从小范围开始);在生产环境运行(真实条件更关键);自动化使实验可重复;最小化影响并设置中止条件。
实验流程:定义稳态指标;提出假设(“系统在条件 Y 下将维持 X”);注入变量(引入故障);观察并与稳态对比;分析以确认或推翻假设。
常见实验: 网络故障: tc qdisc add dev eth0 root netem delay 100ms tc qdisc add dev eth0 root netem loss 10% tc qdisc del dev eth0 root 资源耗尽: stress --cpu 4 --timeout 60s stress --vm 2 --vm-bytes 1G --timeout 60s dd if=/dev/zero of=/tmp/fill bs=1M count=1024 服务故障:终止进程、重启容器、终止实例、阻断依赖。
工具:Chaos Monkey(随机终止实例)、Gremlin(综合混沌平台)、Litmus(Kubernetes 混沌工程)、Chaos Mesh(云原生混沌)。
实验模板:包含实验名称、假设(若条件则预期行为)、稳态(指标基线值)、方法步骤、中止条件(满足即立即停止)、结果与发现。
安全规则:先在非生产环境开始;准备好回滚;持续监控;与团队沟通;记录一切。
限制:资料未提供具体平台支持范围、收费与价格、部署要求及效果数据,暂未提供。