TL; DR:混沌猴子是2010年在Netflix上开发的,并于2012年投放市场,它是猿猴军的一部分,在忠实的追随者中广受欢迎。建立在混沌工程原理的基础上,军队通过向系统注入持续的故障来提高故障的恢复能力。
概念
Chaos Monkey是专为AWS开发的,它将随机杀死Auto Scaling组中的实例。它旨在在工程师警觉并可以对发现的故障做出快速反应的工作时间内运行。
猿面军
陆军成员将通过其他方式播撒混乱:
其他猴子是有帮助的,可以消除弱势群体:
失败是不可避免的
系统中的故障是不可避免的,总会出问题。您可能无法选择什么,但是可以尝试选择时间。通过全天引入小错误,可以确保工程师在场。通过迅速杀死不合格的服务,您可以确保在部署之前经常发生故障。通过使环境更具对抗性,您可以确保在任何服务投入生产之前很长时间,开发人员就会遇到问题。在新服务与旧服务的集成阶段,故障将很快显现出来,但是没关系,因为旧的生产服务已经具有弹性。
牛不是宠物
所有人最近都会告诉您:请勿将您的服务器当作宠物对待。数字有力量,任何单点故障都会使系统瘫痪。无论您如何优化和优化服务器,无论您获得的硬件多么强大,可以处理多少硬件,它都永远无法与众多小型可扩展实例匹敌。混沌猴子鼓励您考虑消除所有故障点,因为猴子迟早会来的!每个人都失败了,甚至Amazon S3都发生了不可预测的中断。
防脆
那么理论是什么,为什么起作用呢?纳西姆·尼古拉斯·塔勒布(Nassim Nicholas Taleb)在他的《抗脆弱性》一书中描述了一个概念,即生活中的自我意识系统将受益于少量的随机性,并且在面对逆境时实际上会变得更好。这类似于退火。
他的确也描述了一种进化方式,其中系统中各个部分的脆弱性正在转变为整体的抗脆弱性。传输分为两个级别:
通过很小的随机变化- 开发人员进行更改 -最适合环境的将生存下来并传播通过测试并得到部署。标准开发生命周期。
由于无法承受环境中较大程度随机性的零件的故障,能够承受该零件的其余零件构成了一个整体上比以前更能应对变化的环境的系统。这本质上是混沌猴子。
使用第二种方法可以抵御更大程度的随机性。