1. 程式人生 > >世界杯百T級CDN智能流量調度系統的實戰分享

世界杯百T級CDN智能流量調度系統的實戰分享

挑戰 允許 原因 這場 整體 應對 今天 決定 產品

摘要: 在剛剛落幕的重慶雲棲上,阿裏雲高級技術專家仔晟為現場觀眾帶來議題《百T級CDN智能流量調度系統的實戰分享》,重點介紹了在世界杯直播業務場景之下,阿裏雲CDN的產品架構、技術方案與客戶實踐。

在剛剛落幕的重慶雲棲上,阿裏雲高級技術專家曾福華為現場觀眾帶來議題《百T級CDN智能流量調度系統的實戰分享》,重點介紹了在世界杯直播業務場景之下,阿裏雲CDN的產品架構、技術方案與客戶實踐。

技術分享圖片

曾福華老師的分享從CDN系統相關介紹、智能調度產品、世界杯場景優化三個方面展開。

CDN系統相關介紹
在最開始,曾福華老師講到,阿裏雲CDN正式商業化是在2014年3月份,到了2015年2月份,CDN智能調度正式上線。經過這麽多年的商業化,支持數次阿裏集團雙11,外部的春晚洪峰流量,以及今年的世界杯,阿裏雲CDN如今已經具備規模化、自動化、智能化、PaaS化這幾大特點。“阿裏雲CDN帶寬儲備120T+,在全球擁有1500多個節點,服務30多萬客戶。如此龐大的資源與業務體系,其實內部只有2名運維,全部依賴著智能化、自動化的調度系統來完成。”

下圖為CDN系統架構,與大部分提供CDN服務的廠商大致相同,分為緩存系統,調度系統和支撐系統。但是阿裏雲CDN與其他廠商主要區別在於所有的軟件基本都是自研的和阿裏深度參與的開源項目,比如LVS和Tengine。

技術分享圖片

智能調度產品
CDN智能調度主要有三個核心組件:
第一個是資源規劃,這是給每個業務分配節點的環節,在傳統廠商更多是人工去解決的,在阿裏雲只有2個運維在做調度相關工作,具體各個業務跑在哪裏節點上是由智能調度系統解決。今天我們已經做到,15%業務彈性自動化兼容,節點水位能夠平穩跑到80%。

第二個是精準控流,阿裏雲基於全球LDNS進行畫像和基於分鐘級別日誌精準分析基礎上的流量預測,流控系統的策略帶寬和實際帶寬可以控制偏差在5%以內。

第三個是調度執行器,首先是調度策略是秒級生效,另外一個特點所有調度執行器都是雙異構並行方案,如同飛機引擎一樣,即使一個引擎壞了,另一個引擎也可以馬上啟動,保障業務穩定性。

技術分享圖片

資源規劃
智能化資源規劃是雲CDN和傳統CDN最大的差別所在,資源規劃是一個多目標的運籌優化問題,第一是如何解決資源合理分配的問題;第二是自動化確保業務快速接入,資源規劃每天進行對應的調整保障大客戶接入做到天級別;第三是要賦予業務必要的彈性,應對客戶業務的流量上漲;第四點是流控自由度,資源規劃是一個離線程序,要給實時調度提供的調度自由度;第五點是全網1500個節點裏做負載均衡,所有節點的流量和負載趨勢趨同,水位齊漲,智能化資源規劃保障有限資源承接更多的業務。

技術分享圖片

第六點是追求規模優勢下的成本最優;除了這些點之外,資源規劃還需要考慮業務特點做CPU,存儲等傾向性選擇, 同時需要保障運維資源管理的易用性。

曾福華老師現場用一張圖來詳細進行闡述,這個格子是CDN的節點,一個格子裏面有四個小格子,他有不同的分組,還有幾條黑線幾個節點連接起來了,哪些業務應該在哪些節點、分組上去跑。而實際線上是30萬以上的業務和1500以上的節點之間的組合,復雜程度非常高,為了簡化示意圖的左邊是兩個直播、點播的調度域,中間是四個節點,這四個節點裏面,分別都有一些機器分組。然後左邊的調度域在各個區域的業務流量需要分配到中間各個節點、分組上,我們期望所有的節點水位均衡,盡量處於大致同一個水位上。

技術分享圖片

精準控流
如何實時的進行精準控流,任何CDN廠商都要面臨這個問題,是CDN最基礎的核心能力。下圖左邊是節點的列表,右邊是業務的列表,這個節點列表和業務列表的對應關系是經過資源規劃系統大致離線算出來,哪些業務當前時刻跑在哪些節點上,這是實時精準流控來決定的,從圖看上去像網絡流一樣,但實際上用網絡流的辦法解決精準問題有一些局限性。

