【猎云网(微信号:lieyun)】2月11日报道(编译:群保姆)
在过去的15年中,Facebook改变了朋友之间的沟通方式、处理家人关系、人们看待隐私的观点,以及我们如何理解来自俄罗斯的资讯,这些改变并非总是朝着更好的方向。Facebook也改变了计算方式。从Netflix到Uber再到Walmart的网站,我们每日使用的许多APP和服务都是利用Facebook率先开发并与全世界共享的技术构建的。
随着公司发展到服务数百万、甚至数十亿用户时,Facebook创建了一系列的工具,从能够处理大量用户信息的数据存储软件到托管这些数据库的数据中心的硬件规划。最近,Facebook开发了为其网页端和移动APP构建界面的新方法。至关重要的是,Facebook没有将这些创新保密,而是发布了大量的开源项目,这意味着其他任何人都可以使用、修改和分享Facebook的发明成果。
“多年以来,Facebook一直是开源的驱动力,与广大开源社区共享诸多关键技术,”Linux基金会执行董事Jim Zemlin这样说。该基金会拥有一个致力于服务GraphQL的组织,GraphQL是一种由Facebook创建的编程语言,用于处理当前许多其他公司使用的APP和服务器之间的通信。
由于Facebook的开放性,其许多技术已成为行业标准。“Facebook不仅在我们构建服务器的方式上发挥了巨大的作用,而且在我们为网页浏览器和手机编写代码方面发挥了巨大作用,”Airbnb的技术负责人Adam Neary说。“整个生态系统都是由Facebook开创并随后开源的技术推动的。”
大数据的诞生
Facebook对大型计算社区的首批重大贡献之一是Cassandra,这是一个可以扩展到数百或数千台服务器的数据库系统。
Facebook并不是第一家组建这样一个数据库的公司。亚马逊和谷歌都发表了详细介绍他们自己的分布式数据库创新的论文,但两家公司都没有真正发布这些内部应用程序的代码。Facebook工程师Avinash Lakshman曾参与过亚马逊的论文,而Prashant Malik则将亚马逊和谷歌的论文结合起来创建了Cassandra。然后,在2008年,他们发布了代码。很快这部分代码被其他公司采用,例如云计算公司Rackspace。
“他们不仅复制了谷歌和亚马逊的创新,他们还做了不同的事情,”Jonathan Ellis说道,他在Rackspace工作时曾经大量使用Cassandra,并在2010年参与DataStax的创立,DataStax是一家为企业客户提供Cassandra支持的公司。
根据网站DB-Engines的说法,如今Cassandra是世界上第11个最受欢迎的数据库。苹果、Netflix、Instagram和Uber都采用该技术并且为之作出持续的贡献。
Facebook也是开源数据处理平台Hadoop的早期贡献者,Hadoop几乎成了大数据的代名词。Hadoop的早期开发大部分是基于Google发布的论文,由雅虎完成。但Facebook是雅虎以外首批采用Hadoop并为该平台贡献附加工具的公司之一。Hadoop催生了多家创业公司,如Cloudera,由前Facebook研究科学家Jeff Hammerbacher参与创立。
Facebook近年来在人工智能研究方面投入了大量资金,以便更多地利用其数据,并且已经发布了一些相关成果。2015年,Facebook开放了一些人工智能算法的实现方式,用于当下很流行的人工智能平台Torch,比谷歌开放其AI引擎TensorFlow还要早一年。据数据科学家杰夫·黑尔(Jeff Hale)的一项分析显示,Facebook还为Torch的改版PyTorch提供资金,PyTorch现在是第三大最受欢迎的人工智能框架。
开放数据中心
Facebook构建可以处理数百万级用户的软件是不够的。Facebook还不得不设计计算机和建筑物来容纳和管理所有数据。
在此过程中,Facebook提出了一些不寻常的想法,从使用外部空气冷却而不是工业冷却系统的“露天”数据中心到“模块化”服务器,实现快速更换处理器和其他组件。
Facebook发布了所有这些设计方案作为“开放计算项目”的一部分,该项目现在是一个独立的组织。Facebook在2011年宣布“开放计算”时受到质疑。尽管开源软件已经很好地建立起来,但目前还不清楚Facebook的奇思妙想是否对其他公司有用。很快,像台湾公司广达电脑这样的供应商就开始销售基于Facebook设计的电脑,包括Rackspace,微软和苹果在内的其他公司也为这项计划贡献了硬件方面的设计。
如今,Facebook正在与爱立信和德国电信等电信公司合作开展电信基础设施项目,以帮助他们建立新的开源电信基础设施,包括一个名为ARIES的远程天线系统和一个名为Terragraph的无线连接无线电塔的系统。
完成拼图
在其第一个十年的大部分时间里,Facebook最广泛使用开源贡献的是这些幕后的基础设施。Netflix可能使用Cassandra来管理你在数据中心的信息,但这并不意味着你将在其网站上与Facebook的代码进行交互。这种情况在2013年开始发生变化,当时Facebook发布了React,这是一个开放源代码的“库”,Facebook和现在许多其他公司用其来构建看起来像原生APP的Web界面。
React过了一段时间才流行起来,但近年来它已成为构建“前端”应用程序最流行的库,超越了Google框架的Angular。Airbnb、Netflix和Walmart都使用React。
编程教学网站FreeCodeCamp的创始人Quincy Larson表示:“在2015年,我突然发现在旧金山的朋友们开始放弃像jQuery和Angular这样的工具,毅然决然地改成使用React。”
这可能与2015年React Native的发布有关。React Native使开发人员能够使用React为Android和iOS开发原生APP,这意味着他们可以为Web和移动应用程序使用相同的代码。
Facebook并不是第一个提供使用Web技术构建移动APP工具的公司,也不是第一个提供用于构建Web应用程序开源库工具的公司。但咨询公司Rightpoint的首席创新官Greg Raiz表示,将这两种想法结合起来是巨大的成果。“我认为这样故事就完整了,”他说。“这一步完成了整个拼图。”