前不久,阿裡雲技術天團空降CSDN線上峰會,對核心技術競争力進行解讀。其中,阿裡雲進階技術專家曾福華分享了《雙11: CDN如何保障電商大促如絲般順滑》的議題。俗話說:養兵千日,用兵一時。每一次的戰役,後面都有無數的團隊、無數的預案以及無數的演練在支撐着。雙十一的穩定,不僅僅有各種創新各種高科技,還有非常多的體系化工程給與了足夠的保障,從實體層到應用層,從資源準入到線上演練,無一不例外的都蘊含着各種門道。面對電商大促,面對百 Tbps 級别的流量,阿裡雲 CDN 又是如何確定如絲般順滑的呢?
講師:曾福華,進階技術專家,阿裡雲邊緣雲智能排程系統負責人,主要研究技術方向為邊緣雲網一體化排程。
關注阿裡雲Edge Plus微信公衆号,看見更多技術資訊,文末留言更有阿裡雲T恤免費拿哦~
内容目錄:
- CDN的發展曆程及架構簡介
- 大促場景下,有關CDN的體量、保障以及排布那些事
- 彈性、算力及模拟仿真等關鍵技術解讀
阿裡雲CDN發展曆程
2008年:阿裡雲CDN起源于淘寶CDN,當時主要服務對象就是淘寶電商。
2009年:雙11啟動; CDN研發團隊成立; 阿裡的CDN和電商有着千絲萬縷的聯系。
2011年:CDN作為流量基礎設施,逐漸從服務淘寶電商擴充到全面服務阿裡集團。
2014年:阿裡雲CDN正式商業化; Tengine+Swift節點架構上線,替換了ATS節點架構。
2015年:阿裡雲CDN與電商攜手邁進全站https階段;阿裡雲CDN自研AIM1.0智能排程系統上線。
2017年:阿裡雲CDN開啟全球化戰略;合并優酷CDN;正式釋出SCDN、DCDN等産品;同年被Gartner評定為全球級供應商。
2018年:阿裡雲CDN支撐了全網70%世界杯直播流量;AIM2.0智能排程系統釋出。
2019年:圍繞“智能化”,阿裡雲CDN在技術上深耕,在可程式設計CDN、多元資源負載均衡、精細化營運、各種邊緣場景服務上持續打磨。
2020年:在全民抗疫的背景下,阿裡雲CDN支撐直播\線上教育等場景流量大幅增長;在技術層面,進行CDN邊緣雲原生與雲網一體化排程改造。

