談?wù)剣獾幕ヂ?lián)網(wǎng)巨頭的骨干網(wǎng)和邊緣網(wǎng)絡(luò),領(lǐng)略其獨特設(shè)計,其中 Facebook 和 Google 的網(wǎng)絡(luò)主要是服務(wù)自身的產(chǎn)品和廣大互聯(lián)網(wǎng)用戶,Amazon 和 Microsoft 在云服務(wù)的業(yè)務(wù)相對多些。
作者:張向陽,騰訊CSIG后臺開發(fā)工程師
本文主要講一下國外的互聯(lián)網(wǎng)巨頭的骨干網(wǎng),每家公司的網(wǎng)絡(luò)都有獨特設(shè)計,其中 Facebook 和 Google 的網(wǎng)絡(luò)主要是服務(wù)自身的產(chǎn)品和廣大互聯(lián)網(wǎng)用戶,Amazon 和 Microsoft 在云服務(wù)的業(yè)務(wù)相對多些。
Facebook、Google、Microsoft 的網(wǎng)絡(luò)在公開的論文都有比較詳細的描述,而 Amazon 的底層網(wǎng)絡(luò)相對的公開資料不多,在即刻構(gòu)建 AWS 技術(shù)峰會 2019,AWS 的架構(gòu)師分享了 AWS 的底層網(wǎng)絡(luò)(第 3 章節(jié)或者參考文獻),還是很值得學(xué)習(xí)。
目前 Facebook 公司系列產(chǎn)品有月活 30+億用戶,他們需要一個服務(wù)不間斷、隨時能訪問的網(wǎng)站。為了實現(xiàn)這個目標, Facebook 在后端部署了很多先進的子系統(tǒng)和基礎(chǔ)設(shè)施 ,可擴展、高性能網(wǎng)絡(luò)就是其中之 一。
Facebook 的網(wǎng)絡(luò)本身就是一個大型分布式系統(tǒng),針對不同任務(wù)劃分成不同層次并采用不同的技術(shù):
遍布在用戶密集區(qū)的數(shù)量龐大的PoP/LB/cache通過骨干網(wǎng)作為偏遠地區(qū)、低成本、數(shù)量可控的超大型數(shù)據(jù)中心的延伸。
從流量模型看,F(xiàn)acebook 分為兩種類型。
1、外部流量:到互聯(lián)網(wǎng)的流量(Machine-to-User)。
2、內(nèi)部流量:數(shù)據(jù)中心內(nèi)部的流量(Machine-to-Machine)。
其中,F(xiàn)acebook 數(shù)據(jù)中心內(nèi)部的流量要比到互聯(lián)網(wǎng)的流量大幾個數(shù)量級,如下圖所示。
機器對機器的流量通常會大量爆發(fā),這可能會干擾并影響正常的用戶流量,從而影網(wǎng)絡(luò)可靠性目標。Facebook 將跨數(shù)據(jù)中心與面向 Internet 的流量分離到不同的網(wǎng)絡(luò)中,并分別進行優(yōu)化。
Facebook 設(shè)計了連接數(shù)據(jù)中心的網(wǎng)絡(luò)Express Backbone (EBB)。在邊緣互聯(lián)網(wǎng)出口則推出Edge Fabric 架構(gòu)。
NetworkStateSnapshot module:網(wǎng)絡(luò)狀態(tài)快照模塊,負責(zé)構(gòu)建活動的網(wǎng)絡(luò)狀態(tài)和流量矩陣PathAllocation module:路徑分配模塊,負責(zé)基于活動流量矩陣并滿足某些最優(yōu)性標準來計算抽象源路由。Drivermodule:驅(qū)動程序模塊,負責(zé)將路徑分配模塊計算出的源路由以 MPLS 段路由的形式推送到網(wǎng)絡(luò)設(shè)備。
2017 年 Sigcomm 大會,F(xiàn)acebook 推出了面向互聯(lián)網(wǎng)出口的邊緣網(wǎng)絡(luò)架構(gòu)Edge Fabric。
A PoP has Peering Routers, Aggregation SWitches, and servers. A private WAN connects to datacenters and other PoPs。
Edge Fabric組件
img
由此看見 Edge Fabric 有一些限制:
Facebook 在骨干網(wǎng)、邊緣網(wǎng)絡(luò)都是使用 BGP 路由協(xié)議進行分布式控制,控制通道簡單,避免多協(xié)議導(dǎo)致的復(fù)雜性,而對于流量工程采用集中的處理。
Google 全球有 30+個數(shù)據(jù)中心,100+多個 POP 站點,同時在不同運營商網(wǎng)絡(luò)中有很多 Cache 站點。信息從 Google 數(shù)據(jù)中心信息大致經(jīng)過 Data Center-POP-Cache 三級網(wǎng)絡(luò)發(fā)送到最終用戶。
Google Cloud Netwok
Google 的廣域網(wǎng)實際上分為 B2 全球骨干網(wǎng)和 B4 數(shù)據(jù)中心互聯(lián)網(wǎng),邊緣網(wǎng)絡(luò)是 Espresso,數(shù)據(jù)中心內(nèi)部則是 Jupiter,如下圖所示。
Google網(wǎng)絡(luò)構(gòu)成
B2:面向用戶的骨干網(wǎng),用于連接 DC、CDN、POP、ISPs 等。B2 主要承載了面向用戶的流量,和少部分內(nèi)部流量(10%),帶寬昂貴,整體可用性要求很高,利用率在 30%~40%之間。B2 采用商用路由器設(shè)備,并且運行 MPLS RSVP-TE 進行流量工程調(diào)節(jié)。
B4:數(shù)據(jù)中心內(nèi)部數(shù)據(jù)交換的網(wǎng)絡(luò),網(wǎng)絡(luò)節(jié)點數(shù)量可控,帶寬龐大,承載的 Google 數(shù)據(jù)中心間的大部分流量。B4 承載的業(yè)務(wù)容錯能力強,帶寬廉價,整體利用率超過 90%。使用自研交換機設(shè)備,為 Google SDN 等新技術(shù)的試驗田。
B4和B2架構(gòu)
Espresso:邊緣網(wǎng)絡(luò)或者互聯(lián)網(wǎng)出口網(wǎng)絡(luò),將 SDN 擴展到 Google 網(wǎng)絡(luò)的對等邊緣,連接到全球其他網(wǎng)絡(luò),使得 Google 根據(jù)網(wǎng)絡(luò)連接實時性的測量動態(tài)智能化地為個人用戶提供服務(wù)。
B2物理架構(gòu)
B4 是業(yè)界第一個成功商用的數(shù)據(jù)中心互聯(lián)的 SDN 網(wǎng)絡(luò)。
B4的架構(gòu)
Central TE (Traffic Engineering) Server:進行流量工程。
Network Control Server (NCS):數(shù)據(jù)中心(Site)的控制器,其上運行著 OpenFlow Controller (OFC) 集群,使用 Paxos 協(xié)議選出一個 master,其他都是熱備。
交換機(switch):運行著 OpenFlow Agent (OFA),接受 OFC 的指令并將 TE 規(guī)則寫到硬件 flow-table 里。
流量工程
注:網(wǎng)上有很多介紹 B4 的文章,本文從略。
為了更好進行流量調(diào)度,Espresso 引入了全球 TE 控制器和本地控制器(Location Controller)來指導(dǎo)主機(host)發(fā)出流量選擇更好的外部 Peering 路由器/鏈路,進行 per flow Host 到 Peer 的控制,并且解耦了傳統(tǒng) Peering 路由器,演進為 Peering Fabric 和服務(wù)器集群(提供反向 Web 代理)。
控制和轉(zhuǎn)發(fā)流程:
注:本章節(jié)主要是參考即刻構(gòu)建 AWS 技術(shù)峰會 2019的介紹,詳細文檔和視頻見參考文獻。
AWS 是一家全球公有云提供商,它擁有一個全球基礎(chǔ)設(shè)施網(wǎng)絡(luò),以運行和管理其支持全球客戶的眾多不斷增長的云服務(wù)。
構(gòu)成 AWS Global Infrastructure 的組件有:
如上圖所示,一個貓咪要去 AWS 的服務(wù)器中獲取一張圖片,流量首先通過 Internet 進入到 AWS Region,Region 包括 AZ,AZ 中有 VPC,在 VPC 中有 Server,Server 上面有圖片,這是一種比較簡單的抽象流程,但是如果把網(wǎng)絡(luò)剝開一層再去看,其實會變得更加復(fù)雜,如下圖:
可以看到包含了更多的 AWS 網(wǎng)絡(luò)基礎(chǔ)設(shè)施,流量首先進入 Edge PoP,這個也是 CDN 的站點,流量進來之后到骨干網(wǎng)絡(luò) Backbone,然后再進入 AWS Region,經(jīng)過 Transit Center 進入 AZ。
AWS Region 是由 Availability Zone 組成??捎脜^(qū)(Availability Zones)實質(zhì)上是 AWS 的物理數(shù)據(jù)中心。在 VPC 中創(chuàng)建的計算資源、存儲資源、網(wǎng)絡(luò)資源和數(shù)據(jù)庫資源都是托管在 AWS 的物理數(shù)據(jù)中心。
每個 AZ 至少會有一個位于同一區(qū)域內(nèi)的其他 AZ,通常是一個城市,他們之間由高彈性和極低延遲的專用光纖連接相連。但是,每個 AZ 將使用單獨的電源和網(wǎng)絡(luò)連接,這使得 AZ 之間相互隔離,以便在單個 AZ 發(fā)生故障時最大限度地減少對其他 AZ 的影響。
每個 Region 有兩個 Transit Center,每個 Transit Center 和下面的每個 Datacenter 都有網(wǎng)絡(luò)互聯(lián),同樣 Datacenter 之間也有網(wǎng)絡(luò)互聯(lián),這樣可以確保 AWS 網(wǎng)絡(luò)的可用性,部分網(wǎng)絡(luò)基礎(chǔ)設(shè)施故障也不會影響整個 Region 的可用性。
AWS 采用蜂窩式的網(wǎng)絡(luò)架構(gòu)。
在圖中間都是一個個小的模塊,每個模塊都有不同的一些功能,如 Access Cell 主要做主機的網(wǎng)絡(luò)接入,Core Edge Cell 聯(lián)通著 Transit Centers,進而把網(wǎng)絡(luò)流量送進 AWS backbone。
每個 Cell 都肩負著不同的功能,Cell 和 Cell 之間都進行互聯(lián),在每一層,都可以通過平行擴展 Cell 來擴展整個網(wǎng)絡(luò)的承載量,達到一個可伸展的網(wǎng)絡(luò)。
每個 Cell 是一個單核路由器,端口比較少,可以控制故障域,轉(zhuǎn)發(fā)架構(gòu)更簡單。
AWS Direct Connect、互聯(lián)網(wǎng)連接、區(qū)域到區(qū)域傳播和 Amazon CloudFront 到 AWS 服務(wù)的連接都是需要 AWS 骨干網(wǎng)。
和 Region 相似,全球骨干網(wǎng)也是采用了蜂窩式的一個網(wǎng)絡(luò)架構(gòu),中間是大量的光纖連接,外層是負責(zé)一些網(wǎng)絡(luò)功能的 Cell。
Transit Center Cell 用來連接 Region 內(nèi)部的數(shù)據(jù)中心,Edge Pop Cell 用來連接 PoP 節(jié)點,Backbone Cell 用來連接遠端的 PoP 節(jié)點進而連接到遠端 Region 的數(shù)據(jù)中心。
AWS Edge PoP 是部署在全球主要城市和人口稠密地區(qū)的 AWS 站點。它們遠遠超過可用區(qū)域的數(shù)量。
AWS Edge PoP 對外就是連接的一張張 ISP 的網(wǎng)絡(luò)。運營商接入 AWS 的骨干網(wǎng)絡(luò)兩個地方,一個是 Edge PoPs,另外一個 AWS 區(qū)域的網(wǎng)絡(luò)中轉(zhuǎn)中心(Transit Centers)。
Edge PoP 很大的一個作用就是對外擴充 AWS 的網(wǎng)絡(luò),同一個 Edge PoP 可以和運營商進行多次互聯(lián),獲得至外網(wǎng)網(wǎng)絡(luò)最優(yōu)的互聯(lián)。
邊緣站點也是采用了蜂窩式的架構(gòu),Backbone Cell 連接 AWS 骨干網(wǎng)絡(luò),External Internet Cell 連接外部的 Internet 網(wǎng)絡(luò),同時還包括一些 AWS Edge 服務(wù)網(wǎng)的一些 Cell,如連接 CloudFront、Route 53、Direct Connect 和 AWS Shield,這些服務(wù)都存在于 AWS Edge PoPs 中。
可以看到 AWS 在網(wǎng)絡(luò)的各部分都采用了蜂窩式的架構(gòu),讓這個網(wǎng)絡(luò)的擴展性大大提升。并且通過采用主動式數(shù)據(jù)信道監(jiān)控,從 AWS 服務(wù)日志采集互聯(lián)網(wǎng)性能數(shù)據(jù),以及互聯(lián)網(wǎng)流量工程管理來達到互聯(lián)網(wǎng)邊緣的監(jiān)控與自我修復(fù)。
Microsoft 在布局云計算取得很大的成功,網(wǎng)絡(luò)的布局功不可沒、其中 Azure 擁有超過 165,000 英里的私有光纖,跨越全球 60 多個區(qū)域和 170 多個網(wǎng)絡(luò) PoP。
Azure網(wǎng)絡(luò)
微軟 SWAN 廣域網(wǎng) DCI 控制器也是一個典型的 SDN 網(wǎng)絡(luò),從最早的靜態(tài)單層 MPLS Label 構(gòu)造的端到端隧道,到最新的基于 BGP-TE SR 的全球 DCI 互聯(lián)解決方案,可以實現(xiàn) 95%的跨數(shù)據(jù)中心鏈路利用率。
Microsoft SWAN架構(gòu)
Microsoft SWAN控制面
注:具體細節(jié)可以見參考文獻的論文
再補充一下 Google 和 Facebook 的數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計。
http://arthurchiao.art/blog/facebook-f4-data-center-fabric-zh/
http://arthurchiao.art/blog/facebook-f16-minipack-zh/
http://zeepen.com/2015/12/31/20151231-dive-into-google-data-center-networks/ 原文 http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183.pdf
從技術(shù)的角度看,互聯(lián)網(wǎng)公司的網(wǎng)絡(luò)演進是一個 SDN 的過程。SDN 是一個網(wǎng)絡(luò)標準化的過程,是一個通信系統(tǒng)互聯(lián)網(wǎng)化的狀態(tài),貫穿著網(wǎng)絡(luò)的控制面、轉(zhuǎn)發(fā)面、管理面。
從運營的角度看,互聯(lián)網(wǎng)公司的網(wǎng)絡(luò)演進是從“所有流量 all in one” 到互聯(lián)網(wǎng)思路構(gòu)建網(wǎng)絡(luò),網(wǎng)絡(luò)具有分布式、模塊化、低耦合等特點。
從布局的角度看,互聯(lián)網(wǎng)公司的網(wǎng)絡(luò)布局也是技術(shù)實力全球化擴張的縮影。也希望中國的互聯(lián)網(wǎng)公司也能不斷的擴張邊界,進入全球化的食物鏈的頂端。
參考文獻
Facebook 網(wǎng)絡(luò)
https://engineering.fb.com/2017/05/01/data-center-engineering/building-express-backbone-facebook-s-new-long-haul-network/
Google 網(wǎng)絡(luò)
https://cseweb.ucsd.edu/~vahdat/papers/b4-sigcomm13.pdf
AWS 網(wǎng)絡(luò)
揭秘 AWS 底層網(wǎng)絡(luò)是如何構(gòu)成的
https://blog.51cto.com/14929722/2533206
AWS 底層網(wǎng)絡(luò)揭秘
https://www.bilibili.com/video/av99088073/
Microsoft 網(wǎng)絡(luò)
https://www2.cs.duke.edu/courses/cps296.4/compsci590.4/fall14/Papers/SWAN.pdf
Facebook 的 F4,F(xiàn)16 網(wǎng)絡(luò)架構(gòu)
http://arthurchiao.art/blog/facebook-f4-data-center-fabric-zh/
http://arthurchiao.art/blog/facebook-f16-minipack-zh/
Google Jupiter 實現(xiàn)
中文解讀
http://zeepen.com/2015/12/31/20151231-dive-into-google-data-center-networks/
原文
http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183.pdf
聯(lián)系客服