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