看CDN/DCDN/GA技術如何應對流量洪峰

陶然陶然發表於2024-01-29

  去年12月12日,“抖音商城雙12好物節”正式結束。據瞭解,雙12期間,抖音電商推出了超值購、秒殺等多個優價頻道和多個類目的主題榜單,讓有消費需求的使用者更高效地發現高價效比好物。除了貨架場景,“抖音商城雙12好物節”還發力重點達人直播間、好物直播間等內容場域,透過電商優質內容為商家和達人創造生意增量。

  “抖音商城雙12好物節”的背後是大流量、高併發對基礎技術提出的挑戰,保障大促期間平臺的平穩執行、使用者流暢的購物體驗尤為重要。在經受了雙十一海量流量考驗的基礎上,火山引擎CDN/DCDN和GA作為抖音靜態/動態/長連線業務流量入口,保障了大促期間抖音電商平臺的平穩執行。

  下圖為抖音客戶端影片業務/動態介面/長連線業務主要流量架構圖,客戶請求透過火山引擎內容分發網路(CDN)、全站加速(DCDN)、全球加速(GA)回源到中心閘道器,轉發到對應的業務服務。  

   技術架構

  火山引擎CDN/DCDN和GA利用豐富的網路資源,依託邊緣雲全球網路(含到主要地區的合規專線)降低網路抖動、時延和丟包,顯著提升傳輸效率,結合自研的傳輸最佳化、智慧快取、動態路由、安全防護等能力,為使用者提供安全、穩定的一站式加速服務,提升使用者訪問體驗。

  火山引擎內容分發網路產品 CDN (Content Delivery Network)提供穩定、彈性、高效能的全球內容分發服務。

  火山引擎全站加速產品 DCDN (Dynamic Content Delivery Network) 是一款在 CDN 靜態內容加速服務的基礎上,提供純動態及動靜態混合內容加速的服務。

  火山引擎全球加速產品 GA(Global Accelerator)是一款實現全球範圍網路就近接入和跨地域部署的四層網路加速服務。  

火山引擎CDN/DCDN/GA資源分佈

  火山引擎CDN/DCDN/GA透過抖音集團業務和規模化ToB業務的打磨,已經形成了一套完備且具備規模商業化能力的系統。

  資源分佈:全球2500+加速節點,國內實現三大運營商本省覆蓋,海外覆蓋了主要國家和地區;

  豐富協議:支援HTTP(S)、QUIC、WebSocket、TCP、UDP協議接入;

  智慧排程:保證客戶就近接入,實現億級QPS的全網排程;

  智慧路由:自研智慧路由系統,保證請求最優路徑回源,提升使用者體驗;

  傳輸最佳化:透過協議最佳化、回源預建連、公網路由擇優等策略,提升動態API、上傳、下載等各個場景的傳輸速度;

  安全防護:支援大容量的 DDoS 防護、CC 防護、Web 漏洞防護,全鏈路 HTTPS (支援國密協議),確保資料傳輸安全;

  穩定性:透過大規模QPS的驗證,穩定性經過充分驗證,經歷了抖音春晚紅包、抖音世界盃直播、抖音電商雙十一等大型活動考驗。  

火山引擎CDN/DCDN/GA網路拓撲

   解決方案

  火山引擎CDN/DCDN/GA作為抖音業務動靜態流量入口,在雙12期間,不僅要承載常態流量,還需要應對大促帶來的洪峰流量衝擊,這對火山引擎CDN/DCDN/GA的容量、排程能力、容災能力都提出了更高的要求。對此,本文從5個方面介紹應對雙12突發流量時火山引擎CDN/DCDN/GA提供的解決方案。

   動態擴容

  為了解決大促高峰時間段的資源不足問題,火山引擎CDN/DCDN/GA採用動態擴容技術。 雙12帶來的流量是脈衝式流量,持續時間短,峰值高。雖然火山引擎CDN/DCDN/GA常態下會保留一定的流量冗餘,但依然無法應對大促帶來的突發流量。如果想要透過短時間內完成大量邊緣節點擴容來解決這一問題,不僅操作難度極大,而且僅為活動進行大規模擴容,也會造成資源浪費。因此,如何動態擴容以應對短時間洪峰流量,是火山引擎CDN/DCDN/GA產品在雙12遇到的主要挑戰之一。

  火山引擎CDN/DCDN/GA使用火山引擎邊緣雲統一技術底座,主要流量執行在邊緣雲容器/虛擬機器上。因此可以在活動正式開始前,充分利用邊緣容器平臺的彈效能力,快速建立出一批新資源,完成資源動態擴容,滿足活動期間的容量需求。在活動結束後,將擴容資源釋放,實現整體容量的快速擴縮。

   流量排程

  為了應對突發流量,火山引擎CDN/DCDN/GA引入“活動”流量模型。 常態下,火山引擎CDN/DCDN/GA會根據業務實時以及最近幾天的QPS/頻寬/連線數進行排程,但面對雙12帶來的突發流量,這種排程模式顯然無法適應。

  為解決這個問題,火山引擎引入了“活動”流量模型。假設活動期間各個地區的流量分佈與常態流量一致,根據業務預估的總QPS/頻寬/連線數,按比例分配到不同地區。在進行排程時,將預估的活動流量一併納入考慮,因此排程後的節點能夠承載活動突發流量。同時會根據前一天的流量值修正下一次活動流量模型。  