技術分享圖片

曾福華老師現場也與觀眾一同重新認識了運營商的LDNS, 剖析了通過LDNS調度無法做到按任意比例的流量分攤到多個節點的具體原因。

技術分享圖片

談到調度,曾福華老師現場做了一個比喻,一個裝了很多冰塊和水的杯子,如果我們要把杯子裏面的狹小空間全部用上,我們先要把冰塊放進去,再倒液態水。前文剛剛講到的DNS的協議限制,類似冰塊。其他別的調度形式,比如IP調度,可以做好請求級別的調度,也就是支持任意比例的負載均衡,就像液態水一樣。

技術分享圖片

所以,在智能調度的場景裏,也需要把“固體”和“液體”結合起來考慮,才能做到所有的節點、水位的精準控制。

另外通過實踐,阿裏雲CDN的智能調度可以精準預測流量,在10分鐘內的預測的精準度到98%,一小時的精準度95%以上。 綜上幾個方面的特性,CDN流控的精準度大致能控制在5%左右。

世界杯場景下的調度優化
接下來分享世界杯場景下CDN調度的優化,今年俄羅斯世界杯應該是有史以來最大規模在線觀看的體育賽事了,而阿裏雲CDN今年承載國內世界杯網絡直播70%+流量。整個護航過程中,我們面臨了幾大挑戰:
第一個挑戰是優酷拿到的轉播權是5月底到6月初,6月中旬就要開賽直播,前期籌備時間非常短,而新資源在陸續交付,對我們的挑戰還是挺大的。

面對這個挑戰,我們有以下幾點優勢:
一、規模化共享資源池,最充分使用空閑資源
與傳統CDN廠商不同的是,阿裏雲所有的資源池是在一起共享的,離線資源規劃程序每天運算,用來保證空閑資源的充分使用,在資源緊張時盡量把所有空閑資源都使用上,如果像傳統CDN廠商把硬件資源隔離開分到不同業務上,當這麽巨大業務短期內要上來的時候是沒有辦法完成空閑資源的集中使用的。

二、天級離線資源規劃,確保業務能快速接入
離線規劃可以按天級別,這樣業務接起來會比較快,每天可以預估第二天的峰值量,這樣只要我們預測偏差不大的情況下,可以確保第二天平穩的跑下來。

三、時級資源局部調整,資源層動態水位均衡
如果對於流量的預測偏差導致流控無法合理分配的問題,采用小時級別的局部的資源調整,來保證整體資源的動態平衡。

四、高效流量仿真平臺,資源規劃結果可驗證
不管是天級別的資源規劃,還是小時級別的資源規劃,都可以通過仿真系統,確認每一次調整的效果,也可以針對仿真系統的結果不斷叠代到我們需要的結果。

第二個挑戰,在碼率瞬間變大比較大的情況下,常規的流量預測算法失算了,進而會幹擾流控程序, 這個問題我們是怎麽解的?阿裏雲使用了一個黑科技——AI預測+智能鎖定,大致思路是預測的不是10分鐘後的業務量,而是預測這場比賽的峰值業務量是多少。

技術分享圖片

上圖畫了很多格子,最左邊的格子開賽前的時間,世界杯還沒開始的時候,我們會根據峰值預測量鎖定一定比例的帶寬空間,這樣這部分帶寬空間不會被別的業務量搶占導致世界杯的卡頓。當每場次的比賽開播後一段時間,流量上漲非常快,這個鎖定量基本上保證了前面流量攀升比較劇烈的20分鐘的節點帶寬是充足的,可以給世界杯提供流暢的帶寬保障。等到比賽過了20分鐘以後,就是整個流量流量上漲變平緩了許多,接下來我們始終保證世界杯當時的業務量,或者說這場比賽達到的最高峰值和整個鎖定量之間保留一定的差距,如上圖中×××區域代表的鎖定量,通過這種方式我們解決了世界杯賽事的一個流暢保障問題。

第三個挑戰就是阿裏雲有1500多個節點,面對世界杯業務幾個域名特大業務流量,如何做到節點不跑超跑低兩極分化,整體水位比較一直狀態?

解法是HTTPDNS跟DNS調度要組合起來做調度,在世界杯的業務場景中就是很好應用了這個組合。在下圖我們可以看到,比如通過優酷各端兼容HTTPDNS,那麽流控就像控制水流,和不兼容HTTPDNS的WEB端DNS調度組合,我們就做到了比較好的節點水位精準控流。

技術分享圖片

以上就是2018俄羅斯世界杯期間,百T級別CDN智能流量調度系統的一些實戰經驗分享。

原文鏈接

本文為雲棲社區原創內容,未經允許不得轉載。

世界杯百T級CDN智能流量調度系統的實戰分享