




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
內容簡介阿里云數(shù)字新基建系列包括5本書,內容涉及內容分發(fā)網(wǎng)絡(ContentDeliveryNetwork,CDN)已經(jīng)發(fā)展成為互聯(lián)網(wǎng)的基礎設施,為App展歷史;第2部分(第2~6章)重點介紹CDN核心子系統(tǒng)的技術原理及工程實現(xiàn),內容涵蓋調品的架構設計、功能詳解及產(chǎn)品優(yōu)化最佳實踐,具體產(chǎn)品包括視頻點播、實時流媒體、動態(tài)加速及安全防護;第4部分(第13~14章)介紹阿里云CDN的技術演進策略,包括CDN自身核心本書可作為高等院校研究生、本科生學習CDN整體架構及核心技術的學習材料,也可供對CDN產(chǎn)品和技術感興趣的工程技術人員、研究人員閱讀與參考,亦可作為CDN產(chǎn)品的現(xiàn)有及潛凡所購買電子工業(yè)出版社圖書有缺損問題,請向購買書店調換。若書店售缺,:(質量投訴請發(fā)郵件至zlts@,盜版侵權舉顧問:李津、張卓、蔣雁翔、楊敬宇白常明、白金、曾福華、陳晨、陳雷、陳弢、崔九洲、鄧光青、丁玉杰、杜凱、凡濤濤、方建、付哲、高順路、耿嵩、洪小遲、賈彥龍、賈政、江天化、姜曉東、蔣飛揚、李兵禮、李光、李浩瀧、李赫、李俊潔、李俊偉、李克、李生龍、李松林、李曉棟、李洋、李志明、李忠仁、梁海艦、劉巖、劉云劍、盧日、馬儀超、莫小琪、聶大鵬、彭磊、邱于兵、裘良科、宋辰偉、宋明遠、孫騰飛、萬云龍、王棟、王廣芳、王偉、武桂珠、武豪、肖凱、肖文奇、徐若晨、許敦義、許開強、許樂、閆石、嚴阿仁、楊超、楊翰林、楊懷志、張洪江、張肖灑、張宇、趙洪達、趙偉、鄭春雨、鄭完富、周哲、朱光穆劉湘雯、孟晉宇、萬誼平、孫鴻杰、王政惠CDN是一個超大規(guī)模的分布式系統(tǒng),其峰值請求數(shù)超過1億次每秒,為互聯(lián)網(wǎng)上的各類App和Web站點提供動/靜態(tài)內容、實時流媒體加速以及網(wǎng)絡安全防護等功能。在過去5年多的CDN服務質量優(yōu)化工作以及相關人才招聘過程中,我發(fā)現(xiàn)不管是CDN的客戶、合作伙伴,還是希望進入CDN行業(yè)應用場景等往往存在著或多或少的疑問或者理解不透徹的地方。為此,阿里云CDN團隊組織了幾十名一線技術專家,系統(tǒng)總結了阿里云CDN在過去10余年中積累的技術研發(fā)與產(chǎn)品設計兩方面的實踐經(jīng)驗,從CDN的技術架構、產(chǎn)品設計、應用場景、最佳實踐及未來技術演進等各個維度展開詳細闡述,期望為廣大CDN行業(yè)同人深入理解CDN技術、正確使用CDN產(chǎn)品提供一本基于工程化最佳實踐的參考手冊,共同推動CDN技術的發(fā)展與普及。阿里云高級技術專家鄧光青CDN技術問世已經(jīng)超過20個年頭,我個人在CDN行業(yè)工作也將滿20個年頭,企業(yè)在網(wǎng)絡上構建服務的過程中,已經(jīng)到處可見CDN的身影,用好CDN技術也成為各企業(yè)技術從業(yè)人員的必備能力之一。從2014年開始,阿里云正式提供CDN商用服務,標志著基于云計算的CDN服務開啟了新的篇章。到今天,阿里云已經(jīng)是亞洲卓越的CDN服務商之一。背靠阿里云計算的強大技術能力,伴隨業(yè)務的發(fā)展,阿里云CDN底層的技術架構也進行了多次演變,在不斷推出更優(yōu)質服務的同時,CDN技術團隊也將整個大型商用CDN系統(tǒng)的技術架構選型和演進過程整理成冊,跟行業(yè)前行者分享和交流。該書不僅對構建大規(guī)模商用系統(tǒng)進行了高度概括的介紹,以便技術人員了解CDN的技術架構,也對決策者如何更好地選擇和使用CDN技術服務提供了參考。希望此書能成為一座交流的橋梁,使阿里云CDN跟大家一道,共同推動行業(yè)前進。阿里云資深技術專家郝沖CDN在不斷加速互聯(lián)網(wǎng)邊緣下載速度、減少核心網(wǎng)冗余流量傳輸、鞏固網(wǎng)絡安全的過程中,逐漸發(fā)展成為互聯(lián)網(wǎng)的基礎設施,支撐了短視頻、直播、電商等各行業(yè)的快速發(fā)展。阿里云CDN在支撐歷屆“雙11”流量洪峰以及服務廣大外部客戶的過程中,持續(xù)對技術和產(chǎn)品進行升級迭代,現(xiàn)已發(fā)展成為節(jié)點遍布全球的頂級CDN平臺之一。本書系統(tǒng)總結了阿里云CDN在架構演進、關鍵技術、產(chǎn)品設計及場景化調優(yōu)等方面的實踐,同時探討了阿里云CDN向成為具備網(wǎng)絡、計算、存儲等多方面能力的邊緣云平臺的技術演進路線,以及如何應對5G時代大帶寬、低時延、廣連接的邊緣計算場景帶來的技術挑戰(zhàn)。本書可作為廣大CDN用戶及從業(yè)者深入了解CDN技術原理、產(chǎn)品功能及未來技術發(fā)展趨勢的參考手冊。阿里云資深技術專家楊敬宇內容分發(fā)網(wǎng)絡(ContentDeliveryNetwork,CDN)是構建在現(xiàn)有互聯(lián)網(wǎng)基礎架構之上的覆蓋網(wǎng)(OverlayNetwork一方面通過邊緣節(jié)點緩存減輕骨干網(wǎng)的擁塞情況,另一方面通過邊緣節(jié)點協(xié)同提升網(wǎng)絡的抗攻擊能力,從而為互聯(lián)網(wǎng)上的各類App和Web站點等提供動/靜態(tài)內容加速、實時流媒體加速以轉而采用線上課堂的形式繼續(xù)開展教學活動,CDN平臺憑借其遍布全球的邊緣加速節(jié)點、全面的內容加速能力以及智能的流量實時調度系統(tǒng),成功支撐了在線課堂網(wǎng)絡流量幾十倍地迅猛增長,助力實現(xiàn)了“停課不停學”的目標,創(chuàng)造了巨大的社會價值。阿里云CDN起源于自有電商業(yè)務的圖片加速,經(jīng)過阿里巴巴集團歷屆“雙11”高并發(fā)場景的不斷打磨,其技術能力顯著提升、網(wǎng)絡規(guī)??焖贁U大,逐漸發(fā)展為節(jié)點遍布全球的大型CDN平臺。當前,CDN已經(jīng)融入我們日常生活的后臺往往由CDN在提供加速及安全能力支撐。我在服務海內外客戶及進行人才招聘的過程中,發(fā)現(xiàn)不管是CDN的客戶、合作伙伴,還是希望進入CDN行業(yè)工作的應屆畢業(yè)生或社招技術人員,對CDN的體系架構、核心模塊、產(chǎn)品功能、應用場景等往往存在著或多或少的疑問或者理解不透徹的地方。其原因大致可分為兩個方面:一方面是因為CDN作為一個大規(guī)模的分布式系統(tǒng),其技術非常復雜,不易理解;另一方面是因為市面上能體系化闡述CDN前沿技術、最佳實踐的書籍太少,學習資料缺乏。為此,阿里云CDN團隊組織了幾十名一線技術和產(chǎn)品專家合力撰寫了《CDN技術架構》這本書,從CDN的基礎技術、核心產(chǎn)品、最佳實踐場景及未來邊緣計算平臺演進四個方面總結了阿里云CDN在過去十余年中取得的技術和產(chǎn)品化進展,希望能增進大家對于CDN技術和產(chǎn)品的理解,通過交流和分享共同推動CDN行業(yè)的發(fā)展與技術進本書共包含14章,具體可劃分為4個部分:第1部分由第1章組成,簡要介紹了CDN核心產(chǎn)品(動態(tài)加速、靜態(tài)加速及安全防護等)的技術原理及應用場景,以及CDN在互聯(lián)網(wǎng)架構中的定位和CDN的發(fā)展歷史;第2部分由第2~6章組成,主要從調度系統(tǒng)、節(jié)點系統(tǒng)、網(wǎng)絡傳輸以及運營支撐4個方面對CDN平臺的核心技術進行介紹;第3部分由第7~12章組成,詳細闡述了CDN四大產(chǎn)品(視頻點播、實時流媒體、動態(tài)加速以及安全防護)的產(chǎn)品架構設計及功能詳解,以及CDN產(chǎn)品的場景化優(yōu)化最佳實踐;第4部分由第13~14章組成,主要闡述阿里云CDN平臺的技術演進策略,包括CDN核心技術的演進方向,以及CDN向邊緣計算平臺的演進策略等。各章內容的具體介紹如下。本章主要圍繞“什么是CDN”“CDN能做什么”“互聯(lián)網(wǎng)為什么需要CDN”這三個問題展開論述。CDN是構建在已有互聯(lián)網(wǎng)基礎設施之上的大規(guī)提供動/靜態(tài)加速及安全防護能力。在互聯(lián)網(wǎng)中心側,CDN通過減少數(shù)字內容的冗余傳輸來緩解骨干網(wǎng)的擁塞;在互聯(lián)網(wǎng)邊緣側,CDN通過數(shù)字內容前置及就近調度來加速邊緣下載速度。本章首先簡述CDN三大核心能力(動態(tài)加速、靜態(tài)加速及安全防護能力)的工作原理及應用場景,然后介紹CDN在互聯(lián)網(wǎng)技術架構中的定位及作用,最后簡述了CDN的發(fā)展歷史。本章介紹CDN系統(tǒng)的整體技術架構及四大核心子系統(tǒng),包括流量調度系統(tǒng)、節(jié)點軟件系統(tǒng)、網(wǎng)絡傳輸系統(tǒng)及運營支撐系統(tǒng)。調度系統(tǒng)主要解決海量用戶與CDN節(jié)點的匹配問題,既加速邊緣下載速度又保持CDN節(jié)點在各個維度(帶寬、CPU、存儲、I/O等)的負載均衡。節(jié)點軟件系統(tǒng)主要解決互聯(lián)網(wǎng)業(yè)務的高并發(fā)接入及產(chǎn)品功能的靈活實現(xiàn)問題,提供高性能、高可靠的CDN服務。網(wǎng)絡傳輸系統(tǒng)主要解決互聯(lián)網(wǎng)內容的快速分發(fā)問題,通過優(yōu)化TCP/IP協(xié)議棧來提升下載速度。運營支撐系統(tǒng)為CDN平臺提供計費結算、運營分析、客戶服務及決策支持等功能。本章詳細介紹阿里云調度系統(tǒng)的關鍵組件與核心算法。首先介紹資源規(guī)劃模塊,該模塊通過資源畫像與業(yè)務畫像來實現(xiàn)資源與業(yè)務的最佳適配。接著介紹負載均衡模塊,其通過DNS、HTTPDNS以及302跳轉三種流量牽引方式實現(xiàn)節(jié)點資源(帶寬、CPU、存儲和I/O等)的綜合負載均衡。然后,對DNS和IP調度服務器的系統(tǒng)架構和關鍵模塊進行詳細介紹。最后,對全局感知系統(tǒng)進行闡述,包括CDN服務可用性及實時覆蓋質量的感知。本章詳細闡述CDN節(jié)點系統(tǒng)的核心軟件,包括接入域網(wǎng)關及緩存系統(tǒng)等。首先闡述了節(jié)點架構的演進過程,當前阿里云CDN采用多級緩存架構,具備異構資源接入及流量網(wǎng)狀轉發(fā)能力,能靈活、高效地支撐業(yè)務功能定制、成本與質量優(yōu)化等。接下來闡述接入域網(wǎng)關組件,從HTTP/2、HTTPS等方面進行詳細介紹。然后介紹回源域組件。最后重點介紹CDN緩存系統(tǒng),包括架構設計及高性能軟、硬件一體化緩存算法的設計與實現(xiàn)。本章介紹TCP/IP傳輸層優(yōu)化技術。首先介紹網(wǎng)絡傳輸優(yōu)化面臨的挑戰(zhàn),然后以BBR算法為代表闡述網(wǎng)絡擁塞控制的原理,接著以DUPACK、SACK、FACK等技術為例介紹網(wǎng)絡丟包恢復原理,最后介紹網(wǎng)絡旁路干擾技術,包括旁路干擾設備的部署、干擾原理及具體案例等。本章介紹CDN運營支撐系統(tǒng),包括管控系統(tǒng)、配置管理系統(tǒng)、內容管理系統(tǒng)、監(jiān)控系統(tǒng)、日志系統(tǒng)等。首先從用戶管理、域名管理及CDN控制臺三個方面介紹管控系統(tǒng);接著從用戶配置、軟件配置兩個方面介紹配置管理系統(tǒng);然后從基礎能力、內容刷新、內容預熱、內容封禁四個方面介紹內容管理系統(tǒng);接下來是監(jiān)控系統(tǒng)介紹,重點介紹智能化監(jiān)控技術方案;最后是日志系統(tǒng),介紹日志系統(tǒng)面臨的挑戰(zhàn)、常見數(shù)據(jù)交付場景及邊緣分析加速等。本章主要對CDN的四大核心產(chǎn)品進行概述。7.1節(jié)介紹視頻點播產(chǎn)品功能及發(fā)展歷史;7.2節(jié)從直播發(fā)展的四個階段、直播全鏈路七大環(huán)節(jié)及五種主流的流媒體協(xié)議等不同角度對CDN直播產(chǎn)品進行詳細介紹;7.3節(jié)介紹動態(tài)加速產(chǎn)品的業(yè)務場景及產(chǎn)品能力;7.4節(jié)從常見的安全風險類型及CDN安全防護體系構建兩大角度對安全防護產(chǎn)品進行簡要介紹。本章詳細介紹CDN點播產(chǎn)品。首先介紹視頻點播的應用場景,包括視頻拖曳、動態(tài)轉封裝、試看試聽、聽視頻等;接著介紹視頻點播的核心技術,包括自適應限速、節(jié)點限流、點播防盜鏈、點播封禁等。本章詳細介紹實時流媒體產(chǎn)品功能、應用場景及技術架構。首先介紹三大主流實時流媒體協(xié)議——RTMP、HTTP-FLV、HLS;接著介紹實時流媒體的典型應用場景,包括實時音視頻(例如連麥、云會議)及視頻直播(包括P2P直播然后對實時流媒體的系統(tǒng)架構進行詳細介紹,包括傳統(tǒng)的三層樹狀結構及最新的網(wǎng)狀結構;最后介紹實時流媒體創(chuàng)新技術,包括QUIC傳輸協(xié)議、GRTN新一代傳輸網(wǎng)等。本章詳細介紹動態(tài)加速這款產(chǎn)品的加速原理、應用場景及技術架構。首先從傳輸組網(wǎng)、協(xié)議棧優(yōu)化的角度介紹動態(tài)加速的原理;接下來介紹動態(tài)加速的典型使用場景,包括電商、社交、政企、游戲、金融等;然后介紹動態(tài)加速的技術架構,緊接著闡述動態(tài)加速的核心技術,包括網(wǎng)絡探測、智能選路、流量規(guī)劃等;最后,分別對四層加速、七層加速的軟件組件進行詳細介紹。本章詳細介紹安全防護產(chǎn)品的技術架構、使用場景。首先從中心安全大腦、邊緣智能防御兩方面介紹安全防護整體架構;然后介紹四層負載均衡及DDoS防護,四層負載均衡設備具備SYNFlood防御、分片攻擊防御、會話檢測、畸形報文檢測及協(xié)議合規(guī)檢測等安全功能,DDoS防護的核心技術包括邊緣加速、智能調度、大流量防御;最后介紹應用層安全,涵蓋精準訪問控制、區(qū)域封禁、IP頻次控制、機器流量管理等。本章主要介紹典型的CDN場景化最佳實踐案例。12.1節(jié)介紹CDN命中率優(yōu)化實踐,對共享緩存、刷新和預熱、分片緩存及調度流量收斂等各類命中率優(yōu)化手段進行詳細介紹。12.2節(jié)介紹應用市場下載加速最佳實踐,對資源池化與邏輯隔離、302調度、HTTPDNS調度、一致性Hash(哈希)回源等手段進行詳細介紹。12.3節(jié)介紹超低延時互動課堂及點播加速最佳實踐,基于教學視頻點播、大班課/公開課直播及小班課實時音視頻直接交流的場景進行詳細闡述。12.4節(jié)介紹動態(tài)加速最佳實踐,針對新聞媒體類客戶具有的傳播廣、用戶雜、實時性要求高、突發(fā)性高的特點介紹動態(tài)加速的優(yōu)化措施。本章主要介紹CDN核心技術的演進方向。5G高帶寬、低延遲邊緣接入技術的發(fā)展對CDN提出了更高的要求,為此,首先從傳統(tǒng)架構存在的問題、技術架構選型和云原生CDN架構設計三個方面介紹節(jié)點技術架構的演進思路,接著分別從調度系統(tǒng)、中臺技術及邊緣可編程三個方面對CDN的核心技術演進進行詳細介紹。本章探討邊緣計算的內涵與外延,以及CDN與邊緣計算的融合進展。14.1節(jié)詳細討論邊緣計算的具體定義、技術架構、核心能力、運維管控、核心技術及應用場景等;14.2節(jié)介紹阿里云CDN基于ENS(EdgeNodeService,邊緣節(jié)點服務)構建vCDN節(jié)點的技術方案及工程實踐,vCDN節(jié)點與物理節(jié)點相比,具有彈性擴/縮容、快速交付等優(yōu)點。本書是阿里云CDN團隊集體創(chuàng)作的結晶,鑒于本書作者水平有限,書中錯誤和疏漏之處在所難免,懇請廣大讀者批評指正。鄧光青第2章CDN系統(tǒng)架構概述013第4章CDN節(jié)點系統(tǒng)069第5章CDN網(wǎng)絡優(yōu)化第6章CDN運營支撐第7章CDN產(chǎn)品概述第8章CDN視頻點播第9章CDN實時流媒體第10章CDN動態(tài)加速第11章CDN安全防護第12章CDN場景化最佳實踐第13章CDN未來技術演進309第14章CDN與邊緣計算第1章內容分發(fā)網(wǎng)絡(ContentDeliveryNetwork,CDN)是構建在互聯(lián)網(wǎng)TCP/IP(TransmissionControlProtocol/InternetProtocol)四層模型之上對用戶透明的覆蓋網(wǎng)(OverlayNetwork),該網(wǎng)絡通過在全球范圍內分布式地部署邊緣服務器,將各類互聯(lián)網(wǎng)內容從互聯(lián)網(wǎng)中心緩存到靠近用戶的邊緣服務器上,從而降低用戶訪問時延并大幅減少穿越互聯(lián)網(wǎng)核心網(wǎng)的流量,達到優(yōu)化互聯(lián)網(wǎng)流量分布,進而提升終端用戶服務質量的目的。隨著互聯(lián)網(wǎng)業(yè)務的迅猛發(fā)展,一大批以實時電商推薦、金融交易等為代表的動態(tài)加速類業(yè)務崛起。針對這類業(yè)務實時加速的需要,CDN通過動態(tài)路由規(guī)劃、協(xié)議棧傳輸優(yōu)化等技術對其進行傳DenialofService,分布式拒絕服務攻擊)為代表的網(wǎng)絡攻擊事件不斷涌現(xiàn),嚴重阻礙了互聯(lián)網(wǎng)應用的發(fā)展。面對這類挑戰(zhàn),CDN基于其廣泛分布的邊緣節(jié)點,并結合智能攻擊流量檢測以及流量清洗技術,能夠避免攻擊流量把內容源站打垮,從而保護各類互聯(lián)網(wǎng)業(yè)務的正常、平穩(wěn)運行。當前,全球互聯(lián)網(wǎng)流量的一半以上是通過CDN進行加速的。隨著無線接入帶寬的不斷增長,各類互聯(lián)網(wǎng)短視頻、長視頻業(yè)務取得了爆發(fā)式的增長,CDN市場也隨之駛入了高速發(fā)展的軌道。2018年全球CDN市場規(guī)模達到了90億美元。據(jù)MarketsandMarkets公司發(fā)布的數(shù)據(jù)推測,預計未來幾年CDN的市場規(guī)模仍將繼續(xù)保持快速增長,2022年全球CDN市場規(guī)模預計將達到308.9億美元。CDN因其解決了互聯(lián)網(wǎng)內容的加速問題以及互聯(lián)網(wǎng)應用的安全防護問題而逐漸發(fā)展成了互聯(lián)網(wǎng)的基礎設施,促進了電子商務、短視頻、直播等各類互聯(lián)網(wǎng)應用的繁榮發(fā)展。視頻及實時流媒體在內的各類互聯(lián)網(wǎng)內容。當前全球互聯(lián)網(wǎng)超過50%的流量都通過CDN來進行加速?;ヂ?lián)網(wǎng)用戶不管是瀏覽門戶網(wǎng)站、觀看短視頻和長劇,還是網(wǎng)上購物、在線學習,背后都有CDN在后臺加速的身影。尤其在2020年春夏新冠肺炎疫情期間,CDN支撐了上億個學生的在線課堂學習,成功應對了實現(xiàn)了巨大的社會價值。CDN相較于底層IP網(wǎng),提供了動態(tài)內容的加速、靜態(tài)內容的加速、安全防護三項最核心的能力,從而支撐了各類互聯(lián)網(wǎng)業(yè)務的快速發(fā)展。下面對這三方面的能力進行基本原理分析。CDN的加速原理如下:對于動態(tài)內容(即不能緩存的內容,如電商實時推薦、賬號密碼認證等),可以通過優(yōu)化路由來進行加速。對于靜態(tài)內容(即可緩存的內容,如圖片、短視頻、大文件等可進一步通過緩存來實現(xiàn)以存儲空間換帶寬的目的,從而大幅降低傳輸時延。動態(tài)內容加速的示意圖如圖1-1所示。如果沒有CDN加速,當網(wǎng)絡用戶與內容源站距離較遠(如橫跨大洲)時,在這種情況下,如果部署CDN節(jié)點進行加速,也就是在用戶與內容源站之間通比如傳輸時延可減少到300ms,即傳輸時延可以降到原來的30%,從而大幅提升用戶體驗。動態(tài)內容加速的核心技術主要包括應用層路由路徑優(yōu)化以及傳輸靜態(tài)內容加速的示意圖如圖1-2所示,當沒有CDN加速時,大量的用戶請求需要穿越互聯(lián)網(wǎng)骨干網(wǎng)才能獲得源站的內容。由于網(wǎng)絡距離遠以及骨干網(wǎng)的網(wǎng)絡擁塞問題,端到端的請求時延會非常長,這會嚴重影響用戶體驗。當使用CDN進行靜態(tài)內容加速時,CDN節(jié)點會在互聯(lián)網(wǎng)的邊緣緩存靜態(tài)內容,確保絕大部分請求可以就近從CDN節(jié)點下載到所需內容,從而避免穿越骨干網(wǎng),最終可極大地提升用戶體驗。使用CDN之后,由于大量請求在邊緣就可以找到其所需的內容,因此穿越互聯(lián)網(wǎng)骨干網(wǎng)的流量大幅減少。這樣既有效減輕了骨干網(wǎng)的流量壓力,也節(jié)省了SP(ServiceProvider,服務提供商)的帶寬成本,促進了互聯(lián)網(wǎng)業(yè)務的快速發(fā)展。安全防護(見圖1-3)是各個互聯(lián)網(wǎng)應用必須具備的自保能力,否則在面對大規(guī)模DDoS攻擊時,正常的業(yè)務運行就可能被中斷。如果沒有CDN的保護,當一個互聯(lián)網(wǎng)源站服務器遭受大規(guī)模DDoS攻擊時,大幅突增的攻擊流量會將內容源站的帶寬耗盡,使得正常的業(yè)務請求無法得到響應,從而造成客戶流失。而如果開啟了CDN安全防護服務,當大規(guī)模攻擊流量來襲時,CDN的大量邊緣節(jié)點(200Tb/s以上的帶寬儲備)可以承受攻擊流量,再結合CDN的高性能流量清洗設備過濾掉攻擊流量,如此一來只有真正的合法用戶請求才會到達內容源站。這樣,由于儲備了大量的帶寬,CDN可以保護用戶源站免遭網(wǎng)絡攻擊的影響。CDN三大核心能力的構建基于同一個覆蓋網(wǎng)基礎設施,CDN覆蓋網(wǎng)的基本結構如圖1-4所示。CDN服務端主要包括了調度系統(tǒng)、節(jié)點系統(tǒng)以及支撐系統(tǒng)三大核心系統(tǒng)。其中,調度系統(tǒng)解決各類用戶請求與CDN邊緣節(jié)點的適配問題,既縮短互聯(lián)網(wǎng)用戶的訪問時延,又保證CDN邊緣節(jié)點之間的負載均衡。節(jié)點系統(tǒng)通過被動緩存及主動預取技術對大部分互聯(lián)網(wǎng)用戶請求實現(xiàn)了邊緣響應,以實現(xiàn)加速。其同時通過多級緩存不斷減少回用戶源站的流量,在極致情況下,可以做到客戶的源站只需向CDN注入一份資源副本,就可以實現(xiàn)全網(wǎng)用戶訪問。支撐系統(tǒng)主要承擔內容管理、配置管理以及監(jiān)控中心、數(shù)據(jù)中心的管理等任務。其中,內容管理主要包括內容的封禁、刷新處理;配置管理主要包括實現(xiàn)類似鑒權、與限速相關的邊緣處理邏輯;監(jiān)控中心負責保障系統(tǒng)的穩(wěn)定性,及時發(fā)現(xiàn)系統(tǒng)異常行為并及時處理;數(shù)據(jù)中心主要負責各類日志數(shù)據(jù)的預處理與收集,為計量計費提供數(shù)據(jù)支撐。用戶在訪問互聯(lián)網(wǎng)內容時,首先通過DNS(DomainNameSystem,域名系統(tǒng))或者HTTP(HyperTextTransferProtocol,超文本傳輸協(xié)議)調度方式從調度系統(tǒng)獲得邊緣節(jié)點的IP地址,然后向邊緣節(jié)點發(fā)起內容訪問。以電子商務、互動論壇博客為代表的互聯(lián)網(wǎng)業(yè)務存在大量不能緩存、需要實時回源的動態(tài)內容加速場景。例如,電商平臺涉及了用戶注冊、登錄、在線支付、秒殺等需要動態(tài)加速的場景。常見的動態(tài)加速場景示意圖如圖1-5所示。CDN會維護一個實時路由探測系統(tǒng),獲取各條路由的實時鏈路質量信息,并通過調度中心在綜合考慮路由優(yōu)選與鏈路負載均衡兩大因素后,為每一個動態(tài)內容計算出一條最佳的路由線路,從而達到快速獲取動態(tài)內容的目的。大文件、圖片以及在線點播業(yè)務的本質是,通過互聯(lián)網(wǎng),將靜態(tài)文件內容從內容生產(chǎn)者分發(fā)給終端用戶。CDN綜合使用資源預熱拉取、SSD(SolidStateDisk,固態(tài)硬盤)、SATA(SerialAdvancedTechnologyAttachment)超大規(guī)模邊緣存儲及熱點內容自適應智能緩存等技術,通過以存儲空間換帶寬,極靜態(tài)加速具有高性能、調度靈活的特點。大型CDN廠商一般具有上千級別的邊緣節(jié)點,結合高性能緩存軟件,可以實現(xiàn)熱點內容90%以上的邊緣命中率,從而可避免用戶請求跨越互聯(lián)網(wǎng)核心網(wǎng)回源站拉數(shù)據(jù)。這樣就極大地縮小了響應時間,提升了用戶體驗。政府行業(yè)網(wǎng)站及互聯(lián)網(wǎng)金融、游戲加速等領域都具有很強的網(wǎng)絡防攻擊需求。例如,對于政府類網(wǎng)站來講,在會議或者特殊時段,需要保障網(wǎng)站的可用性,防止其遭受DDoS攻擊或者CC(ChallengeCollapsar)攻擊而不能被訪問;對于互聯(lián)網(wǎng)金融業(yè)務來講,金融數(shù)據(jù)是惡意爬蟲攻擊的首要對象,其站點性能、網(wǎng)站安全以及內容安全需要同時兼顧。CDN安全防護場景示意圖如圖1-7所示。對于DDoS攻擊,CDN平臺部署了抗D清洗中心。當DDoS攻擊發(fā)生時,抗D清洗中心會對包含DDoS攻擊在內的訪問流量進行智能模式識別,并將DDoS流量切換到抗D清洗中心,以避免影響用戶的正常訪問。CDN并不是互聯(lián)網(wǎng)誕生之初就一直存在的,而是在支撐各類互聯(lián)網(wǎng)業(yè)務高速發(fā)展的過程中應運而生并不斷發(fā)展壯大的。CDN在原有互聯(lián)網(wǎng)基礎之上構建了一個分布式的覆蓋網(wǎng),彌補了原有互聯(lián)網(wǎng)在內容加速及安全防護方面的不足,極大地提升了電商、游戲、短視頻、直播等各類互聯(lián)網(wǎng)業(yè)務的用戶體驗及安全等級?;ヂ?lián)網(wǎng)設計理念的初心是“網(wǎng)絡互聯(lián)”與“盡力而為”?!熬W(wǎng)絡連接在一起。當前全球有數(shù)十萬的自治域網(wǎng)絡,這些自治域網(wǎng)絡通過以TCP/IP、DNS、HTTP為代表的標準協(xié)議實現(xiàn)了互聯(lián)互通;“盡力而為”指的是互聯(lián)網(wǎng)具有與電信網(wǎng)不一樣的運行機制,通過“存儲轉發(fā)”而不是鏈路獨享的方式向互聯(lián)網(wǎng)用戶提供盡量可靠的服務質量。顯然,隨著用戶與內容服務器距離的增大,服務質量會不斷下降?;ヂ?lián)網(wǎng)中的自治域(如圖1-8所示)之間存在著商業(yè)上的競爭關系,跨自治域的流量傳輸遭遇質量降級甚至傳輸失敗并不鮮見。但跨自治域訪問內容的需求是由用戶興趣和內容質量而不是互聯(lián)網(wǎng)設計理念決定的,這導致大量冗余互聯(lián)網(wǎng)流量不斷穿越基于BGP(BorderGatewayProtocol,邊界網(wǎng)關協(xié)議)的核心網(wǎng),造成核心網(wǎng)鏈路擁塞,使得用戶服務質量降級。而互聯(lián)網(wǎng)傳輸層協(xié)議在設計之初,都是端到端的,不能有效減少互聯(lián)網(wǎng)內容在跨這時,互聯(lián)網(wǎng)迫切需要一種新的技術,以減少跨域核心網(wǎng)流量的冗余傳輸,以可擴展性,以及更好的服務質量、更低的運營成本。這與互聯(lián)網(wǎng)“盡力而為”的初衷格格不入,迫切需要提升互聯(lián)網(wǎng)應用的安全性。彌補上述互聯(lián)網(wǎng)設計上的不足大體上有兩大類方法:一是重新設計并部署一套新的互聯(lián)網(wǎng)協(xié)議,但推倒重來會造成已建互聯(lián)網(wǎng)基礎設施的大量浪費,且基礎協(xié)議的更新進度極其緩慢。比如IPv6從1998年被提出到現(xiàn)在20多年過去了,其普及程度依然不高。二是在已有協(xié)議基礎上構建一個覆蓋網(wǎng),以彌補互聯(lián)網(wǎng)設計上的不足。這種方案既能復用原有基礎設施,又能提供新功能以滿足互聯(lián)網(wǎng)發(fā)展的需要。在這種背景下,CDN這一構建在原有互聯(lián)網(wǎng)之上的覆蓋網(wǎng)應運而生,并不斷發(fā)展壯大為一個產(chǎn)業(yè)。根據(jù)CDN的業(yè)務特點,可將其發(fā)展歷史大致劃分成以下三個階段:①1999年—2004年,第一階段——Web頁面內容的靜態(tài)/動態(tài)加速。②2005年—2014年,第二階段——多媒體(視頻)加速為主。③2015年—現(xiàn)在,第三階段——移動視頻/全站加速,與云計算平臺整合?;ヂ?lián)網(wǎng)發(fā)展初期,網(wǎng)絡的瓶頸在于“最后一公里”接入網(wǎng)而不是骨干傳輸網(wǎng),原因在于電話撥號上網(wǎng)的速度很低且用戶數(shù)很少。但隨著網(wǎng)絡接入技術的發(fā)展以及網(wǎng)民數(shù)量的不斷增多,網(wǎng)絡的瓶頸逐步由接入網(wǎng)向骨干網(wǎng)轉移。1995年,萬維網(wǎng)之父TimBerners-Lee(WWW技術發(fā)明人)預測到互聯(lián)網(wǎng)即將遭遇網(wǎng)絡擁塞,因此倡議人們能發(fā)明新的技術方法來實現(xiàn)互聯(lián)網(wǎng)的無擁塞內容分發(fā)。MIT(麻省理工學院)教授TomLeighton組建了一個團隊來解決這個問題,制定了能夠在大型分布式服務器網(wǎng)絡上智能傳送和復制內容的算法,以解決互聯(lián)網(wǎng)的網(wǎng)絡擁塞及用戶體驗問題。1998年8月20日,Leighton及其學生創(chuàng)立了Akamai公司,并于1999年4月開始提供商業(yè)服務。當時全球訪問量最大的網(wǎng)藍汛和網(wǎng)宿,并為當時的Web站點如新浪、搜狐等提供圖片加速服務。這一時期是互聯(lián)網(wǎng)Web站點的繁榮發(fā)展時期,CDN廠商主要針對Web頁面的靜態(tài)HTTP內容進行加速。但2001年的第一次互聯(lián)網(wǎng)泡沫破裂,導致大量的.com公司倒閉,CDN廠商的客戶來源大幅減少,即使是Akamai這樣的CDN鼻祖,也面臨著業(yè)務量的大幅萎縮。從2002年開始,DSL(DigitalSubscriberLine,數(shù)字用戶線路)寬帶接入技術開始在全球普及,用戶接入帶寬進入兆比特時代。這是互聯(lián)網(wǎng)視頻業(yè)務誕生的前提,也催生了對CDN加速的新需求。Web2.0技術強調交互性,也為動態(tài)加速提供了市場土壤。CDN廠商開始基于網(wǎng)絡探測及協(xié)議棧優(yōu)化適時推出動態(tài)加速服務,以支撐互聯(lián)網(wǎng)新業(yè)務的向前發(fā)展。從2005年開始,互聯(lián)網(wǎng)視頻行業(yè)逐步興起,催生了一大批互聯(lián)網(wǎng)視頻網(wǎng)站,比如,以用戶視頻分享(UGC)為主的土豆網(wǎng)、激動網(wǎng),以及基于P2P傳輸?shù)腜PLive、PPStream等。這些視頻網(wǎng)站催生了CDN對于視頻內容的加速需求。2009年3G牌照發(fā)放,移動互聯(lián)網(wǎng)開始崛起。隨后阿里、騰訊、百度等頭部互聯(lián)網(wǎng)公司持重金進入視頻行業(yè),這使得視頻加速逐漸占據(jù)了CDN流量的大頭。從2015年開始,隨著4G網(wǎng)絡規(guī)模的不斷擴大,互聯(lián)網(wǎng)用戶使用手機上網(wǎng)的比例越來越高,這催生了CDN針對移動視頻的加速。這一時期,云計算公司紛紛開始布局CDN業(yè)務。與傳統(tǒng)CDN廠商相比,云計算CDN公司的技術實力更強,資金投入更充足。這些云計算CDN公司的加入,使得高高在上的CDN價格逐步降低。得益于CDN價格的降低等因素,直播、短視頻等新興互聯(lián)網(wǎng)業(yè)務不斷發(fā)展壯大。CDN系統(tǒng)架構概述CDN作為一個全球化的分布式系統(tǒng),也是互聯(lián)網(wǎng)業(yè)務的基礎設施。CDN同時對系統(tǒng)性能和穩(wěn)定性有非常高的要求。由節(jié)點系統(tǒng)、調度系統(tǒng)、運維支撐系統(tǒng)(簡稱“支撐系統(tǒng)”)、用戶控制臺(簡稱“控制臺”)等子系統(tǒng)組成的CDN大腦神經(jīng)網(wǎng)絡保證了CDN的日常服務。CDN整體框架如圖2-1所示。CDN各個子系統(tǒng)間通過數(shù)據(jù)交互建立連接并形成一個網(wǎng)狀神經(jīng)系統(tǒng),其中包括業(yè)務日志數(shù)據(jù)、系統(tǒng)配置數(shù)據(jù)、系統(tǒng)資源數(shù)據(jù)、交互指令數(shù)據(jù)、內容管CDN調度系統(tǒng)為直播、點播、動態(tài)加速等產(chǎn)品線提供核心調度能力,包括DNS、HTTPDNS調度解析服務,節(jié)點資源調度服務,調度策略維護等,并可根據(jù)資源狀況實時調整調度策略,保證服務的穩(wěn)定性和高效性。節(jié)點點播架構采用Tengine+Swift模式,包括業(yè)務邏輯控制、緩存控制等功能。直播架構采用Tengine-Live模式,主要提供直播邊緣推流及播放端拉流等相關CDN運維支撐系統(tǒng),為整個系統(tǒng)提供數(shù)據(jù)交換中心服務,并提供日志分析、天眼監(jiān)控、域名配置管理、節(jié)點配置管理、內容管理及對外的API服務,與節(jié)點系統(tǒng)、調度系統(tǒng)、用戶控制臺之間建立數(shù)據(jù)交換通道。用戶控制臺是為用戶提供自助接入CDN服務的便捷窗口,包括CDN接入域名配置、實時/離線監(jiān)控數(shù)據(jù)、日志下載、資源刷新與預熱,以及直播、點播業(yè)務配置等。調度系統(tǒng)(見圖2-2)在CDN平臺中,通過實時科學決策將底層資源合理地調配給上層業(yè)務(彈性伸縮),并通過多租戶海量業(yè)務編排來精確控制資源水位(負載均衡),以達到業(yè)務按需進行質量控制和平臺成本控制的目標。CDN提供的核心價值是網(wǎng)站訪問加速和業(yè)務彈性支撐。其通過建設廣域調度系統(tǒng)將用戶訪問請求通過調度策略(就近覆蓋、過載分離等)引導到最合理的邊緣節(jié)點,進而達到用戶訪問站點加速和業(yè)務彈性支撐的目的。在互聯(lián)網(wǎng)發(fā)展的早期,電信基礎設施還不完善之時,CDN就已作為互聯(lián)網(wǎng)的基石,誕生于云計算出現(xiàn)之前的互聯(lián)網(wǎng)浪潮中,并為互聯(lián)網(wǎng)一路“高歌猛進”立下了汗馬功勞。當云計算開始風靡之時,業(yè)內人士發(fā)現(xiàn)CDN應該歸屬于云計算大類,其是非常典型且普及得非常成功的PaaS云產(chǎn)品(于是,云計算公司紛紛加入了這場CDN混戰(zhàn)),且分布式、多租戶、彈性伸縮等云計算的關鍵特征能在CDN調度系統(tǒng)里濃墨重彩般地體現(xiàn)(可通過調度系統(tǒng)的實現(xiàn)方式,厘清云CDN和非云CDN的本質差別)。在CDN平臺上,不同租戶場景有不同的●直播對時延和卡頓都有嚴苛的要求,其對網(wǎng)絡抖動的忍受度很低;而點播僅對卡頓有嚴苛的要求,大家可通過調控視頻播放器緩沖器(bu?er)的大小在一定程度上抵消網(wǎng)絡抖動的影響,其對網(wǎng)絡抖動具有一定的忍●UGC(UserGeneratedContent,用戶生成內容)業(yè)務內容過于分散,對存儲空間的需求非常大;而feed流推薦視頻內容相對集中,對存儲空間的需求則要低得多?!耠娚?、微服務接口、交易類業(yè)務需要全站內容請求都通過HTTPS來保護內容傳輸安全,且用戶請求的QPS(QueryPerSecond,每秒請求數(shù))高度并發(fā),屬于算力密集型業(yè)務。其對CPU算力的需求很大;而點播、下載類業(yè)務,單文件的大小比較大,往往呈現(xiàn)出流量密集型的特征,其對CPU算力的需求較小。在CDN平臺上,節(jié)點資源呈現(xiàn)出集群數(shù)量龐大、單集群規(guī)模小、異構構成[網(wǎng)絡、存儲、計算的容量規(guī)格和QoS(QualityofService,服務質量)都有差異]等特征。調度系統(tǒng)的一個重要職能就是“完成業(yè)務和資源的最佳匹配”,即根據(jù)各個租戶場景的業(yè)務畫像和資源畫像進行特征匹配和資源使用云產(chǎn)品的成功往往是通過不斷做大規(guī)模,再通過海量業(yè)務自然錯峰復用和采用技術手段不斷優(yōu)化資源能效(含資源復用率和資源使用率)、不斷攤薄單位業(yè)務運營成本來達到贏利目的的。在CDN平臺上,不同資源形態(tài)存在天然的資源互補(比如95計費、包端口、流量計費的組合使用)、不同業(yè)務形態(tài)存在天然的業(yè)務互補(時序錯峰、資源消耗互補等),而調度系統(tǒng)統(tǒng)籌著整個大盤業(yè)務和資源,決定各業(yè)務單元如何編排到各資源單元上,將資源供應鏈的優(yōu)勢進行科學釋放,以確保在滿足業(yè)務質量約束的情況下追求成本優(yōu)化目標的圖2-3是參照阿里云CDN給出的調度系統(tǒng)架構示意圖,CDN調度系統(tǒng)主要分成4個部分(成本規(guī)劃模塊、資源調度模塊、全局負載均衡模塊、調度執(zhí)行器模塊),以及許多調度支撐組件(含業(yè)務畫像、資源畫像、全局感知、LDNS畫像、全球精準IP地址庫等)。CDN平臺具有海量邊緣節(jié)點,這些節(jié)點分布在不同運營商、不同地域中,具有不同的價格、不同的計費方式,也具有不同的網(wǎng)絡品質、集群硬件配置。CDN的主要成本集中在帶寬成本上,成本規(guī)劃模塊是以離線方式在給定業(yè)務構成和資源構成的情況下求解各個節(jié)點的最優(yōu)成本線的。資源調度模塊在成本規(guī)劃模塊的基礎上,結合業(yè)務畫像和資源畫像進行業(yè)務與資源的匹配,將各個業(yè)務編排到相應的CDN節(jié)點上,輸出各個業(yè)務的節(jié)點集合池。資源調度需要解決在多客戶和多業(yè)務混跑場景下各個業(yè)務都有突發(fā)可能的問題;也就是說,一個比較好的資源調度方案應該具備比較好的彈性伸全局負載均衡模塊在成本規(guī)劃模塊給定節(jié)點成本線和資源調度模塊劃定業(yè)務節(jié)點集合的約束下,生成全局調度策略,以確保水位的均衡性,以及根據(jù)業(yè)務分級需要進行就近覆蓋(網(wǎng)絡往返時延RTT滿足業(yè)務場景要求)。由于CDN廣域分布海量節(jié)點的特點,各節(jié)點必然會存在異常或出現(xiàn)故障的概率,全局負載均衡模塊還需要將發(fā)生故障節(jié)點的業(yè)務快速遷移到其他的健康節(jié)點中。調度執(zhí)行器是執(zhí)行全局負載均衡調度策略的調度服務器組件,包含DNS執(zhí)行器、HTTPDNS執(zhí)行器、302執(zhí)行器等。這三種組件對應三種不同的用戶請求調度牽引方式,即LDNS(LocalDNS,本地域名服務器)牽引、App端繞過DNS自行解析牽引、302跳轉牽引。調度牽引方式的選擇對調度策略的執(zhí)行精確度、實時性、可調度顆粒度都有直接的影響。此外,調度系統(tǒng)還需要很多重要的支撐組件:●IP地址庫組件:調度執(zhí)行器基于IP地址庫來判斷執(zhí)行哪個用戶歸屬區(qū)域(如聯(lián)通北京、電信廣東等)的調度策略?!袢指兄M件:通過主動探測和被動檢測等方式感知資源的可用性狀態(tài),并實時觸發(fā)全局負載均衡模塊進行故障遷移?!癞嬒窠M件:含業(yè)務畫像、資源畫像、LDNS畫像,畫像數(shù)據(jù)的精確度對調度策略的科學生成至關重要。節(jié)點軟件在CDN系統(tǒng)中作為用戶數(shù)據(jù)流的核心通道,包括從最開始用戶流量的接入,到資源的緩存,再到未命中資源的回源拉取。核心通道上的各環(huán)節(jié)出現(xiàn)任意微小的問題,都將直接損害CDN用戶的體驗。節(jié)點軟件的核心價值是在保證穩(wěn)定、高性能的前提下,提供豐富的產(chǎn)品化功能及可編程能力的擴展。正是由于其核心鏈路通道的位置特點,節(jié)點軟件具有如下功能:●提供高性能、穩(wěn)定的接入網(wǎng)關,支持包括HTTPS(HyperTextTransferProtocoloverSecureSocketLayer)、HTTP/2(HyperTextTransferProtocol2.0)、QUIC(QuickUDPInternetConnection)等協(xié)議接入。盤等不同硬件上實現(xiàn)不同的淘汰算法,最大限度地挖掘軟件性能?!裉峁┴S富的動態(tài)配置能力,降低軟件變更頻次,減少變更影響?!裉峁┴S富的度量數(shù)據(jù),用于業(yè)務性能的監(jiān)控和計費。在以上核心功能中,穩(wěn)定和高性能是提供大規(guī)模服務能力的前提,豐富的產(chǎn)品化功能是滿足海量用戶需求的基礎,可編程能力擴展是阿里云CDN節(jié)點軟件的優(yōu)勢。圖2-4是參照阿里云CDN給出的節(jié)點軟件示意圖,主要分成接入網(wǎng)關、緩存組件、回源組件三大部分。隨著互聯(lián)網(wǎng)協(xié)議的不斷迭代和升級,產(chǎn)生了用于解決安全性、性能、互動性等各方面問題的越來越多的網(wǎng)絡協(xié)議。接入網(wǎng)關直接與用戶交互,接收用戶的請求,對不同的網(wǎng)絡協(xié)議進行處理和卸載。同時,接入網(wǎng)關需要為用戶提供限流、限速、防盜鏈等豐富的產(chǎn)品化功能。針對部分無法產(chǎn)品化的定制化需求,其還提供可編程擴展的能力,供用戶自己實現(xiàn)定制化邏輯。對于緩存組件而言,緩存資源的正確性是重中之重。通常用戶可以接受一定概率的緩存丟失,但是無法接受緩存錯誤。緩存組件在保證全網(wǎng)資源正確性的基礎上,通過優(yōu)化不同介質上的熱點遷移算法以最大限度地“榨取”硬件能力,并通過優(yōu)化緩存淘汰算法來提升緩存命中率。同時緩存組件還需要提供豐富的刷新能力,用于不同場景下的資源更新需求?;卦唇M件面對的是多種多樣的用戶源站,并且傳輸鏈路在不穩(wěn)定的公網(wǎng)上,所以需要回源組件在支持多種回源協(xié)議的基礎上,在各種異常情況下有完備的增刪回源頭功能等,都需要提供產(chǎn)品化的解決方案。網(wǎng)絡傳輸(見圖2-5)是影響CDN傳輸性能的關鍵系統(tǒng)。基于優(yōu)質的節(jié)點資源和良好的調度策略,網(wǎng)絡傳輸優(yōu)化技術可在原基礎上再大幅提升傳輸速率、縮短首屏時間、降低卡頓率,給用戶帶來更順暢的體驗。圖2-5展示了一個經(jīng)典的CDN分層結構,網(wǎng)絡傳輸優(yōu)化不僅影響用戶與L1邊緣點之間的傳輸性能,也影響L1、L2內部的傳輸。而如果開啟回源加速,則還能提升到源站的傳輸性能。通常用戶與L1之間的網(wǎng)絡傳輸基于TCP等傳輸協(xié)議,此時L1節(jié)點開啟單邊加速,即優(yōu)化只在服務器側進行。而如果用戶接入了CDN的SDK(SoftwareDevelopmentKit)或其他支持雙邊加速的私有協(xié)議,則優(yōu)化同時在服務器和客戶端兩側生效。與單邊加速相比,雙邊加速通常對性能的提升空間更大、更加靈活。在CDN內部,例如L1、L2之間,單邊/雙邊加速同時存在,可靈活切換。而在L2與源站之間,CDN可以基于鏈路質量探測、動態(tài)路由等技術選擇一條連接源站最快、最穩(wěn)定的線路,從而實現(xiàn)回源加速。網(wǎng)絡傳輸優(yōu)化的重點在三個方面:擁塞控制、傳輸協(xié)議與選路方式。擁塞控制與傳輸協(xié)議互相配合,可以最大化利用鏈路帶寬或最小化傳輸時延等,而選路可改善鏈路質量,提升傳輸能力的上限。圖2-6是阿里云CDN網(wǎng)絡傳輸優(yōu)化的架構示意圖。不同類型的業(yè)務對網(wǎng)絡傳輸?shù)男枨髠戎攸c不同,比如靜態(tài)下載類業(yè)務需要提升下載速率,而點播、直播類業(yè)務需要降低卡頓率。為了對不同業(yè)務做有針對性的優(yōu)化,節(jié)點軟件會根據(jù)配置中心的配置,將業(yè)務特征的相關信息下發(fā)到傳輸層,供傳輸層進行決策。不同節(jié)點、不同時間段,鏈路質量也存在差異,通過鏈路質量探測等手段,將鏈路質量的變化及時通知傳輸層,可使網(wǎng)絡傳輸優(yōu)化策略更適應多變的網(wǎng)絡環(huán)境。傳輸層最終根據(jù)業(yè)務特征和當前鏈路質量,從加速策略庫中選擇最合適的加速策略,從而達到具有針對性優(yōu)化的效果。加速策略的內容包括擁塞控制算法及其參數(shù)、選擇傳輸協(xié)議及是否使用動態(tài)選路等。而每次傳輸結束后,將記錄相關信息和決策,并記錄日志。離線的機器學習平臺將分析傳輸層日志,自動優(yōu)化加速策略庫,從而形成運營支撐系統(tǒng)也叫BOSS(Business&OperationSupportSystem),這個概念是從運營商系統(tǒng)繼承下來的。通常所說的BOSS分為四個部分:計費結算系統(tǒng)、經(jīng)營和運營系統(tǒng)、客戶服務系統(tǒng),以及決策支持系統(tǒng)。BOSS從業(yè)務層面來看就是一個統(tǒng)一的平臺,以承載用戶業(yè)務和運營需要,提供統(tǒng)一的入口和CDN的運營支撐系統(tǒng)也是一樣的概念,其主要分層結構如圖2-7所其中,對外的部分屬于服務運營層,提供客戶的入口和對外的接口。內部分為三層,底層是資源管理層;資源管理層的上面是安全生產(chǎn)層,即開發(fā)運維自動化平臺,本層提供安全生產(chǎn)的能力;安全生產(chǎn)層的上面是數(shù)據(jù)中臺層,本層提供內外部的數(shù)據(jù)運營能力。運營支撐系統(tǒng)是底層技術能夠對外服務的核心基礎,其能夠打通技術和用戶之間的通路,提供高效、穩(wěn)定、智能的一體化服務平臺。本章介紹CDN調度系統(tǒng)中的資源規(guī)劃。資源規(guī)劃要解決的是業(yè)務使用哪些資源覆蓋的問題,即業(yè)務的資源池決策。早期的CDN業(yè)務比較簡單,從類型上考慮,可以分為直播、點播、圖片。例如,直播類型的業(yè)務希望使用計算型的資源,而圖片型業(yè)務需要計算和存儲混合型資源,在此基礎上,再根據(jù)業(yè)務規(guī)模大小、客戶級別劃分出調度域,每個調度域對應一個資源池。此外,部分業(yè)務易受到黑客攻擊,需要考慮業(yè)務和黑客攻擊之間的相關性,從資源池劃分上需要做到根據(jù)業(yè)務安全等級進行隔離。最后,為保障業(yè)務命中率,需要約束其使用的資源范圍,變更頻率。在這些需求背景下,我們需要對業(yè)務所用的資源池進行規(guī)劃。業(yè)務資源池一般隨業(yè)務量的增長而變化,變更頻率較低,因此早期的策略是運維團隊靜態(tài)配置。但是隨著成本優(yōu)化目標的引入,對單個資源使用的帶寬彈性提出了更高的要求,而新型業(yè)務的不斷引入也對資源的使用提出了更為精細的要求。資源規(guī)劃的輸出是業(yè)務資源池。這里的業(yè)務對應到系統(tǒng)中的概念是調度域,也就是一組域名的集合。調度域是調度的最小業(yè)務單位。一個調度域中的所有域名在任意時刻的調度策略是相同的。上面提到資源池的劃分主要取決于業(yè)務的質量要求和大盤資源使用的成本訴求。系統(tǒng)化地解決這個問題分為三步,如●畫像:畫像系統(tǒng)深挖業(yè)務與大盤資源使用的成本訴求,將定性的目標轉化為可量化的指標。●匹配:匹配是資源規(guī)劃的核心,從本質上來說,資源規(guī)劃問題是一個最優(yōu)化問題。資源規(guī)劃為業(yè)務與資源的匹配提供了兩種機制:約束與優(yōu)化,并在滿足約束的情況下求最優(yōu)解?!耱炞C:資源規(guī)劃是一個離線系統(tǒng),終態(tài)的調度策略由上層的接入網(wǎng)調度系統(tǒng)生成,因此,資源池生成后需要有一套仿真機制來觀測不同業(yè)務狀態(tài)下的實際效果,并進一步微調。下面從更細粒度的視角說明我們是如何打造邊緣資源規(guī)劃平臺的。要想做好業(yè)務和資源的匹配,先要了解業(yè)務與資源特性,即業(yè)務畫像與資源畫像。業(yè)務畫像指的是人們對業(yè)務的認知,比如業(yè)務單個請求的資源消耗情況、業(yè)務質量對不同網(wǎng)絡指標的敏感度等。資源畫像則指的是邊緣資源的特性,包括諸如CPU、內存等靜態(tài)硬件配置數(shù)據(jù),以及諸如節(jié)點到各區(qū)域的網(wǎng)絡覆蓋情況等實時數(shù)據(jù)。畫像系統(tǒng)通過對業(yè)務和資源打標簽(簡稱“打標”)、定義一系列標簽規(guī)則來實現(xiàn)業(yè)務與資源的較優(yōu)匹配。畫像系統(tǒng)的基本功能如下:①零散信息的匯總:目前的畫像信息都是大家根據(jù)各自的需要自行維護的,零零散散地分布在調度系統(tǒng)中,沒有進行系統(tǒng)化的維護。這一方面給程序使用帶來了諸多不便,另一方面也不利于進行數(shù)據(jù)分析。②部分畫像的可交付:畫像會影響到部分調度策略的執(zhí)行。如果把部分非全局性影響的標簽交付出去,同時我們做好對交付出去的標簽的整體合理性校驗,那么可以節(jié)省人工與外部團隊對接打標的很多環(huán)節(jié)。畫像系統(tǒng)的擴展作用如下:①業(yè)務資源盤點能力的提升:有了完整的畫像信息之后,我們可以基于畫像發(fā)現(xiàn)目前的業(yè)務及資源中哪些對調度系統(tǒng)是不利的,并以此去推動產(chǎn)品、售后、建設等團隊去解決相應的問題。②調度策略的優(yōu)化:基于畫像信息,我們可以拓展、優(yōu)化調度系統(tǒng)的策略。比如,更加合理地使用資源,進一步釋放資源彈性等。部分具體案例如下:①支撐容器隔離的資源規(guī)劃,例如動態(tài)加速。②調度域層面明確業(yè)務屬性和產(chǎn)品屬性的分類,在沒有CPU、存儲等資源消耗的數(shù)據(jù)刻畫時,支持系統(tǒng)對業(yè)務做更合理的資源規(guī)劃。③給出業(yè)務的存儲使用形態(tài),支撐命中率優(yōu)化。④給出業(yè)務層面對網(wǎng)絡質量的敏感度。圖3-2是畫像系統(tǒng)與其他系統(tǒng)的交互示意圖。1.業(yè)務畫像表3-1是業(yè)務特征的一個簡單總結。表3-1業(yè)務特征歸類表率2.資源畫像●邊緣機房:即IDC(InternetDataCenter,互聯(lián)網(wǎng)數(shù)據(jù)中心)機房(見表3-2)。我們常說的邊緣節(jié)點、網(wǎng)絡能力、網(wǎng)絡質量主要在這里體現(xiàn)?!駲C器分組(見表3-3):指的是在一個IDC機房內,承載業(yè)務的一組服務器(物理機或虛擬機)?!裾{度單元:即調度可見的資源單位,其實體是綁定一組VIP(虛擬IP)地址的機器分組。表3-2IDC機房畫像屬性表表3-3機器分組畫像屬性表3.范例——單個請求的算力消耗問題畫像除了梳理元數(shù)據(jù),更重要的是基于業(yè)務需求抽象出更高層次的業(yè)務特征。例如,要想做算力調度,就需要知道不同業(yè)務單個請求所消耗的做成本調度,就需要刻畫資源彈性;進行命中率優(yōu)化,則需要定義出與命中率有關的關鍵特征。阿里云CDN在這些方面積累了較多的經(jīng)驗。下面以算力調度為例探討單個請求的算力消耗問題。首先從實際業(yè)務問題(如何評估業(yè)務的CPU消耗)出發(fā),通過前期數(shù)據(jù)分析提出三點假設,在此基礎上建模。接著利用兩次特征壓縮篩選出CPU密集業(yè)務,求解模型。最后,利用歷史數(shù)據(jù)訓練模型來預測實時的CPU消耗情況(預測的準確率在98%左右并將誤差反饋到模型中,提高其魯棒性。接下來分別通過模型設計、數(shù)據(jù)清洗處理,以及效果評估等幾方面來看一下CDN場景中的算力消耗量化問題。模型設計以業(yè)務QPS與分組CPU消耗的相關性為例,需要控制變量:找出服務業(yè)務比較單一且QPS占比較高的分組。業(yè)務QPS與分組CPU的消耗關系如圖3-4所示,二者呈現(xiàn)出明顯的正相關性。在數(shù)據(jù)分析的基礎上,基于以下三點假設建立模型:●一段時間內業(yè)務單個請求的CPU消耗在同型號的CPU上保持不變?!穹纸M上不跑業(yè)務時的CPU消耗為0?!袢W(wǎng)的CPU消耗集中在小部分CPU密集型業(yè)務上。可以看出這是一個截距為0的多元線性回歸模型。令業(yè)務i單個請求消耗的CPU為βi,在某個集群上的QPS為xi,集群t時刻的CPU消耗為y。那么,在t時刻,某集群上的日志信息可以得到N組樣本:(xi1,xi2,…,xij,yj),Y=Xβ其中,N指的是集群的數(shù)量;M指的是調度域(業(yè)務)的個數(shù)。最后,利用最小二乘法解出最優(yōu)解即可。但是全網(wǎng)有比較多的調度域,全部參與特征訓練容易過擬合,因此更高效的方式是進行特征壓縮(算法模型側重于提取關鍵數(shù)據(jù)清洗通過統(tǒng)計全網(wǎng)機器配置可以看出,機器的CPU類型大體有四種,結合全網(wǎng)實際業(yè)務情況可知,前三者覆蓋了全網(wǎng)絕大部分的業(yè)務,因此我們只關注這三個CPU類型的機器分組。機器分組的CPU類型分布如圖3-5所示。(2)數(shù)據(jù)訓練集的處理為避免邊際效益的影響,過濾分組CPU使用率小于5%和大于70%的樣本數(shù)據(jù);剔除輔助分組,只選用服務于CDN業(yè)務的分組數(shù)據(jù);業(yè)務在分組上不產(chǎn)生流量時,對應的請求數(shù)將設置成0。(3)訓練集和測試集對全網(wǎng)分組CPU的使用情況和業(yè)務QPS日志進行處理,得到樣本集合。在其中隨機劃分90%為訓練集,10%為測試集。目前全網(wǎng)有1000個以上的調度域,如果其全部作為特征參與訓練,就會導致模型過擬合。將訓練集結果運用到測試集的準確率在80%左右,但線上實際的準確率僅有50%。模型經(jīng)過特征壓縮后可大大提升準確率,所以該模型的好壞取決于特征壓縮。CDN作為分布式緩存系統(tǒng),業(yè)務普遍具有熱點集中的特點。結合模型最初的三點假設可得:業(yè)務總CPU消耗=業(yè)務QPS×業(yè)務單個請求的平均CPU消耗而業(yè)務單個請求的平均CPU消耗是由業(yè)務特性決定的,短時間內變化不大,因此要從全網(wǎng)調度域挑選出CPU密集的調度域(可以通過調度域QPS來篩選)。將全網(wǎng)調度域QPS降序排序,篩選出全網(wǎng)QPS占比達99%的TOP調度域作為特征。上述過程是通過業(yè)務特性進行特征壓縮的。接下來利用Lasso算法進行特值收斂和選擇算子、套索算法)是一種同時進行特征選擇和正則化(數(shù)學)的回歸分析方法,旨在增強統(tǒng)計模型的預測準確性和可解釋性。Lasso算法通過強制讓回歸系數(shù)絕對值之和小于某固定值,即強制將一些回歸系數(shù)變?yōu)?,去除這些回歸系數(shù)對應的協(xié)變量所代表的特征變量,從而可得到更簡單的模型。按照上述處理和Lasso模型進行訓練。根據(jù)業(yè)務總CPU消耗=業(yè)務QPS×業(yè)務單個請求的平均CPU消耗算出在該模型下各個調度域全網(wǎng)的CPU消耗情況。再將這些調度域按照CPU消耗降序排序,篩選出全網(wǎng)CPU占比達99%的TOP調度域作為特征。至此,通過業(yè)務和算法模型兩個層面的特征壓縮,將特征數(shù)降低了1個數(shù)量級,挑選出了主要的CPU密集型業(yè)務。模型求解和評估對特征壓縮后的調度域和訓練集根據(jù)LR(LogisticRegression,邏輯回歸)模型訓練,得到特征值,即CPU密集調度域單個請求的CPU消耗。模型評估方法如下:一方面在測試集上計算決策變量來評估;另一方面根據(jù)歷史數(shù)據(jù)訓練出來的模型,對比現(xiàn)在預測分組CPU的消耗情況與其實際消耗的誤差。模型應用落地工作相對較簡單。主要在于可用性方面的考慮,將實時預測誤差作為負反饋引入模型中,當誤差超過一定閾值時觸發(fā)模型自動訓練,更新模型,減少誤差。CPU消耗評估模型如圖3-6所示。效果評估該模型的優(yōu)點如下:●魯棒性好:整個特征選擇、模型訓練等無須人工干預。當業(yè)務發(fā)生變化并導致準確性下降時,其能夠自適應。●準確率高:根據(jù)歷史數(shù)據(jù)訓練的模型預測實時分組CPU的使用情況,準確率在98%左右,如圖3-7所示。下面介紹業(yè)務與資源的匹配過程。首先是業(yè)務對資源的使用約束,即過濾不符合要求的資源,使用標簽機制分圖)匹配問題,一般使用啟發(fā)式算法。我們調研了最大流、穩(wěn)最終選擇使用穩(wěn)定婚姻算法。匹配算法的核心是評分機制。評分機制的目標是設計一種評分體系來平衡系統(tǒng)的多個優(yōu)化目標。但由于我們的場景過于復雜,業(yè)務耦合度過高導致難以科學量化,因此把最優(yōu)化這一步融合到了匹配算法的求解過程中,使用了多維排序的機制來刻畫業(yè)務對資源的需求,以及資源對業(yè)務適應度的優(yōu)先級順序。業(yè)務與資源的匹配過程如圖3-8所示。具體步驟如下。①Filter:根據(jù)標簽為不同業(yè)務選定備選資源池。②Score:將每個業(yè)務備選資源池的資源進行排序。③Match:在約束下進行匹配。在一些業(yè)務規(guī)則復雜的系統(tǒng)(比如淘寶店鋪)中,為了靈活地擴展規(guī)則,經(jīng)常會引入規(guī)則引擎。但對于資源規(guī)劃來說,規(guī)則引擎太重了,于是研發(fā)人員參考Kubernetes的標簽機制實現(xiàn)了類似的邏輯。首先給業(yè)務和資源打標,然后為其設置一些運算規(guī)則,定義為selectors。{]}其支持的運算規(guī)則具體如表3-4所示。表3-4運算規(guī)則表!values非空values非空key存在,且value大于或等于valvalues[0]為整數(shù)key存在,且value小于或等于valvalues[0]為整數(shù)2.Match:全局規(guī)劃在前面進行模型抽象時提到,將問題定義為二分圖匹配問題。求解二分圖匹配有幾種典型算法,如最大流算法、穩(wěn)定婚姻算法。由于需要在多個維度對資源的傾向性上進行選擇,這里選擇在穩(wěn)定婚姻算法基礎上求解。穩(wěn)定婚姻問題G(M,W)是一個N×N的二分圖,圖中每個對象有自己鄰域的優(yōu)先級列表,求該圖的一個穩(wěn)定匹配。下面解釋兩個概念?!駜?yōu)先級列表:指的是對象對所有異性的喜好排序?!癫环€(wěn)定匹配:所謂穩(wěn)定匹配,即對一組匹配好的二分圖的任意兩個匹配,無法通過交換當前匹配對象來獲得一組讓雙方都更滿意的匹配結果。假同時B也更喜歡α,則這個匹配是不穩(wěn)定的。Gale-Shaply算法該算法又被稱為延遲認可算法,基本過程如下。(2)迭代。①每個未婚男子在其優(yōu)先級列表上挑選自己未求過婚的,且自己最喜歡的女子來求婚。②每個女子在求婚的男子中挑選出自己最中意的一位:如果她當前未訂婚,則直接接受該男子的求婚;否則,若對比舊愛,她更愛當前的求婚者,那么她必須打破當前的婚姻關系并與“新歡”結合。③當所有人都進入婚姻關系時,迭代終止。該算法的最重要結果是,一定可以得到一組穩(wěn)定的匹配(全局規(guī)劃流程圖如圖3-9所示)。對穩(wěn)定婚姻計算進程中的各種狀態(tài)進行統(tǒng)計后可知,在我們的場景下迭代速度還是比較快的,幾分鐘就可以計算出結果。在我們的場景中,迭代過程中的狀態(tài)統(tǒng)計如圖3-10所示。說明穩(wěn)定婚姻算法保證一定可以得到一組穩(wěn)定的匹配。不過,由于我們的業(yè)務對資源的各種限制,最終會有個別流量單元匹配失敗的情況。但是,這對結果的影響不大。在程序中,我們通過迭代次數(shù)以及對比連續(xù)兩次迭代的變化情況來判斷是否終止迭代。本節(jié)介紹了阿里云CDN調度資源規(guī)劃要解決的問題,以及如何一步步拆解該問題。最終形成了業(yè)務-資源匹配系統(tǒng)(見圖3-11)。其中最重要的經(jīng)驗是,開始我們將其定義為一個算法問題,企圖找到一個通用的算法搞定所有的匹配場景。但我們后來意識到業(yè)務復雜度相當高,并且很多業(yè)務方的需求和背后底層本質需求的因果聯(lián)系并不清晰。之后,我們逐漸演化出畫像系統(tǒng)來描述對象特征,用標簽實現(xiàn)靈活的匹配機制,用算法包解決多場景在線調整問題,以及用模擬平臺對調整結果進行驗證的一套體系。CDN調度要解決的核心問題就是,將用戶請求產(chǎn)生的帶寬/算力消耗,分配到邊緣CDN節(jié)點。在這個分配過程中,要解決的問題就是,資源在就近服務業(yè)務的同時,保證資源盡量可承載更多的業(yè)務,這就要求尋求全局的負載均衡。需要根據(jù)不同的調度方式特性,進行最優(yōu)“組合搭配”,以達到我們的期望目標。下面將分別介紹各種典型的調度形式以及具體應用。DNS調度這種調度是目前主要的調度方式,也是常規(guī)情況下一個域名接入CDN以入域),然后用戶把域名配置到該CNAME上,這樣最終的域名解析就由阿里云的權威DNS服務器來負責,該權威DNS服務器會根據(jù)我們的調度策略將域名解析出CDN節(jié)點的IP地址。與DNS協(xié)議相關的內容涉及通用技術,這里不過多介紹了(讀者可自行查閱相關資料)。下面僅就幾個關鍵名詞做一下簡單介紹。域名系統(tǒng),用于域名與IP地址的相互轉換。阿
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西新小學面試題及答案
- 美院考研面試題及答案
- 腺性膀胱炎的超聲診斷
- 汽車美容與裝飾實訓課件 13-0項目六任務一車窗玻璃的拆裝與更換實訓
- 黨組課件教學課件
- 開學心理教育講座
- 商洛移動面試題及答案
- 水果滯銷面試題及答案
- 臺風應急考試題及答案
- 項目服務部面試題及答案
- 肥胖癥診療指南(2024年版)解讀課件
- 2025-2030年中國誘導多能干細胞(iPSC)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2024-2025學年江蘇省連云港市高二上學期期末調研考試物理試題(選修)(解析版)
- 從“全屋定制”到“整家定制”商業(yè)模式全景洞察課件
- 2025年中國5-羥基-色氨酸數(shù)據(jù)監(jiān)測報告
- GB/T 4948-2025鋁合金犧牲陽極
- 醫(yī)院院長競聘試題及答案
- 掘進專業(yè)試題庫及答案
- 2025年全省卷煙營銷知識理論多選題含答案
- 2025年江蘇專轉本英語真題及答案
- 學校困難教職工幫扶救助制度
評論
0/150
提交評論