Twitter详细介绍了其用于模拟硬件故障的家庭酿造框架
维护公司数据中心的人在停电或硬件故障时不想被惊喜。他们希望放心,任何事件都会很好。
多年前,Netflix工程师开发了名为Chaos Monkey的软件,它可以用底层亚马逊Web服务云基础架构造成问题,即大量Netflix应用程序取决于。这个想法是,工程师可以提前发出如何让系统如此强大,可以承受这种问题。今天,Twitter首次谈论其程序员建立了模拟硬件故障并揭示他们对Twitter软件的影响。
“这使我们能够发现漏洞,以便我们更好地准备处理一个网站的事件,”基础设施和运营的推特负责人Mazdak Hashemi在博客文章中写道。“通过在我们自己的系统中引起失败,我们能够构建更多的弹性服务。”
Twitter经常构建自己的软件,以满足自己的需求。这包括开源工具烫伤,summingbird和diffy。Hashemi没有说Twitter在开源许可证下是否会释放(未命名的!?)失败测试框架,但最终会发生这种情况并不令人惊讶。
该框架包括三个部分:“恶作剧模块”创建,然后撤消故障,“监视模块”检查,检查是否在Twitter上实际上是在Twitter(如果是测试停止)和“通知模块”的事物,以通知Twitter团队关于测试的“通知模块”。 。
该框架允许Twitter来了解在MESOS集群中运行的电源损耗,网络丢失或推特软件丢失时会发生什么(考虑可以运行多个应用程序的一组大组)。
到目前为止,这项技术派上推特工程师充满了帮助。
“这一框架在过去的六个月里推动了Twitter的所有失败测试,并帮助我们在我们的堆栈中发现了许多漏洞,”Hashemi写道。“此外,它还给了我们对我们几个主要系统的失败弹性的信心,例如Apache Mesos和Apache Aurora,在那里我们测试了大规模的失败,导致没有面向用户的影响。”
查看完整博客帖子以获取有关该框架的更多信息。