CDN技術(shù)架構(gòu)介紹_第1頁(yè)
CDN技術(shù)架構(gòu)介紹_第2頁(yè)
CDN技術(shù)架構(gòu)介紹_第3頁(yè)
CDN技術(shù)架構(gòu)介紹_第4頁(yè)
CDN技術(shù)架構(gòu)介紹_第5頁(yè)
已閱讀5頁(yè),還剩230頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論