EN
返回档案库

档案库 · 工作与做事的点子 · 技术决策 · 2010–2012

混乱猴子:Netflix故意破坏自己的服务,以便流媒体服务能生存下去

Netflix构建了混乱猴子来随机杀死生产环境中的实例,以便其云服务能够存活——然后将其开源,催生了混沌工程。

Netflix

创意是什么故意破坏生产环境:混乱猴子随机关闭AWS上的真实实例,迫使工程师构建服务,使其在用户无感的情况下存活。脱胎换骨

当时的题目

Netflix ran its streaming service on AWS, where instance failures are common and outages had bitten the industry hard; instead of waiting to be surprised, the engineering team decided to surprise itself.

它是怎么成立的

Netflix在AWS上运行其流媒体服务,而在云端,实例会失败——主机宕机、网络波动、负载均衡器出错。与其等待宕机来暴露弱点,工程团队构建了混乱猴子,一种在营业时间随机禁用生产实例的软件,同时工程师们在旁观察。

这个名字来源于“在你的数据中心里放出一只持武器的野猴,随机射击实例并啃咬线缆——而与此同时,我们继续服务客户而不中断。”重点不在于工具本身,而在于心态的改变:如果你的系统必须经受随机的日常攻击,你就会构建自动恢复,而不是期望万事顺利。

2012年7月,Netflix开源了混乱猴子,这一想法迅速传播。TechCrunch和Wired的报道让“经常失败”成为著名的工程格言;Stack Exchange的Jeff Atwood表示,只有在“混乱猴子选中他们”之后,他的团队才解决了宕机问题。这一实践后来被正式化为混沌工程——在生产系统中进行实验,以建立系统应对混乱情况的信心。

妙在哪

  • 工作日随机、无人值守的失败将罕见的可怕宕机转变为有工程师待命的常规演习。
  • 经常失败迫使系统具备自动恢复机制,使得凌晨3点的故障不再是危机。
  • 开源让这一想法得以传播——其他公司采纳了该实践,使其发展成一门学科。
  • 名字让人过目不忘,这也是实践迅速普及的原因。

做出来什么

Chaos Monkey forced Netflix's architecture to tolerate instance loss without customer impact and turned failure drills into routine; the open-sourced tool got coverage in TechCrunch and Wired, Stack Exchange's Jeff Atwood credited the same idea for fixing his outages, and the practice grew into the discipline of chaos engineering.

他们自己的页面Simian Army on GitHub — Chaos Monkey source

可以借走的

不要等待你无法预测的宕机:在白天诱导小故障,并有工程师在旁观察,让系统和团队在凌晨3点的灾难来临前学会承受能力。

后来

Netflix持续扩展这一理念:延迟猴子、医生猴子、针对整个可用区的混沌金刚(Chaos Kong),以及后来的混沌自动化平台,并在2015年成立了专门的混沌工程团队。原始的“猩猩军团”仓库在2021年被退役,取而代之的是独立工具,但这一实践已超越Netflix——混沌工程成为了一种行业纪律,拥有书籍、会议、商业工具以及Capital One等采用者。

资料来源

发现哪里写错了?告诉我们。

轮到你了

你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。

免费账号 · 3 次免费提问 · 不用绑卡

相关案例