引入“活動”的流量模型

   自保能力

  為了應對容量風險,火山引擎CDN/DCDN/GA具備熔斷能力實現自保。 資源和排程已具備應對預估峰值的能力,但業務預估流量跟真實流量很可能存在偏差。如果業務預估比真實流量低,突發流量很有可能超出CDN/DCDN/GA服務上限,當出現短時間的可用性降低、請求耗時增加後,會觸發客戶端不斷重試,進一步加劇服務壓力,極有可能造成線上整體的雪崩,影響產品請求。

  因此,為了應對極端場景的風險,CDN/DCDN/GA需具備熔斷能力,當請求量達到一定閾值後,透過熔斷降低系統壓力,保證線上主要業務流量的穩定性。

  活動期間,主要有以下容量風險:

  CPU資源風險:大量客戶端冷啟,新建連線(CPS)突增,抖音支援全鏈路HTTPs,因此冷啟客戶端會進行大量的SSL握手,消耗DCDN節點大量CPU資源;

  QPS突增風險:電商API介面請求量(QPS)突增,超過CDN/DCDN/GA處理能力上限,造成服務崩潰;

  請求堆積風險:隨著QPS突增,活動業務後端服務壓力增加,響應耗時變大,造成大量請求堆積,拖垮CDN/DCDN/GA和業務服務。

  為了應對上述風險,火山引擎CDN/DCDN/GA產品引入多維度熔斷能力:

  CPS熔斷能力:針對最耗費CPU的SSL握手,支援針對單域名和全域性SSL握手限流能力,當單個域名的SSL流量超出閾值後,將拒絕新SSL請求,避免打爆CPU;

  QPS熔斷能力:當活動域名的QPS超過設定閾值後,拒掉新請求,避免過多請求回源,保護自身和源站服務;

  回源熔斷能力:當單個域名同時回源的請求達到一定閾值後,新的回源請求會在CDN/DCDN/GA直接熔斷,響應異常碼,避免業務服務響應變慢後,請求堆積拖垮業務後端服務。

  上述熔斷能力,均支援單域名和全域性粒度。

  單域名熔斷,主要針對活動域名配置,避免活動域名突增影響全域性流量。

  全域性熔斷能力,主要是保護DCDN服務,當超過DCDN服務能力上限後,熔斷一部分流量,保證大部分流量可正常服務。

   流量壓測

  具備資源、排程、熔斷能力後,還需要在活動之前對上述功能進行驗證。對此,火山引擎CDN/DCDN/GA與抖音客戶端合作,進行全鏈路壓測,利用真實的客戶端請求,模擬活動期間洪峰,驗證全鏈路的處理能力。  

