读书人

结识“混世魔猴”

发布时间: 2013-01-28 11:49:56 作者: rapoo

结交“混世魔猴”

去年年底,Netflix技术博客上发表了这么一篇文章,题为“转向亚马逊网络服务过程中学到的五个教训”(5Lessons We’ve Learned Using AWS)。亚马逊网络服务(Amazon Web Services,以下简称AWS)无疑是所谓的“云计算”的杰出代表。因此,这篇文章实际上也可以看成是给任何想要转向“云”的网站的关键性建议。当然,这些建议的确很棒!下面是一条最让我震惊的:

译者注:Netflix是一家美国公司,在美国、加拿大等地提供互联网随选流媒体播放,以及DVD、蓝光光碟的在线租赁业务。该公司成立于1997年,总部位于加利福尼亚州的洛斯盖图。1999年开始订阅服务。到2009年,该公司可提供多达10万部DVD电影,并有1000万的订阅用户。

结识“混世魔猴”

我们时常把Netflix在AWS里的软件架构称作为“蓝博”。不管怎么样,哪怕不借助任何外力,每个系统都要有自我实现成功的能力。我们在设计每一个分布式系统时,对我们所依赖的其他系统的容错能力总是会充分考虑的。

译者注:蓝博(Rambo)是电影《第一滴血》里男主角的名字,他是一个所向披靡的孤胆英雄的形象。

如果我们的推荐系统当机了,我们对客户响应的质量肯定会下降,但我们仍然是有应必答的。虽然在这种情况下做不了个性化的推荐,但我们会把最流行的电影推荐给客户。如果我们的搜索系统突然慢得让人无法忍受,但这绝对不会妨碍用户以流媒体的方式观看电影。

我们的工程师最早在AWS里创建的一个系统其实是“混世魔猴”。这只猴子的工作就是捣蛋,它要随机杀死我们系统架构里的组件或服务。如果我们不持续检验我们在失败面前自我恢复乃至成功的能力,那这个系统很有可能就是会在关键时刻掉链子。

猛一看,你肯定觉得这条建议太疯狂!但我们必须面对它。我不确定会有多少公司认同这样的做法,更别说有多少公司会真的去尝试了。如果在你工作的地方,有人部署了一个后台程序或服务,专门用于随机杀死你的服务器集群里的服务或进程,请举手!

如果这个人还没被你的公司解雇,请举起你的另外一只手!

但凡大脑正常的人,怎么会愿意去结交一只“混世魔猴”呢?

结识“混世魔猴”

其实,有时候你没的选择;“混世魔猴”会自己找上门!StackExchange网络曾经碰到过一个诡异的问题,我们也为此苦苦挣扎了几个月。这个问题是:每隔几天,Oregon网络中心的某台服务器总会突然对来自外部网络的任何请求停止响应。没有原因;毫无道理;而且必须经过缓慢的关机、重启之后才能恢复,期间还会让服务器出现蓝屏现象……

我们花了几个月——真正是几个月的时间——去追踪这个问题。我们还把可能的原因列了很长的一个清单,一项一项去排除:

读书人网 >其他相关

热点推荐