在過去的15年中,Facebook改變了朋友之間的溝通方式、處理家人關系、人們看待隱私的觀點,以及我們如何理解來自俄羅斯的資訊,這些改變并非總是朝著更好的方向。Facebook也改變了計算方式。從Netflix到Uber再到Walmart的網站,我們每日使用的許多APP和服務都是利用Facebook率先開發并與全世界共享的技術構建的。
隨著公司發展到服務數百萬、甚至數十億用戶時,Facebook創建了一系列的工具,從能夠處理大量用戶信息的數據存儲軟件到托管這些數據庫的數據中心的硬件規劃。最近,Facebook開發了為其網頁端和移動APP構建界面的新方法。至關重要的是,Facebook沒有將這些創新保密,而是發布了大量的開源項目,這意味著其他任何人都可以使用、修改和分享Facebook的發明成果。
“多年以來,Facebook一直是開源的驅動力,與廣大開源社區共享諸多關鍵技術,”Linux基金會執行董事Jim Zemlin這樣說。該基金會擁有一個致力于服務GraphQL的組織,GraphQL是一種由Facebook創建的編程語言,用于處理當前許多其他公司使用的APP和服務器之間的通信。
由于Facebook的開放性,其許多技術已成為行業標準?!癋acebook不僅在我們構建服務器的方式上發揮了巨大的作用,而且在我們為網頁瀏覽器和手機編寫代碼方面發揮了巨大作用,”Airbnb的技術負責人Adam Neary說。“整個生態系統都是由Facebook開創并隨后開源的技術推動的?!?/p>
大數據的誕生
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?!?/p>
這可能與2015年React Native的發布有關。React Native使開發人員能夠使用React為Android和iOS開發原生APP,這意味著他們可以為Web和移動應用程序使用相同的代碼。
Facebook并不是第一個提供使用Web技術構建移動APP工具的公司,也不是第一個提供用于構建Web應用程序開源庫工具的公司。但咨詢公司Rightpoint的首席創新官Greg Raiz表示,將這兩種想法結合起來是巨大的成果。“我認為這樣故事就完整了,”他說?!斑@一步完成了整個拼圖?!?/p>