Facebook 的另一面:改变计算机技术,推动开源
编者按:Facebook是什么?世界上最大的社交媒体?这是大部分人对它的认知。近日,《连线》杂志发表了一篇文章指出,在最大的社交媒体后面,Facebook也为计算的变迁做出了大量的贡献。由于 Facebook 的开放性,它的许多技术已经成为行业标准。文章原题为“How Facebook Has Changed Computing”。
在过去的15年里,Facebook 改变了我们与朋友保持联系的方式,改变了我们与家人争吵的方式,改变了我们对隐私的看法,改变了我们对政府宣传的消费方式。
但Facebook不仅于此,它也改变了计算机。从Netflix到Uber再到沃尔玛网站,我们每天使用的许多应用和服务都是建立在 Facebook 开发的技术之上。
随着Facebook不断壮大,要容纳数百万乃至数十亿用户,它不得不创造各种工具,从能够处理数量惊人的用户信息的数据存储软件,到承载这些数据库的数据中心的硬件。
最近,它创造了新的方式来为它的网络和移动应用程序构建界面。至关重要的是,Facebook 并没有把这些创意保留给自己。
它以开源的方式发布了大量工作成果,这意味着任何其他人都可以使用、修改和分享 Facebook 的发明。
Linux基金会的执行董事吉姆·泽姆林(Jim Zemlin)说:“多年来,Facebook一直是开源的推动力量,与更广泛的社区分享许多关键技术。”
这家基金会拥有一个专门致力于GraphQL的组织,Graphql是Facebook创建的一种编程语言,用于处理应用程序和服务器之间的通信,现在许多其他公司都在使用这种语言。
由于 Facebook 的开放性,它的许多技术已经成为行业标准。
Airbnb 技术主管亚当·内瑞(Adam Neary)表示:“Facebook在转变我们构建服务器的方式,以及我们为浏览器和手机编写代码方面发挥了巨大作用。整个生态系统都是由Facebook开创并随后开源的技术驱动的。”
大数据的诞生
Facebook对更大的计算社区的最大贡献是Cassandra,这是一个可以跨数百或数千台服务器扩展的数据库系统。
Facebook不是第一家建立这样一个数据库的公司。亚马逊和谷歌都发表过相关论文,详细介绍了它们自己的分布式数据库创新,但是两家公司都没有发布这些内部应用程序的代码。
Facebook工程师阿维纳什·拉克什曼(Avinash lakshmi)曾是亚马逊论文项目成员,他和普拉珊特·马利克(Prashant Malik)结合了亚马逊和谷歌论文的想法,创建了Cassandra。
然后,在2008年,他们发布了代码。不久,Cassandra就被其他公司使用,比如云计算公司Rackspace。
乔纳森·埃利斯(Jonathan Ellis)说:“他们不仅仅是模仿谷歌和亚马逊所做的事情,而是创新,他们做了一些不同的事情。”
2010年,乔纳森·埃利斯在Rackspace任职期间广泛使用Cassandra,并与他人共同创立了DataStax,一家为公司客户支持Cassandra的公司。
今天,根据 DB-Engines 网站的数据,在世界最受欢迎的数据库排行榜上,Cassandra排名第11。 苹果、 Netflix、 Instagram 和 Uber 都是这个项目的用户和贡献者。
Facebook也是开源数据处理平台Hadoop的早期贡献者,Hadoop几乎成为了大数据的同义词。
Hadoop基于谷歌之前发表一篇论文,早期开发大部分是由雅虎完成的。
但是Facebook是雅虎之外第一批采用Hadoop并为平台贡献额外工具的公司之一。
Hadoop催生了多个创业公司,如Cloudera,它是由前Facebook研究科学家杰夫·哈默巴赫(Jeff Hammerbacher)与人共同创立的。
近年来,Facebook 在人工智能研究方面投入了大量资金,以便更好地利用自己的数据,它也发表了部分研究成果。
2015年,这家公司开放了部分人工智能算法的源代码,用于一个叫做 Torch 的人工智能平台,这比谷歌开放人工智能引擎 TensorFlow 早了将近一年。
然后,Facebook 继续资助Torch变体 PyTorch 的开发,这是目前第三大流行的人工智能框架。
开放数据中心
对于 Facebook 来说,仅仅开发能够处理数百万用户的软件是不够的。这家公司还必须设计计算机和建筑物来管理所有的数据。
在此过程中,Facebook提出了一些不同寻常的想法,从使用外部空气冷却而非工业冷却系统的“露天”数据中心,到让你能够快速更换处理器和其他组件的“模块化”服务器。
作为Open Compute Project的一部分,Facebook发布了所有这些设计,这个项目现在是一个独立的组织。
Facebook在2011年宣布Open Compute时遭到了质疑。尽管当时开源软件已经非常成熟,但 Facebook 的特殊想法是否对其他公司有用尚不清楚。
但是很快,像台湾公司Quanta这样的供应商开始销售基于Facebook设计的计算机,其他公司包括Rackspace、微软和苹果也为这项计划贡献了自己的硬件设计方案。
如今,Facebook正与爱立信和德国电信等电信公司合作开展电信基础设施项目,以帮助它们建设新的开源电信基础设施,包括一个名为ARIES的远程天线系统和一个名为Terragraph的无线信号塔连接系统。
完成拼图
在其最初十年的大部分时间里,被广泛使用的Facebook开源贡献就是这些幕后基础设施。
Netflix可能使用Cassandra在数据中心管理你的信息,但这并不意味着你会在它的网站上与 Facebook 代码进行交互。
这种情况在2013年开始改变,当时Facebook发布了Response,这是一个开源代码的“库”,Facebook和其他许多公司用它来构建看起来和感觉起来都像原生应用程序的web界面。
Response花了一些时间才赶上,但近年来,它已经成为构建“前端”应用程序最广泛使用的库,超越了谷歌的框架Angular。Airbnb、Netflix和沃尔玛都使用React。
编程教育网站FreeCodeCamp的创始人昆西·拉森(Quincy Larson)说:“2015年,我注意到,我在旧金山的朋友们突然放弃了 jQuery 和 Angular 这样的工具,转而使用 React,他们非常信赖 React。”
这可能与2015年 React Native 的发布有关。 React Native 允许开发者使用 React 为 Android 和 iOS 开发原生应用程序,这意味着他们可以使用相同的代码开发web和移动应用程序。
Facebook不是第一个提供使用web技术构建移动应用的工具的,也不是第一个提供构建web应用的开源库的。
但是,咨询公司Rightpoint的首席创新官格雷格·雷兹(Greg Raiz)说,这两种想法结合在一起使它与众不同。“我认为这是一个整体的故事,”他说。“它帮助我们完成了拼图。”
原文链接:https://www.wired.com/story/how-facebook-has-changed-computing/