知识卡片
故障注入让团队独立验证而不必等真故障
内容
想知道系统在依赖超时、返回错误时会不会被正确处理,最笨的办法是等它在生产环境里真的出故障,但那样代价太高也不可控。把制造故障的能力做成框架内置的功能(如Envoy的故障注入HTTP拦截器,可按比例返回错误或人为增加延迟),让团队可以在任何时候按需触发一个受控的、局部的”假故障”来验证超时处理逻辑,而不会真的波及整个系统。这样团队之间的依赖被切断了:验证自己的容错逻辑不再需要等别的团队的系统真的出问题。
参考来源
- 位置:《Google系统架构解密:构建安全可靠的系统》第16章《防灾规划》16.6.3节单系统测试/故障注入(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_132.html`)
- 结论依据:原文明确说明"故障注入框架能让团队独立地测试各自的系统,不用涉及依赖项……Envoy还支持一个故障注入HTTP拦截器,可用它来返回特定比例的错误流量,或延迟一段特定的时间后再处理请求。通过使用这类故障注入,可以测试系统处理超时的逻辑是否正确"。
- 原始内容:我们强烈建议借助故障注入开展单系统测试……更重要的是,故障注入框架能让团队独立地测试各自的系统,不用涉及依赖项……可以用它来返回特定比例的错误流量,或延迟一段特定的时间后再处理请求。通过使用这类故障注入,可以测试系统处理超时的逻辑是否正确。