流量壓測曲線

   加速效能

  效能接入是加速產品最重要的衡量指標之一。如何更好的提升效能,也是火山引擎CDN/DCDN/GA產品持續探索的方向,經過多年的打磨,沉澱了經驗,以下是火山引擎CDN/DCDN/GA產品在效能最佳化方面的主要策略。

  智慧排程

  移動端使用者透過4G/5G/WIFI無線網路訪問源站應用,訊號不穩定,如果直連源站,RTT較長,按照主流的基於ACK反饋或超時來判斷丟包的擁塞控制演算法,需要很長時間才能感知到丟包,再進行重傳,導致時延非常大,如果透過更近的接入點上車,移動端和節點之間RTT更短,就可以更快感知到丟包,更快進行重傳,降低時延。

  火山引擎CDN/DCDN/GA自研的智慧排程演算法會基於使用者分佈情況,動態實時計算出接入質量更優的節點,例如在某城市,會根據使用者分佈的集中度,選擇離大多數使用者更近的接入點上傳,相比傳統的DNS排程能更好的實現就近接入,提升使用者體驗。

  智慧路由

  廣域網網路存在複雜的運營商和地域限制策略,經常出現繞路、限速等情況。針對此問題,火山引擎自研的智慧選路系統可在複雜的廣域網中實時選擇最優路徑回源,保障業務的更優體驗。智慧路由解決的是多目標路徑規劃問題,需要兼顧效能、容量等,重點是歸一化目標函式設計。火山引擎CDN/DCDN/GA綜合考慮了鏈路質量、節點水位、親緣性等目標,同時根據不同的業務場景(API、上傳、下載等)採用不同權重值,保證各種業務場景按照更優鏈路回源。  

   傳輸最佳化

  協議棧最佳化:回源鏈路採用火山引擎自研的TTCP協議棧,TTCP具備核心外掛化能力,已在火山引擎CDN/DCDN/GA全網部署,支援域名粒度控制,可根據業務場景(API、上傳、下載)實現精準化的引數控制和自適應擁塞控制演算法,保證更優的訪問體驗。同時TTCP實現了平臺化的管理,利用採集現網資料透過大資料實時分析決策動態的調整系統引數和擁塞控制演算法,提升訪問體驗。

  連線最佳化:火山引擎CDN/DCDN/GA產品為提升訪問效能、降低中心服務的壓力,採取了“預建連”最佳化手段。節點在沒有真實請求時,主動與源站建立一批連線,維護在連線池內,當突發業務請求到達,回源時可直接複用連線,提高訪問效能。透過抖音集團內部業務測試顯示,採用預連線策略後,首包時間耗時從115ms 降低到54ms,降低了53%以上,效果明顯。

   應用案例

  火山引擎DCDN承載了雙十一期間抖音業務主要API流量,在雙十一的洪峰挑戰中保證了使用者更優購物體驗,效能、穩定性得到了充分驗證。透過客戶端監測資料,火山引擎DCDN活動期間服務穩定,且加速效能達到行業領先水平。

  抖音短影片:抖音短影片核心Feed流API請求透過開啟QUIC協議,採用智慧路由、預建連等最佳化策略,網路耗時均值降低7%以上,長尾耗時降低17%以上,人均播放時長等核心業務收益顯著正向。  

  抖音電商:結合邊緣高防排程以及邊緣WAF能力,解決API防護、 DDoS 和 CC 攻擊、保護內容不被惡意爬取、劫持、篡改等,透過自研的傳輸最佳化、智慧快取、動態路由等技術提供了純動態及動靜態混合內容的加速服務,為使用者提供更優質的訪問體驗。  

   展望未來

  火山引擎CDN/DCDN/GA自上線以來,透過位元組內部大規模QPS、億級併發連線數的驗證,經歷了雙十一、春節活動、世界盃等大型活動考驗,經過多年的打磨,效能、穩定性達到業內領先水平,沉澱了典型應用場景的加速解決方案。火山引擎DCDN和GA先後於2021年和2022年正式ToB,把服務抖音業務的技術積累提供給更多的外部客戶。

  下一步,火山引擎CDN/DCDN/GA會繼續進行深度最佳化,持續降低訪問時延,比如在加速網路內部使用基於UDP的私有協議,針對動態API、上傳、下載場景使用更加自助可控的丟包檢測和擁塞控制演算法,另外結合端上的能力,針對時延敏感性業務,比如遊戲場景聯動火山引擎遊戲加速解決方案GNA支援全鏈路的加速能力,開啟FEC、雙通道、網路檢測能力等,為使用者提供極致價效比的加速服務。

來自 “ 位元組跳動技術團隊 ”, 原文作者:火山引擎邊緣雲;原文連結:https://server.it168.com/a2024/0129/6838/000006838549.shtml,如有侵權,請聯絡管理員刪除。

相關文章