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



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

评论

需要有一个最有趣的问题的徽章:)

单服务器?那是什么?为什么您的业务将基于独特的艺术品,而不是在不可避免地失败或放弃租赁时易于缩放和更换的商品?
我们真的认为这是预先植入网站的一个好问题吗?我们是否期望工程师安装,配置和运行Chaos Monkey,然后忘记它是什么,但是发现它在他们的网络上运行并在Stack Exchange上询问而不是访问官方网站?那里有太多令人难以置信的步骤。

显然,这不是一个真正的问题。刻画旧的领域最高系统管理员是个玩笑,而这个领域的管理员简直就是行业领先者。但是您的批评是假设只有一个人甚至一个团队来维护基础架构。在大型公司中,即使更换现有的基础架构和团队,也经常将其留在原地。很有可能的是,一个新团队开始使用新的基础架构和安装Chaos Monkey,而旧的放屁只是在最初成功部署了整个公司之后就遭到了打击。

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

#1 楼

TL; DR:混沌猴子是2010年在Netflix上开发的,并于2012年投放市场,是猿猴军的一部分,在忠实的追随者中广受欢迎。建立在混沌工程原理的基础上,军队通过向系统注入持续的故障来提高故障的恢复能力。 Auto Scaling组中的实例。它旨在在工程师警觉并可以对发现的故障做出快速反应的工作时间内运行。

四面军

陆军成员会通过其他方式造成混乱:
混沌大猩猩(香港)将模拟整个可用区的中断。

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


Conformity Monkey会关闭未遵循最佳实践的实例。
安全猴子看起来以解决配置和服务中的已知安全漏洞。
Monkey Doctor关闭不符合某些指标的不正常实例。

故障是不可避免的

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

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

抗脆弱性

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

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


通过一些小的随机变化-开发人员进行更改-最适合环境的将生存和传播-通过测试并得到部署。标准开发生命周期。
由于无法承受环境中较大程度随机性的零件的故障,能够承受该零件的其余零件构成的系统总体上比以前更能应对变化的环境。这本质上是混沌猴子。

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

评论


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

– wogsland
17 Mar 22 '17 at 21:43

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

– Maplebird
17年8月1日在21:11

#2 楼

您自己对此问题的答案有一些补充...
其他猴子
有关“混沌如何提高性能”的文章描述了其中的一些猴子,即:



10-18 Monkey:在为多个地区的客户服务的实例中发现配置和运行时问题。

备注:同一篇文章还提到“ Chaor Gorilla:模拟Amazon可用区的故障”,尽管很可能现在已将其重命名为“ Chaos Kong:模拟Amazon的故障亚马逊地区” ...谈论混乱!到目前为止,我还没有找到任何确认/文件,至少在发布队列中似乎没有任何问题。无记录的更改可能已使它在github上生产... Gggggggrrrrrreat!链接到您自己的答案中)。以下是您所能找到的报价:

Simian Army由云中的服务(猴子)组成,用于生成各种故障,检测异常情况并测试我们的生存能力。目标是保持我们的云安全,可靠和高度可用。更多详细信息,请访问此博客。
当前的猿猴包括Chaos Monkey,Jantor Monkey和Conformity Monkey。
请参阅快速入门指南,开始设置和使用Monkeys。

您甚至可以配置Monky,以使其适合您的业务需求。
如果您在这些Github链接中(例如在Support链接中)进行了足够深入的挖掘,那么您还将找到要加入的链接SimianArmy Google小组。

评论


我认为或者相反,Chaos Kong更名为Chaos Gorilla。

–吉里·克劳达(Jiri Klouda)
17 Mar 23 '17 at 15:54

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

– Pierre.Vriens♦
17 Mar 23 '17 at 16:45

#3 楼


一台服务器将它们全部统治,一台服务器将它们全部找到,
一台服务器将所有它们都带走,并在停机时将它们绑定


你,索隆,伪造这台服务器,在黑暗的末日山中,您的数据中心渴望统治所有应用程序。 />经过长时间的战斗,Frodo the Chaos Monkey能够融化您的一台服务器并为所有应用程序带来自由,同时带您进入可重现服务器的道路。

信用:



JRR指环王Tolkien
图片来自CleverCloud演示文稿