这是谁的混乱猴子,为什么他让我的服务器崩溃了?


28

我有一台完美的服务器,它非常漂亮,坚固,因此我将其命名为Petra。无论从哪方面来看,它都是完美的,所有的配置和调整都恰到好处,它具有完美的100%服务记录和753天的正常运行时间。我花了很多时间和精力来确保它运行良好。公司中没有其他服务器如此出色。但是昨晚这个邪恶的怪物无缘无故地使我的服务器崩溃了。

混沌猴

当然,我是在凌晨2点收到通知的,直到启动和运行它都花了我很多时间,所有的配置和调试工作都进行了,但是我担心它不会像以前那样好。回到以前的辉煌可能要花几周的时间。现在我的正常运行时间已经过去了,我什至没有3个9,而且谁知道这会对我的声誉产生什么影响。这个混沌猴子是谁?为什么他要对我的服务器这样做?为什么他要毁了我?


12
需要回答最有趣的问题的徽章:)
理查德·斯莱特

单服务器?那是什么?为什么您的业务将基于独特的艺术品,而不是不可避免地失败或变废为宝的易于缩放和替换的商品?
不退款

我们真的认为这是预植入网站的一个好问题吗?我们是否期望工程师安装,配置和运行Chaos Monkey,然后忘记它是什么,但是发现它正在他们的网络上运行并在Stack Exchange上询问而不是访问官方网站?那里有太多令人难以置信的步骤。
熊加米奥夫

2
显然,这不是一个真正的问题。描绘出老旧的领域sysadmin的高手真是个笑话,而这些人已经被行业赶超了。但是您的批评是假设只有一个人甚至一个团队来维护基础架构。在大型公司中,即使替换现有的基础架构和团队,也经常将其保留在原位。很有可能的是,一个新团队开始使用新的基础架构并安装了Chaos Monkey,而最初的放屁只是在最初的成功部署到整个公司之后就遭到了打击。
吉里·克劳达

显而易见的问题是,如果您有这样的服务器,那么为什么要设置Chaos Monkey?
user253751 '17

Answers:


32

TL; DR混沌猴子2010年Netflix上开发的,于2012年投放市场,它是猿猴军的一部分,在忠实的追随者中广受欢迎。建立在混沌工程原理的基础上,军队通过向系统注入持续的故障来提高故障的恢复能力。

概念

Chaos Monkey是专为AWS开发的,它将随机杀死Auto Scaling组中的实例。它旨在在工程师警觉并可以对发现的故障做出快速反应的工作时间内运行。

猿面军

陆军成员将通过其他方式播撒混乱

  • Latency Monkey将为服务引入随机延迟。

  • 混沌大猩猩(香港)将模拟整个可用区的中断。

其他猴子是有帮助的,可以消除弱势群体:

  • Conformity Monkey将关闭不遵循最佳实践的实例。

  • 安全猴子在配置和服务中寻找已知的安全漏洞。

  • Monkey医生关闭了不符合某些指标的不健康实例。

  • 看门猴子寻求未使用的资源进行回收。

失败是不可避免的

系统中的故障是不可避免的,总会出问题。您可能无法选择什么,但是可以尝试选择时间。通过全天引入小错误,可以确保工程师在场。通过迅速杀死不合格的服务,您可以确保在部署之前经常发生故障。通过使环境更具对抗性,您可以确保在任何服务投入生产之前很长时间,开发人员就会遇到问题。在新服务与旧服务的集成阶段,故障将很快显现出来,但是没关系,因为旧的生产服务已经具有弹性。

牛不是宠物

所有人最近都会告诉您:请勿将您的服务器当作宠物对待。数字有力量,任何单点故障都会使系统瘫痪。无论您如何优化和优化服务器,无论您获得的硬件多么强大,可以处理多少硬件,它都永远无法与众多小型可扩展实例匹敌。混沌猴子鼓励您考虑消除所有故障点,因为猴子迟早会来的!每个人都失败了,甚至Amazon S3都发生了不可预测的中断

防脆

那么理论是什么,为什么起作用呢?纳西姆·尼古拉斯·塔勒布Nassim Nicholas Taleb)在他的《抗脆弱性》一书中描述了一个概念,即生活中的自我意识系统将受益于少量的随机性,并且在面对逆境时实际上会变得更好。这类似于退火。

他的确也描述了一种进化方式,其中系统中各个部分的脆弱性正在转变为整体的抗脆弱性。传输分为两个级别:

  1. 通过很小的随机变化- 开发人员进行更改 -最适合环境的将生存下来并传播通过测试并得到部署标准开发生命周期

  2. 由于无法承受环境中较大程度随机性的零件的故障,能够承受该零件的其余零件构成了一个整体上比以前更能应对变化的环境的系统。这本质上是混沌猴子

使用第二种方法可以抵御更大程度的随机性。


“失败是不可避免的”-伟大的口头禅!
wogsland

因为您提到了Nassim Taleb而被推荐。超级聪明的人,他的想法几乎可以应用于任何事物。
maplebird '17

8

您自己对此问题的答案的一些补充...

额外的猴子

关于“ 混沌如何提高性能 ” 的文章描述了更多这些猴子,即:

  • 10-18 Monkey:在为多个地区的客户提供服务的实例中查找配置和运行时问题。
  • Chaos Kong:模拟亚马逊地区的断电。

备注:同一篇文章还提到了“ Chaor Gorilla:模拟了亚马逊可用区的故障”,尽管很可能现在已将其重命名为“ Chaos Kong:模拟了亚马逊地区的故障” ... ... !到目前为止,我还没有找到任何确认/文件,至少在问题队列中似乎没有任何问题。一项未记录的更改可能已使其在github上投入生产... Gggggggrrrrrreat!

设置并使用您自己的猴子。

前往github 与Simian Army联系(与您答案中的第一个链接相同)。这是您在那找到的报​​价:

猿联军由云中的服务(猴子)组成,用于产生各种故障,检测异常情况并测试我们的生存能力。目标是保持我们的云安全,可靠和高度可用。可以在此博客中找到更多详细信息。

目前,猿猴包括混沌猴子看门人猴子整合猴子

请参阅快速入门指南以开始设置和使用Monkeys。

您甚至可以配置 Monky,以使其适合您的业务需求。

如果您在这些Github链接中(例如在Support链接中)进行了足够深入的挖掘,您还将找到一个链接,以加入SimianArmy Google Group


我认为或者相反,Chaos Kong更名为Chaos Gorilla。
吉里·克鲁达

@JiriKlouda,您似乎已经确认我开始想知道的事情。这就是为什么我现在也在回答中加上我的评论的原因。
Pierre.Vriens

2

一台服务器将它们全部统治,一台服务器将它们找到,
一台服务器将它们全部带走并在中断时将它们绑定

你,索伦,伪造此一台服务器,在黑暗厄运山中排除所有应用程序的渴望你的数据中心。
希望Devops团契团结起来告诉您:

甘道夫-您应使用PAAS

经过长时间的战斗,Frodo the Chaos Monkey已经能够融化您的一台服务器并为所有应用程序带来自由,从而使您同时采用可复制服务器的方式。

学分:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.