1. Chaos Engineering 如何发现系统弱点?
请说明混沌工程(Chaos Engineering)如何发现系统弱点?
- 混沌工程的原理(主动注入故障)
- 发现弱点的机制(稳态偏离、韧性验证)
- 与事故的对比(主动 vs 被动)
混沌工程通过在受控环境主动注入故障,验证系统在异常下的行为,从而发现「用常规测试发现不了」的弱点。原理:① 定义稳态(steady state)——确定系统「正常」的指标(如可用性、延迟、错误率);② 注入故障——在生产/类生产环境注入随机或定向故障(如杀掉实例、注入延迟、网络分区);③ 观察偏离——对比「故障前后」的稳态指标,若系统出现未预期的偏离(错误率飙升、雪崩、无法自愈),即发现弱点;④ 定位修正——根据偏离定位弱点(如无重试、无熔断、依赖无超时、容量不足),修复后验证。价值:① 主动发现——在「没有事故」时发现隐患,而非等事故暴露;② 验证韧性——验证「假设的系统韧性」是否真实(如假设有熔断,实验证明无);③ 建立信心——证明系统在故障下能守住 SLO。混沌工程是「把失败制度化、可预期化」,把「未知的故障」变成「已知的、可控的、有预案的」。
混沌工程的核心是「用实验验证系统韧性」而非「随机破坏」。它通过「稳态假设 + 故障注入 + 偏离观测」主动发现弱点,弥补「测试通过但生产还是挂了」的盲区。它把「被动等事故」变为「主动找弱点」。