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/
拓展閱讀:
編譯組出品。編輯:郝鵬程