舉例來說,Facebook在過去十年就打造了一個包含15個大型數據中心以及數百邊緣網絡站點的全球性網絡,負責運作服務數億用戶、數以千計的軟件程序,而且每兩個小時就有一次軟件更新。該公司工程與基礎建設主管Jay Parikh表示:“當你正在打造的分布式系統每天會影響數十億人,真的很酷…也很嚇人。”
Parikhy在該公司首度于美國加州總部舉行的大型分布式軟件系統研討會上,對臺下約200名軟件工程師與來賓表示:“我們處理的所有事情都是分布式系統問題,這在過去的擴展式(scaled)環境中是從未做過的…包括自己布建海底電纜──都是這個產業以往不曾處理過的。”
他指出,計算機與網絡硬件遭遇的挑戰,還有在硬件中執行的數據庫與其他軟件“會相互影響,衍生出關于效率、文化、預算編列…等等問題,所有事情都會互相連結。”
這場活動還邀請到了來自亞馬遜云端服務(Amazon Web Services)、Google、共乘服務業者Lyft,以及電商平臺Shopify等公司的程序設計師,分享最新的技術,以及探討利用包括管理全球性分布式數據庫、系統除錯,還有如何在系統中斷時加速復原等議題。
Facebook討論了兩項開放源碼分布式軟件系統工作的進展,一是能快速將配置變化推送到數以百萬計服務器的架構,另一項是處理操作系統用戶空間中內存失序問題的程序。
它們是Facebook為了支持旗下四大被廣泛使用之應用程序──News Feed、Instagram、Messenger與WhatsApp──以及用戶族群規模較小的Oculus軟件,所打造之廣大云端運算軟件平臺的一部分。
一個Facebook數據中心的概念圖,包含兩個60MW數據中心(前面)和三個30MW建筑物。 (圖片來源:Facebook)
Facebook一直在慢慢將網絡架構中的現成商用軟硬件以自家開發的軟件或硬件方案來取代,并將之轉為開源;舉例來說,在過去幾年,該公司將現成的數據庫(MySQL)、儲存(Memcached)程序與網絡服務語言(PHP),以自家開發的程序代碼取代,并釋出為開源碼。
在總部舉行的這場Systems@Scale活動,亞洲服務器租用 歐洲服務器,也是為了要讓Facebook的軟件工程師能與其他公司的同業相互交流,目標是加速為他們面臨之分布式系統挑戰尋找通用解決方案的腳步。
在硬件方面,Facebook現在一般都是使用以現成芯片、采用自家規格打造的服務器與交換機,而非來自供應商的商用系統。有業界消息指出,Facebook從今年春天起就一直在招募半導體工程師;該公司發言人婉拒對此發表評論,僅透露可能會在9月舉辦的一場活動中討論到關于芯片開發的計劃。
Facebook的系統硬件規格通常透過2011年成立的Open Compute Project釋出開源碼,該公司是否也會在未來將自己設計的芯片規格開放,還有待觀察。
Facebook在全球有15座大型數據中心,但其實比起Amazon截至2017年在全球的18個據點仍相形見絀;Amazon的據點各有數量不一的數據中心(黃圈中的數字)
(來源:“Computer Architecture: A Quantitative Approach,” Hennessy/Patterson)
另一個更大的問題是,Facebook與其競爭對手要以瘋狂的速度將運算世界的未來帶向何方,還有他們可能遭遇的瓶頸為何?
某些美國的立法者認為,Facebook因為在上一次總統大選讓外來者利用其自動化系統影響了數以百萬計的選民,已經觸及了政治上的一道障礙;也有人說他們是在玩弄消費者,那些無辜使用者開心分享的每一項數據都被販賣,但是到目前為止幾乎不受政府監督。
在技術上,這家網絡巨擘多年來推動速度更快的銅纜與光學網絡,他們同時需要這兩種技術來數據中心內連結數量更龐大的服務器以及數據中心本身。
多年來,網絡工程師在催生Terabit/sec等級網絡的行動上一直有所延遲,香港服務器租用,Terabit/sec網絡的速度超越其他商用需求,在某些程度上甚至超越了摩爾定律或物理定律的極限。無論Facebook等公司不斷擴大數據中心規模的趨勢將會帶來什么結果,顯然我們會很快看到。
未來的場景就如同Parikh所言,會“很酷也很嚇人”;網絡巨擘們正在以前所未見的速度打造、擴充大型自動化系統,數以百億計的消費者與成千上萬的企業,則正在大量吞噬他們運作的各種服務。他表示:“讓我振作的第一大動力,就是在穩定的基礎建設上快速行動。”