乐趣区

关于运维:Netflix猿猴军团Simian-Army-IDCF

云是对于冗余和容错的。因为没有任何一个组件可能保障 100% 的失常运行工夫(即便是最低廉的硬件,最终也会呈现故障),咱们必须设计一个云架构,在这种架构中,单个组件能够呈现故障而不会影响整个零碎的可用性。

实际上,咱们必须做到,比咱们最单薄的那个环节更弱小。咱们能够应用一些技术,比方依赖性故障时的优雅降级,以及节点、机架、数据中心、可用区乃至区域的冗余部署。然而,仅仅设计一个容错架构是不够的。咱们必须一直地测试本人是否有能力在这些“难得一遇”的故障中生存下来。

设想一下轮胎瘪了。即便你的后备箱里有备胎,你晓得它是否充气了吗?你有弄它的工具吗?最重要的是,你还记得怎么做才是正确的吗?有一种办法,能够确保你能中午在下雨的高速公路上解决爆胎的问题,那就是:每个星期天下午,在你的轮胎上捅一个洞,而后进行更换轮胎的练习。在事实世界中,这既低廉又耗时,但在云上是(简直)收费的,还能自动化实现。

这就是咱们在构建 “混沌猴子(Chaos Monkey)” 时的理念。它是一个工具,能够随机禁用咱们的生产实例,以确保咱们可能在这种常见的故障类型中生存,而不会对客户造成任何影响。这个名字源于这样一个想法: 在数据中心(或云区域)开释一只带武器的野猴子,会随机击落实例(instance)和啃穿电缆,而在此期间,咱们继续、不间断地为客户提供着服务。

通过在工作日中运行的混沌猴子,在一个认真监控的环境中,工程师也随时待命解决任何问题,咱们依然能够汲取关乎零碎弱点的教训,并建设主动复原机制来进行解决。因而,当下一次在星期天凌晨 3 点呈现实例故障时,咱们甚至都不会留神到它。

受到混沌猴子胜利运行的启发,咱们曾经开始发明新的猿猴,它们能够引发各种故障或检测异常情况,并测试咱们的生存能力。这是一个虚构的“猿猴军队(Simian Army)”,放弃咱们的云的平安、牢靠和高可用性。

  • 提早猴子(Latency Monkey)在咱们的 RESTful 客户端 - 服务器通信层中,引入人工提早来模仿服务降级,并掂量上游服务是否适当地响应。此外,通过制作十分大的提早,咱们能够模仿一个节点甚至整个服务的停机工夫(并测试咱们在这种状况下的生存能力),而不用从物理上敞开这些实例。这在测试新服务的容错性时尤其有用,办法是模仿其依赖项的故障,而不会导致这些依赖项对系统的其余部分不可用。
  • 一致性猴子(Conformity Monkey)发现不合乎最佳实际的实例,并敞开它们。例如,咱们晓得,如果咱们发现有实例不属于主动扩容组,那么就可能会有麻烦的事件产生。咱们敞开它们,是为了让服务所有者有机会重新启动它们。
  • 医生猴子(Doctor Monkey)通过运行在每个实例上的健康检查,并监督内部的其余衰弱迹象(例如 CPU 负载),来检测不衰弱的实例。一旦检测到不衰弱的实例,它们将被从服务中移除,并在给服务所有者一些工夫来查找问题根因之后,最终将被终止掉。
  • 看门猴子(Janitor Monkey)确保咱们云环境的运行没有凌乱和节约。它搜寻未被应用的资源,并革除掉它们。
  • 平安猴子(Securiy Monkey)是一致性猴子的延长。它会发现平安违规项或破绽(如配置不当的 AWS 平安组),并终止有问题的实例。它还确保咱们所有的 SSL 和 DRM 认证都是无效的,并且不会过期。
  • 10-18 猴子(10-18 Monkey,本地化 - 国际化的缩写,或 110n-i18n)应用不同的语言和字符集,检测服务于多个天文区域客户实例中的配置和运行时问题。
  • 混沌大猩猩(Chaos Gorilla)相似于混沌猴子,但模仿了整个 Amazon 可用区(availability zone)的中断。咱们想验证咱们的服务是否能主动从新平衡到性能可用区,而不会导致用户可见的影响或手动干涉。

咱们身边的 Netflix 猿猴军团一直壮大,随着它们继续地测试咱们对各种故障的应变能力,对于解决生产环境中不可避免的故障、以及尽量减少或打消这些故障对用户的影响,咱们对本人的能力感觉更加自信。

云模型对咱们(以及这个行业的其他人)来说,都是全新的;容错的工作正在进行中,咱们有方法充沛实现它的益处。猿猴军团的一部分曾经构建好,但还有许多中央有心愿优化,期待有才华的工程师退出这项工作并使之成为事实。

新猿猴的创意,来得比咱们能跟上的速度更快。如果你有想法,咱们很乐意听到!猿猴军团是咱们推出的泛滥动作之一,旨在进步咱们服务的可靠性,并为客户提供继续一直的娱乐。

Source: Netflix Technology Blog, Jul 19, 2011

作者:Yury lzrailevsky, 云零碎基础设施总监;Ariel Tseitlin, 云解决方案总监

译者:林伟丹

首发:IDCF 社区

退出移动版