上圖中可以看出,伴随着每年雙十一以及移動網際網路、視訊的普及,CDN的流量也呈現一個指數級增長。截止目前,阿裡雲CDN在全球有2800+邊緣節點,覆寫了3000多個地區和營運商。服務全球數十萬客戶,為超百萬域名提供加速服務。阿裡雲CDN打造的一張連接配接全球的邊緣生态網絡,在晚高峰期間每秒處理上億QPS的使用者連接配接請求,每天将客戶數十億次配置管理指令下發到全網所有節點。
CDN簡介與技術架構
衆所周知,站點加載速度對上網體驗影響非常大。據統計,大部分站點如果不能在3秒内打開的話,接近50%的使用者會選擇離開。對于大型線上系統來說尤為明顯,加載時間每延長1秒,一年就會減少數以億計的營收。
CDN就是旨在提供客戶站點通路加速的PaaS雲服務(雖然CDN誕生的時候雲計算的概念還沒有提出來),CDN非常普及,承載了網際網路90%以上的流量。工作的原理是通過廣域覆寫的邊緣節點将内容分發到全球各地,排程系統将使用者請求引導合理的邊緣節點來大幅減低通路時延,并控制着緩存内容回源流向,進而達到給客戶站點加速的目的。
CDN比較切确的定義是,基于營運商資源通過低成本、高可靠、廣覆寫的計算基礎設施、内容連結能力及視訊承載平台。CDN内部系統覆寫智能排程、網絡/協定以及供應鍊的管理等子產品,同時加之資料和安全防護生态能力,在此基礎之上,提供面向網頁、圖檔、點播、直播、動态、政企、安全等不同場景的加速能力。
電商大促的技術特征與挑戰
今天的大促規模十分龐大,通常是百T級的業務帶寬,億級的并發請求,需要百萬級的CPU核消耗,如此大規模的場景磨煉下,推動了雲産品尤其是CDN的快速成長。
大促活動有兩個特征,第一是密集排布,包括活動安排緊湊,對應不同業務方;活動形式多樣,如貓晚直播、大主播、紅包、秒殺、0點開搶等等;同時活動估量非常複雜,需要考慮并發連接配接、帶寬、算力、命中率等名額。第二是需要在高負載下靈活變陣,考慮到:高負載大盤資源運作水位;各活動場景對不同次元資源需求差異大;各活動場景的排程覆寫政策要具備随機應變能力,以及強大的資源彈性伸縮能力。
那在這樣複雜的背景之下,如何去滿足業務高速發展的需求呢?
直面洪峰流量:CDN如何承載大促洪流?
通常,拿雙11大促舉例,CDN的保障分為預備、戰前、護航三個大的階段。同時,因為雙11保障是組織和系統結合的體系工程,詳細拆解下來可以分為需求評估、預案準備、需求傳遞、演練壓測、封網保障、大促護航等不同階段。
一、預備
在需求采集和評估階段,CDN需要向各個業務側去采集業務需求,明确時間點、業務特征畫像和業務活動報量,同時要明确是否涉及新的功能定制。然後根據業務需求轉化成資源需求,包括庫存盤點、錯峰複用和資源缺口與建設;
在預案的準備階段,需要盤點清楚往年既有預案和新增預案;按場景和用途分成提前預案、還是緊急預案;大部分預案是CDN平台側獨立完成即可,還是部分需要和業務方一起配合關聯;
定制需求傳遞過程中,主要涉及定制開發、聯調測試、上線驗證等過程;資源在建設傳遞過程中,也需要對傳遞的資源進行業務模拟仿真,并配合進行業務資源池的調整。
二、戰前準備
首先需要完成演練壓測階段,包括對容災、安全、性能和功能各方面的演練,進一步確定雙11對軟硬體系統、人員組織等方面的準備工作是到位的,包括預案是否覆寫完整;接下來,就要進入封網保障階段了,一般在大型活動上線之前都會禁止所有的釋出和變更,不斷進行系統巡檢,巡檢中確定所有出現的缺陷修複到位,同時這個階段也會進行戰前動員保障,激勵士氣的同時也對大促保障規範做進一步強調。
三、護航階段
正式開始護航後,通常會按照提前安排好的分工進入現場保障,尤其前期工作做得充分,這個階段主要工作就是盯盤,針對異常情況需要快速地發現并定位問題,按計劃啟動相應緊急預案進行響應。最後,保障結束後需要對整體護航進行複盤總結,為未來的大促保障去做更多參考沉澱。
CDN保障大促的關鍵技術點應用
一、大促場景彈性如何保障?
由于大促期間業務排布非常多,那麼在高資源運作水位的情況如何進行靈活的彈性排程保障非常關鍵。阿裡雲CDN是如何保障的呢?如下圖(上半部分)所示,海量業務中每個業務都有自己的資源偏好,為了保障彈性在業務和資源的比對過程中,采用了不強制隻擇優的業務資源比對機制。總結下來,阿裡雲的CDN排程系統在彈性保障上:
資源共池融合是業務彈性保障的最關鍵因素;
不做業務級别的節點硬體隔離,流量實時按需流動到全網所有節點上;
彈性、品質是可權衡的雙目标,可根據實際情況進行自主靈活可控(業務資源比對程度);
按整體大盤需求進行資源規劃、資源建設、資源排程;
如上圖(下半部分)所示,我們要做到通過業務資源池資源排程優化,讓全網2800+CDN節點所有節點的齊漲齊落,這樣才能給大促業務提供最大的資源彈性保障。是以,排程不僅是全局負載均衡,更是彈性伸縮,阿裡雲CDN排程系統進行了以下準備:
- 節點角色交排程系統決策,剪除硬限制;
- 業務資源池交排程系統實時決策,靈活變陣;
- 節點上業務混布交排程系統決策,充分複用;
- 資源池規劃、全局負載均衡中台的雙劍合璧,彈性伸縮;
二、 大促場景算力如何排程?
很多人認為CDN單純是流量分發系統,但其實這個觀念是值得商榷的,在一些場景下還會海量大促突發請求會消耗巨大算力資源。拿雙11來舉例,電商網站進行了全站的https改造,在11日淩晨0點電商大促開搶瞬間,所有請求彙聚進來,這時候會形成非常巨大的尖脈沖,算力消耗十分巨大,此時如果沒有很好的機制去進行算力資源排程和全局負載均衡,就會出現大面積的業務異常。按天次元來看,雙11當天QPS比平時要高出約三成。是以CDN在大促場景下的另一個核心挑戰是:如何對海量業務算力消耗進行精準的全局負載均衡排程?
曾福華在此介紹:在帶寬排程或流量排程時,我們可以從日志上精準推演每個請求消耗的流量,但是比較難精準去推算出每個請求消耗了多少算力,這對我們來說是非常大的難題。如下圖所示是阿裡雲CDN的解題思路,基于已知的每個節點的CPU消耗以及節點的并發QPS這兩個資料,可以對每個業務機關QPS的CPU消耗進行公式的計算。同時根據不同時間點的不同資料變化,不斷進行機器學習訓練,得出各個業務平均單請求的CPU消耗精準資料了。有了帶寬和算力消耗的資料,如此一來,之前的單維帶寬排程就需要升維到多元資源排程模型,生成帶寬與算力等多資源次元下的全局負載均衡的排程新政策。
三、大促限流保障機制
前面有介紹到大促期間整個大盤是在資源高水位狀态下運作,是以需要業務側做精準的業務報量,CDN平台會根據這個報量去進行資源評估。但是任何事情都需要考慮到突發性和意外性,如果突增業務量超過了之前評估的業務報量,CDN平台怎麼進行風控呢?
這一方面需要業務側對于報量進行精準評估,而另一方面CDN平台側需要限流的政策來確定整體業務平穩運作。
阿裡雲CDN在限流保障上已經在多方面沉澱了很多實戰經驗和能力。阿裡雲CDN多級全方位限流保障包含:
- 業務類型: 直播、點播、下載下傳、動态加速等場景限流;
- 限流類型: 帶寬、QPS、連接配接數等;
- 限流形态: 單門檻值區間限流,多門檻值區間限流;
- 限流範圍: 全網、區域、節點等;
- 限流層級: L1限流、L2限流、回源限流;
四、排程模拟仿真平台
前面我們講到大促場景中需在高負載的情況下進行靈活變陣,排程模拟仿真平台是一個非常好用的工具。
大促場景結合各個業務預估報量進行全局排程政策側模拟仿真,可以在事前未蔔先知資源瓶頸和風險點會發生在什麼地方,需要針對各個業務怎麼做資源補充和政策調整,循環疊代調整業務資源池,直到模拟仿真平台上風險點解除掉。
除了大促場景之外,排程模拟仿真平台還可以加速輔助CDN排程核心系統的功能演進,從全局角度來觀察驗證新元件帶來的變化影響是正面還是負面。
模拟平台的用途總結:
第一,基于沙盤模拟疊代,打磨了一套零成本試錯之路
•加速排程核心系統等元件的進化;
•測試平台+模拟仿真平台,共同捍衛穩定性;
•業務政策、資源的調整實時評估;
第二,通過大促模拟仿真,可以提前預知風險
•業務報量到資源建設,銜接管控全流程;
•精确推導資源缺口,精确推導承載增量;
•大促活動變陣模拟,循環疊代業務資源池;
以上是阿裡雲CDN基于多年電商大促場景保障過程中沉澱下來的一些實戰經驗分享。阿裡雲CDN目前也在邊緣雲原生和雲網一體化排程上做了很多技術上的演進,後面我們将持續給大家進行相關分享,謝謝觀看。