在過去的15年中,Facebook改變了朋友之間的溝通方式、處理家人關(guān)系、人們看待隱私的觀點(diǎn),以及我們?nèi)绾卫斫鈦碜远砹_斯的資訊,這些改變并非總是朝著更好的方向。Facebook也改變了計(jì)算方式。從Netflix到Uber再到Walmart的網(wǎng)站,我們每日使用的許多APP和服務(wù)都是利用Facebook率先開發(fā)并與全世界共享的技術(shù)構(gòu)建的。
隨著公司發(fā)展到服務(wù)數(shù)百萬、甚至數(shù)十億用戶時(shí),F(xiàn)acebook創(chuàng)建了一系列的工具,從能夠處理大量用戶信息的數(shù)據(jù)存儲(chǔ)軟件到托管這些數(shù)據(jù)庫(kù)的數(shù)據(jù)中心的硬件規(guī)劃。最近,F(xiàn)acebook開發(fā)了為其網(wǎng)頁(yè)端和移動(dòng)APP構(gòu)建界面的新方法。至關(guān)重要的是,F(xiàn)acebook沒有將這些創(chuàng)新保密,而是發(fā)布了大量的開源項(xiàng)目,這意味著其他任何人都可以使用、修改和分享Facebook的發(fā)明成果。
“多年以來,F(xiàn)acebook一直是開源的驅(qū)動(dòng)力,與廣大開源社區(qū)共享諸多關(guān)鍵技術(shù),”Linux基金會(huì)執(zhí)行董事Jim Zemlin這樣說。該基金會(huì)擁有一個(gè)致力于服務(wù)GraphQL的組織,GraphQL是一種由Facebook創(chuàng)建的編程語(yǔ)言,用于處理當(dāng)前許多其他公司使用的APP和服務(wù)器之間的通信。
由于Facebook的開放性,其許多技術(shù)已成為行業(yè)標(biāo)準(zhǔn)?!癋acebook不僅在我們構(gòu)建服務(wù)器的方式上發(fā)揮了巨大的作用,而且在我們?yōu)榫W(wǎng)頁(yè)瀏覽器和手機(jī)編寫代碼方面發(fā)揮了巨大作用,”Airbnb的技術(shù)負(fù)責(zé)人Adam Neary說?!罢麄€(gè)生態(tài)系統(tǒng)都是由Facebook開創(chuàng)并隨后開源的技術(shù)推動(dòng)的。”
大數(shù)據(jù)的誕生
Facebook對(duì)大型計(jì)算社區(qū)的首批重大貢獻(xiàn)之一是Cassandra,這是一個(gè)可以擴(kuò)展到數(shù)百或數(shù)千臺(tái)服務(wù)器的數(shù)據(jù)庫(kù)系統(tǒng)。
Facebook并不是第一家組建這樣一個(gè)數(shù)據(jù)庫(kù)的公司。亞馬遜和谷歌都發(fā)表了詳細(xì)介紹他們自己的分布式數(shù)據(jù)庫(kù)創(chuàng)新的論文,但兩家公司都沒有真正發(fā)布這些內(nèi)部應(yīng)用程序的代碼。Facebook工程師Avinash Lakshman曾參與過亞馬遜的論文,而Prashant Malik則將亞馬遜和谷歌的論文結(jié)合起來創(chuàng)建了Cassandra。然后,在2008年,他們發(fā)布了代碼。很快這部分代碼被其他公司采用,例如云計(jì)算公司Rackspace。
“他們不僅復(fù)制了谷歌和亞馬遜的創(chuàng)新,他們還做了不同的事情,”Jonathan Ellis說道,他在Rackspace工作時(shí)曾經(jīng)大量使用Cassandra,并在2010年參與DataStax的創(chuàng)立,DataStax是一家為企業(yè)客戶提供Cassandra支持的公司。
根據(jù)網(wǎng)站DB-Engines的說法,如今Cassandra是世界上第11個(gè)最受歡迎的數(shù)據(jù)庫(kù)。蘋果、Netflix、Instagram和Uber都采用該技術(shù)并且為之作出持續(xù)的貢獻(xiàn)。
Facebook也是開源數(shù)據(jù)處理平臺(tái)Hadoop的早期貢獻(xiàn)者,Hadoop幾乎成了大數(shù)據(jù)的代名詞。Hadoop的早期開發(fā)大部分是基于Google發(fā)布的論文,由雅虎完成。但Facebook是雅虎以外首批采用Hadoop并為該平臺(tái)貢獻(xiàn)附加工具的公司之一。Hadoop催生了多家創(chuàng)業(yè)公司,如Cloudera,由前Facebook研究科學(xué)家Jeff Hammerbacher參與創(chuàng)立。
Facebook近年來在人工智能研究方面投入了大量資金,以便更多地利用其數(shù)據(jù),并且已經(jīng)發(fā)布了一些相關(guān)成果。2015年,F(xiàn)acebook開放了一些人工智能算法的實(shí)現(xiàn)方式,用于當(dāng)下很流行的人工智能平臺(tái)Torch,比谷歌開放其AI引擎TensorFlow還要早一年。據(jù)數(shù)據(jù)科學(xué)家杰夫·黑爾(Jeff Hale)的一項(xiàng)分析顯示,F(xiàn)acebook還為Torch的改版PyTorch提供資金,PyTorch現(xiàn)在是第三大最受歡迎的人工智能框架。
開放數(shù)據(jù)中心
Facebook構(gòu)建可以處理數(shù)百萬級(jí)用戶的軟件是不夠的。Facebook還不得不設(shè)計(jì)計(jì)算機(jī)和建筑物來容納和管理所有數(shù)據(jù)。
在此過程中,F(xiàn)acebook提出了一些不尋常的想法,從使用外部空氣冷卻而不是工業(yè)冷卻系統(tǒng)的“露天”數(shù)據(jù)中心到“模塊化”服務(wù)器,實(shí)現(xiàn)快速更換處理器和其他組件。
Facebook發(fā)布了所有這些設(shè)計(jì)方案作為“開放計(jì)算項(xiàng)目”的一部分,該項(xiàng)目現(xiàn)在是一個(gè)獨(dú)立的組織。Facebook在2011年宣布“開放計(jì)算”時(shí)受到質(zhì)疑。盡管開源軟件已經(jīng)很好地建立起來,但目前還不清楚Facebook的奇思妙想是否對(duì)其他公司有用。很快,像臺(tái)灣公司廣達(dá)電腦這樣的供應(yīng)商就開始銷售基于Facebook設(shè)計(jì)的電腦,包括Rackspace,微軟和蘋果在內(nèi)的其他公司也為這項(xiàng)計(jì)劃貢獻(xiàn)了硬件方面的設(shè)計(jì)。
如今,F(xiàn)acebook正在與愛立信和德國(guó)電信等電信公司合作開展電信基礎(chǔ)設(shè)施項(xiàng)目,以幫助他們建立新的開源電信基礎(chǔ)設(shè)施,包括一個(gè)名為ARIES的遠(yuǎn)程天線系統(tǒng)和一個(gè)名為Terragraph的無線連接無線電塔的系統(tǒng)。
完成拼圖
在其第一個(gè)十年的大部分時(shí)間里,F(xiàn)acebook最廣泛使用開源貢獻(xiàn)的是這些幕后的基礎(chǔ)設(shè)施。Netflix可能使用Cassandra來管理你在數(shù)據(jù)中心的信息,但這并不意味著你將在其網(wǎng)站上與Facebook的代碼進(jìn)行交互。這種情況在2013年開始發(fā)生變化,當(dāng)時(shí)Facebook發(fā)布了React,這是一個(gè)開放源代碼的“庫(kù)”,F(xiàn)acebook和現(xiàn)在許多其他公司用其來構(gòu)建看起來像原生APP的Web界面。
React過了一段時(shí)間才流行起來,但近年來它已成為構(gòu)建“前端”應(yīng)用程序最流行的庫(kù),超越了Google框架的Angular。Airbnb、Netflix和Walmart都使用React。
編程教學(xué)網(wǎng)站FreeCodeCamp的創(chuàng)始人Quincy Larson表示:“在2015年,我突然發(fā)現(xiàn)在舊金山的朋友們開始放棄像jQuery和Angular這樣的工具,毅然決然地改成使用React。”
這可能與2015年React Native的發(fā)布有關(guān)。React Native使開發(fā)人員能夠使用React為Android和iOS開發(fā)原生APP,這意味著他們可以為Web和移動(dòng)應(yīng)用程序使用相同的代碼。
Facebook并不是第一個(gè)提供使用Web技術(shù)構(gòu)建移動(dòng)APP工具的公司,也不是第一個(gè)提供用于構(gòu)建Web應(yīng)用程序開源庫(kù)工具的公司。但咨詢公司Rightpoint的首席創(chuàng)新官Greg Raiz表示,將這兩種想法結(jié)合起來是巨大的成果?!拔艺J(rèn)為這樣故事就完整了,”他說?!斑@一步完成了整個(gè)拼圖?!?/p>