玩转数据中心:Twitter复制谷歌成名秘密武器

 

伯格的回归:Twitter如何重建谷歌秘密武器

Twitter的本海因德曼

《连线》周二刊登了一篇署名为卡德梅茨(Cade Metz)的评论文章,借谷歌网络帝国最核心的软件系统伯格(Borg)分析了Twitter如何重建谷歌的秘密武器。

原文如下:

约翰威尔克斯(John Wilkes)说,加入谷歌就象是《黑客帝国》中的尼欧(Neo)吞下红药丸一样,那就是选择了觉醒。

4年前,威尔克斯只是知道谷歌这家公司而已。他与芸芸众生一样,每天的生活都与谷歌的各种服务如谷歌搜索、Gmail、谷歌地图等息息相关。随后,他加入了谷歌网络帝国最核心的工程技术团队,那个技术团队就相当于谷歌的大脑,支持谷歌所有的网络服务所需的最基本的硬件和软件系统都是由他们设计的。

这些系统横跨在一个全球性的数据中心网络之上,每一秒处理的网络指令高达数十亿条。威尔克斯第一次看到那些系统工作时的场景时,他感觉自己就象是吞下了红药丸之后的尼欧一样,摆脱了矩阵(Matrix)创造的虚拟世界,突然就看到了一个由无数机器组成的庞大网络。

看着庞大的网络,他变得不知所措了。要知道,他可是一位在惠普试验室工作了25年的资深研究员,多年来一直在从事现代计算最先进技术的研究工作。

威尔克斯说:“我是过去时代的人,我认为兆级容量就已经很大了。但是等我到了谷歌之后,我必须在所有的数据后面都加上3个0。”他解释说,那种感觉就象是一个人从生活了很多年的小地方突然来到一个全新的广阔天地一样。在谷歌,某个存储数据的系统剩余的空间还剩几个PB(存储容量单位,1PB=1000GB=1000000MB)时,系统就会向管理员发出警报。换句话说,只要几个小时,谷歌数据中心里的一组设备就会被海量的数据填满。

当他还在绞尽脑汁地想象谷歌的数据中心帝国到底有多大时,威尔克斯接到任务,负责开发支持谷歌整个网络帝国的软件系统。

这个软件系统被称作“伯格”(Borg)系统,它也是谷歌之所以能够迅速成为互联网上最强大的力量背后的最隐秘的机密之一。威尔克斯甚至都不愿叫它“伯格”。他说:“我宁愿称之为不会被命名的系统。”但他透露,谷歌使用该系统已有9、10年的光景了。他和他的团队正在开发一个新版本的工具,产品代码为“欧米茄”(Omega)。

伯格系统可以非常高效地将任务分配到谷歌数量庞大的计算机服务器中去。威尔克斯称,这个系统的效率非常高,它可能帮谷歌省下了足以再多建一个数据中心的成本。没错,一个完整的数据中心。那也许看起来就象是天外来客一样,从某种角度来说,它确实是天外来客。但是,谷歌为了运行其庞大的网络帝国而开发的新时代硬件和软件通常会慢慢地渗透到互联网的各个角落。伯格系统也不例外。

在Twitter,有一个小规模的工程师团队利用加州伯克莱大学的研究员们开发出来的一个名为“Mesos”的软件平台开发出了一款类似的系统。由于“Mesos”平台是一款开源软件,因此任何人都可以免费使用它,这个平台也逐渐在向其他领域扩展。

伯格这个名称非常贴切。谷歌的这个系统就是一个中央大脑,可以控制谷歌所有数据中心上的全部任务。谷歌不用为每一个软件系统如谷歌搜索、Gmail、谷歌地图等各搭建一组独立的服务器,它只需搭建一组服务器来同时执行各种不同的任务就行了。所有的任务都会被分割成细小的任务,然后由伯格系统将那些任务发送到它能找到空闲计算资源的地方。

威尔克斯说,这就好像是一大堆积木一样,每块积木的外形和大小都是不同的。伯格系统的任务就是找到一种将所有的积木都装入木桶中的方法。这里所说的积木就好比是计算机任务,木桶就好比是服务器,关键是不能浪费木桶中的任何空间。

威尔克斯说:“如果你只是简单地将积木丢到木桶里,那么你要么会剩下很多积木装不进去,要么会造成有的木桶装得满,有的木桶装不满的情况,因为积木与积木之间贴合得并不紧密,那样就会浪费掉不少的空间。但是如果你细心去安排如何装积木的话,你就可以减少木桶的需用量。”

还有其他的方法可以做到这一点。你可以利用服务器虚拟化技术来达到相同的目的。但是虚拟化会额外增加不必要的复杂性,如果去掉这个因素,谷歌就可以将数据中心基础设施的规模减小几个百分点。考虑到谷歌数据中心网络的规模,那几个百分点对应的可能就是一个完整的数据中心。

威尔克斯说:“那就相当于另外再建一个数据中心,这里增加一点,那里增加一点,最后汇总起来,那就是一大笔开支。”

在Twitter,Mesos并不具备与伯格系统一样规模的影响力。Twitter的业务规模比谷歌的业务规模要小得多,但是Twitter的业务总是在不断的发展壮大,Mesos可以更好地控制业务规模的增长速度。伯格和Mesos并不只是从服务器群中提取计算能力。它们可以让谷歌和Twitter那样的公司将数据中心当做一台设备来对待。

谷歌和Twitter可以象你在你的台式机电脑上运行软件那样在这些计算设备上运行软件。这样就可以简化Gmail、谷歌地图和Twitter应用的开发人员的工作。

曾经在加州伯克莱大学创立Mesos项目、目前在Twitter担任Mesos项目总监的本海因德曼(Ben Hindman)称:“Mesos可以简化Twitter工程师的工作,他们只需考虑在一个数据中心的平台上运行他们开发的应用软件就行了。那真的是很棒。”