B 站公網架構實踐及演進

本期作者

嗶哩嗶哩系統部網絡團隊

負責 B 站數據中心網絡規劃、設計、建設、運維與優化,爲公司業務提供穩定且可靠的網絡服務。整個團隊專注於數據中心內外網、骨幹網絡、負載均衡、傳輸網絡、虛擬化網絡以及國際化網絡的落地和應用,並根據業務的發展需求不斷迭代更新底層基礎網絡設施。

01 引言

根據 2022 年 Q3 財報數據,B 站的 MAU 已經穩定增長至 3.3 億。用戶在閒暇之餘刷刷視頻、看看直播,給自己喜愛的 UP 主一鍵三連,已經成爲了生活中不可缺少的一部分。B 站基礎網絡團隊本着社區優先的理念,持續優化互聯網接入網絡架構,近 2 年內根據 IDC 規模發展和業務需求,對公網架構進行了有序升級改造,從穩定性、經濟性等方面爲 B 站業務提供了堅實保障。

02 B 站公網 1.0 結構

在 B 站 IDC 公網 1.0 結構中,每個機房有獨立的靜態帶寬線路,部分重要業務基於延遲要求配置 BGP 帶寬提供服務。網絡結構如圖 1 所示:

圖片

圖 1 B 站 IDC 公網 1.0 結構

B 站公網 1.0 結構中,核心網絡設備相當於整個網絡樞紐,最大化的利用了核心網絡設備硬件資源和轉發能力。公網出口線路直連本機房核心網絡設備,同時核心網絡設備旁掛 LB、NAT 等基礎組件,另外下掛機房內 DCN 網絡。

該架構組網簡單,涉及設備較少、網絡層面配置簡單,但是隨着 B 站的業務發展,在長期的運維過程中,我們也發現了幾個值得仔細考慮的問題。

問題一:網絡故障域

在 B 站公網 1.0 的網絡結構中,核心網絡設備在網絡中承擔的角色非常重,所有流量都要經過核心設備轉發,這就造成核心網絡設備上任何一個故障,都會有較大的影響。比如單個端口器件異常,有可能會影響到公網和內網服務。長此以往網絡運維將面臨巨大挑戰,該問題也成爲了 B 站網絡團隊需要重點解決的問題之一。

問題二:網絡可靠性

在 B 站 1.0 公網架構中,每個 IDC 都會引入靜態三線帶寬和 BGP 帶寬。公網出口的可用性與運營商網絡強耦合,更多依賴運營商公網的穩定性。當運營商公網出現故障時,網絡上缺乏主動隔離故障的手段和能力,從而導致業務受損。處理方式上只能主動告知業務進行線路切換,緩解由運營商網絡故障的帶來的異常影響。

問題三:網絡擴展性

B 站公網出口以靜態帶寬爲主,BGP 帶寬爲輔。靜態帶寬資源基本上被運營商強綁定,擴容週期長且流程繁瑣,甚至部分地區受運營商網絡影響,擴容存在一定困難。結合 B 站業務的特殊性,在重大活動期間需要具備公網大帶寬能力,如果運營商帶寬資源準備不足,B 站將會面臨業務損。網絡上需要考慮臨時應急方案,直接後果是因擴展性問題增加了網絡的複雜性。

問題四:網絡資源

衆所周知,全球公網 IPV4 地址資源日漸缺乏,且公網 IP 地址與運營商及機房有一定的強捆綁性,部分機房申請公網 IPV4 地址困難,面臨沒有公網 IPV4 地址問題。帶寬利用率方面,由於 B 站各個機房部署的業務不同,出入帶寬模型有所差異,不同機房公網帶寬利用率差別較大,無法充分利用各個機房公網帶寬資源。

問題五:帶寬成本

每個 IDC 出口同時提供靜態帶寬和 BGP 帶寬能力,當新建核心機房時,都需要尋找合適的公網資源並對資源進行評估及測試,整個過程複雜且週期長。不同地區的公網帶寬相互隔離,Buffer 都需要單獨預留,造成了浪費;同時因爲沒有相互調度的能力,爲了保證業務質量,所以使用了大量的 BGP 帶寬資源。然而此舉不可持續,隨着業務的發展,BGP 帶寬量每年持續增長,會導致 BGP 的帶寬成本持續增加。

問題六:容災能力

IDC 日常使用中,任何一個機房的公網出口都有可能出現異常情況。當公網出口發生故障時,以同城雙活業務部署爲例,業務按降級預案進行切換,從 A 機房降級到 B 機房,在底層帶寬資源上 A 和 B 兩個機房需要按照降級預案准備同等容量的公網帶寬,以達到 A/B 兩個機房之間公網冗餘能力,從而保證業務不受影響。然而當發生地域性級別的公網故障時(如:某運營商某個省骨幹網異常),同城雙活方案將失效,因此業務還需要考慮異地容災降級方案,這樣會使業務的整體容災能力變得非常複雜。

