有没有实施和有效应对“混沌猴子”的例子?


15

杰夫·阿特伍德(Jeff Atwood)最近写了一篇关于Netflix实现“混沌猴子” 的博客文章。这是一篇非常高级的文章。我很好奇是否有人实际实施了该技术来测试系统。

我想我真正想问的是:您采用什么策略来确保您的体系结构能够在系统崩溃的一部分中生存下来?


1
也许,您使用哪些策略来测试这种架构?
rlb.usa 2011年

...嗯,我想我们正在等待netflix团队中的某个人来回答这个大声笑
Earlz 2011年

我可能会为此悬赏。可能会有一些非常有趣的答案
Robotsushi 2011年

1
同意...但是属于程序员,而不是SO。投票迁移。

Answers:


5

隔离正常降级是一般策略。(您可能会看到与隔离类似的另一个术语是去耦,尽管我倾向于在较小的范围内(如OOD / P中看到)。概念是相同的。)

您可以将系统的不同部分相互隔离,这样,如果一个部分出现故障,其他部分仍然可以响应请求。就像Netflix博客所说,如果搜索不起作用,流媒体仍然可以。这仅意味着搜索和流媒体之间的距离足够远,以至于一个瓶颈或功能丧失不会影响另一个。

随着性能的下降,如果无法实现某些功能的最佳实现,则您需要填写其他内容。再次从Netflix帖子中,他们拥有一个系统,可以查看您观看和喜欢的内容,然后针对其他内容制定个性化建议要注意的事情。如果该系统出现故障,它们将退回以显示整体受欢迎的事物的建议。关键是要让计划B,计划C等在计划A失败时执行或显示某些内容,而不是什么也不显示任何错误。

正常降级(无论实现与否)的一个常见客户端示例涉及在网站上使用javascript。如果浏览器的javascript被禁用或根本不可用,那么没有它,该网站的页面仍将成功运行。它可能不那么快或很流畅,但它应该仍然有效而不是变得不可用。

这些是非常笼统的想法。几乎每个项目都会根据其提供的服务和子系统以及它们之间的依赖关系,以不同的方式实现它们。

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.