【Facebook】Facebook数据中心开源起因和哲学

导语:针对Facebook的开源技术开发,科技博客Venturebeat近日专门访问了Facebook开源项目主管大卫-瑞科多(David Recordon)和阿米尔-米迦勒(Amir Michael)以下为文章正文

今年4月份,Facebook发布Open Compute Project,意在加速数据中心和服务器创新。但是,实施一个开源项目不只是发布数据那么简单。Facebook还需要获得其他社区成员的支持。除此之外,Facebook开源硬件团队还要更为严峻的挑战。

Open Compute的始端

米迦勒此前曾效力于Google公司,他告诉VentureBeat,当他第一次来到Facebook时,“我对服务器和数据中心非常了解”。他不仅了解服务器网络架构,甚至可以作为数据中心维护人员亲自动手。在数据中心里,他经常参与服务器维护工作。

米迦勒表示,初到Facebook时,Facebook的业务范围非常大。我们向惠普和戴尔购置服务器,然后将服务器托管在Data Realty Trust。

但米迦勒暗示,十年间多数大型公司都无法以最智能、最有效的方式处理自己的数据。他表示:“我做过一些分析。我登陆过电子商务网站NewEgg.com,发现拼装起来的服务器价格与整台服务器是一样的。可见,商业模式并未发生作用。”

米迦勒意识到,Facebook不能盲目增加服务器的数量,而应该关注服务器的性能。他表示:“我意识到我们做了很多的无用功。我们开始思考如何改进我们的做法。通过优化数据中心和淡化服务器,你能取得一些效果。通过优化服务器和淡化数据中心,你也能取得一些效果。两者同时优化方可获得最大的利益。”

简而言之,这就是Open Compute Project项目诞生的原因。

最初,米迦勒和Facebook团队试图与硬件供应商合作。米迦勒表示:“供应商对我们的想法反应冷淡。他们计划做另外一些事情,但这些事对我们而言没有用处。他们想让我们购买其他客户使用的机器,但这些机器并不能满足我们的要求。”

重新设计服务器

从那时开始,Facebook硬件设计主管米迦勒便开始构思新一代服务器的设计。

“我们注意到事物总是按照原有的方式发展,这就是因循守旧。挑战旧观念,一切从零开始,这就是该项目的创新所在,”米迦勒表示。

例如,在Facebook新服务器中,电源传输到微处理器的方式就完全不同。Facebook硬件团队改变了服务器的布局和电源供应方式,甚至连电源线和电源插头都被重新设计,而且服务器的组装和维护无需任何工具。

实际上,新式服务器的耐用性是Facebook硬件团队的最大创新之一。米迦勒表示:“当你拥有数万台服务器时,每小时都会出现宕机问题,例如硬盘损坏,内存损毁等。我们的数据中心技术人员负责维护服务器。有时,他们会用上一整天的时间安装服务器配件。我们希望让他们的工作尽可能地轻松,并且更有效率。无需任何工具我们便可组装服务器,多数组件的组装速度是一般服务器组件的2至10倍。”

为了设计新服务器,Facebook每周六晚上会举行一次原型搭建聚会。

米迦勒表示:“我们让一些工程师组装服务器,我们则在一旁吃皮萨喝啤酒,比赛的目的就是看谁能以最快的速度组装一台服务器。数据中心的技术人员在8分钟内便可完成。”

革新的困境

当米迦勒完成新服务器的基本模型时,最初他并没有得到人们的认可。米迦勒表示,Facebook工程师们“满腹狐疑地”与这种服务器打交道,甚至连供应商也对它表示了“怀疑”。

米迦勒表示:“墨守成规和让人们接受新架构是我们遇到的最大挑战。让人们尝试一些新东西很难。”

对于硬件变革而言,情况尤为严重。相较之下,软件变革廉价且简单。米迦勒表示:“组织一项硬件开发,你需要一间实验室,新员工,以及设计原型。相关投资高达数百万美元。值得赞扬的是,Facebook管理层选择了这个边缘项目,这证明了Facebook有能力冒大风险,并鼓励创新。”

为了寻找新的硬件制造商,Facebook团队成员一次又一次地往返在美国与台湾之间。在招募一名机械工程师的同时,Facebook还起草了一份50多页的新服务器设计说明书。

米迦勒表示:“在白纸上设计是一回事,而设计细节更需要慎重。我们要定制所有的组件,并且要重新设计服务器,这些尤其应当谨慎。”

硬件开源

最终,Facebook团队还是选择让Open Compute Project开源,以此接受硬件开发者社区的贡献。

米迦勒表示:“很多工具尚未到位。如果有人想改变我们的电路板,他需要花费数十万美元来获得开发包。开发者一般无法负担得起。目前,多数贡献者都来自大公司。未来,我们有望进行改进,车库中的开发者也可以参与设计。”

借助合适的软件,普通开发者的创新设计不会逊于惠普或戴尔实验室的成果。目前,设计软件的价格也相当昂贵。不过,既然这是一种看不见摸不着的代码,它没有理由不免费。

Facebook希望与软件开发商合作,向Open Compute Project贡献者提供免费软件授权。Facebook也在考虑与其他公司和组织(如政府和大学)合作开发开源硬件设计软件。

新服务器原型开发还包括另一项高昂的成本。传统原型服务器的组建成本是量产服务器成本的5到10倍,因此普通开发者还是需要获得资金上的支持。

Facebook的开源哲学

Venturebeat问米迦勒,身在一家专有软件公司,践行开源项目是否有思想上的顾虑。米迦勒表示:“与项目中的其他人员一样,我与Facebook软件开发部门是分开的。这不是我每天所顾虑的问题。”

但米迦勒认为:“如果一家公司能够保持盈利,那么公司自然会选择在某些方面进行创新。Facebook需要与社区用户分享信息,激励他们进行开发。鉴于我们的商业模式,它就是向用户提供一种有价值的服务。我们使用的基础实施不是商业模式的核心部分。我们的优势是产品,不是服务器。”

米迦勒也认为:“工程师也是社会人,他们愿意讨论他们所从事的领域。当你分享信息,你就获得利益。你从其他人那获得反馈信息,即事半功倍,又节约成本。”

米迦勒称:“细究Facebook的相关开发,你会发现Facebook使用很多开源软件。我们为软件世界贡献了很多,但我们没有为硬件世界贡献什么。这也没有先例。但如果我们这样做,可能其他公司也会如此。他们无需浪费精力,他们也无需重复我们的开发过程。”

就与大学分享信息一事,米迦勒表示:“他们拥有有趣的方案,但他们没有足够的有关现实问题的数据。他们不了解产业经营。因此,与他们分享信息很有意义。”

米迦勒表示:“接着是环境影响问题。如果我们分享这些最佳的实践信息,我们希望其他人能接受它,并也能对行业环境产生影响。”