建立稳定状态的假设
多样化现实世界事件
在生产环境运行实验
持续自动化运行实验
最小化“爆炸半径”
为什么在生产环境进行?
没办法百分百的模拟出生产环境的分布式系统的情况。在测试环境中做的实验是没有意义的。
如何做到故障的精准控制?
1)要做到指哪打哪
可以打到集群/实例/特定请求(结合 RPC 框架、service mesh、流量染色技术)。2)防止故障扩散
例如:优惠系统、支付系统都依赖于公共服务用户中心,那要做支付系统对用户中心的故障注入就不应该影响到优惠系统
在支付系统对用户中心发起请求的那一刻进行干扰,在支付系统的机器/节点/Client里面进行出流量干扰3)自动化指标观察,自动巡检相关指标
降低风险成本:设计可扩展的故障中心,实现精准可控的爆炸半径控制
降低时间成本:屏蔽业务细节,抽象故障模型
业务链路为视角的混沌工程?
面向人的混沌工程?
- 红蓝对抗
- 故障期间无通知的随机的故障注入
EOF