最近在团队中开展可靠性测试工作,接触了混沌工程的概念。为了更好开展工作,决定梳理下可用可靠性测试、混沌测试等概念,并看了《混沌工程:Netflix系统稳定性之道》这本书,有了新的认识,于是做下记录及个人思考总结。
1、混沌工程和测试的区别?
混搭工程和其他测试方法的主要区别在于,混沌工程是发现新信息的实践过程,而故障注入则是基于一个特定的条件、变量的验证方法。
混沌工程和故障注入本质上是思维方式上的不同。
故障注入首先要知道会发生什么故障,然后一个一个地注入。或者使用故障模拟工具进行注入,然而在复杂分布式系统中,想要穷举所有可能的故障,本身就是奢望。
混沌工程的思维方式是主动去找故障,是探索性的,你不知道摘到一个节点,关闭一个服务会发生什么故障,虽然按计划做好了降级预案,但是关闭节点时却引发了上游服务异常,进而引发雪崩,这不是故障注入或预先计划能发现的。