03 B 站公網 2.0 結構

爲了解決公網 1.0 結構中存在的問題,2020 底 B 站基礎網絡團隊調研了國內外互聯網頭部公司的網絡架構,開始重新設計機房整體網絡結構,包括 DCN 內網、DCI 骨幹網、外網、基礎服務網絡。重點從如下幾個方面因素進行優化設計。

基於以上因素考慮,B 站基礎網絡團隊設計了 B 站公網 2.0 結構,包含 B 站外網骨幹網 2.0 結構和 IDC 公網 2.0 結構,分別如下圖 2 和圖 3 所示:

圖片

圖 2 B 站外網骨幹網 2.0 結構

B 站外網骨幹網 2.0 結構說明

圖片

圖 3 B 站 IDC 公網 2.0 結構

B 站 IDC 公網 2.0 結構說明

B 站公網 2.0 結構,經過半年建設、半年灰度驗證,在業務部門的配合下,2022 年初項目已完成上線,各 IDC 機房公網業務平穩完成遷移並穩定運行至今。

04 外網骨幹網擴展

CDN 網絡

一個視頻網站要爲用戶提供服務就避不開 CDN 與源站。海量視頻文件需要從存儲系統分發到用戶終端,爲了縮短 B 站與用戶端的距離,提升用戶體驗,B 站儘可能的在全國甚至全球部署 CDN 網絡,以達到就近覆蓋用戶的目的。一般單個 CDN 節點規模小,存儲、算力均有限,所以 B 站會在全國範圍內部署多個大容量的區域級緩存 CDN 節點提供服務能力。B 站視頻業務數據分發存儲與地址位置關係大致如下圖 4:

圖片

圖 4 視頻業務數據分發及存儲示意圖

CDN / 邊緣節點:規模小,提供算力、數據存儲能力有限,就近爲用戶提供服務,業務利用相對少量的計算和存儲資源緩存熱門數據,並且會根據用戶觀看偏好等行爲進行緩存內容的及時更新調整;

區域級骨幹節點:規模適中,區域性集中的算力和數據存儲,作爲邊緣節點的容量溢出以及故障備份,也可說爲二級緩節點,同時也對用戶提供服務;

核心 IDC:即源站 IDC 機房,規模大,承擔整個公司的規模化算力和數據存儲,具有 B 站所有服務資源。

CDN 回源

早期 B 站 CDN 均是採用公網回源的方案,該方案實現簡單,對公網強依賴,有鏈路不穩定的風險,公網帶寬佔用較大,成本較高。示意圖如下圖 5:

圖片

圖 5 B 站早期視頻播放鏈路簡易示圖

中期爲了降低公網帶寬成本,業務採用 CDN 分級部署方案,一級節點就近公網回源二級節點,減少了公網鏈路長度,有效提升了回源的穩定性。示意圖如下圖 6:

圖片

圖 6 B 站中期視頻播放鏈路簡易示圖

後期爲了規避公網波動對回源的影響,進一步降低公網回源帶寬成本,對於部分 CDN 節點,建設專線用於業務回源。結構如下圖 7:

圖片

圖 7 B 站後期視頻播放鏈路簡易示圖

從外向內共分爲 5 級,連接關係、接入方式如下:

總體來說,CDN 節點做爲 B 站外網骨幹網的擴展網絡,在有限的資源和成本下,提供了更穩定的網絡服務,爲 B 站用戶提供了更優的衝浪體驗。

05 未來展望

B 站基礎網絡團隊從穩定、成本、效率出發,以持續優化用戶體驗爲目標,將用戶始終放在第一位。依託運營商資源逐步優化公網服務,減少上層業務及用戶對網絡異常的感知。下一步我們將加快 B 站外網骨幹網的覆蓋範圍,加強跨大區級的公網調度能力。同時結合業務發展需求與行業內發展趨勢,優化公網部分組件及探索更前沿的技術,爲 B 站提供更穩定、更高效、更低成本的網絡服務。

參考文獻:

[1] B4 and After: Managing Hierarchy, Partitioning, and Asymmetry for Availability and Scale in Google Software-Defined WAN: https://dl.acm.org/doi/10.1145/3230543.3230545

[2] Engineering Egress with Edge Fabric: Steering Oceans of Content to the World: https://dl.acm.org/doi/10.1145/3098822.3098853

[3] Building Express Backbone: Facebook’s new long-haul network: https://engineering.fb.com/2017/05/01/data-center-engineering/building-express-backbone-facebook-s-new-long-haul-network/


本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/b7BEWbb3uZm0IXm4ag-O-g