愛奇藝CDN運(yùn)維平臺(tái)實(shí)踐

CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。它是構(gòu)建在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)之上的智能虛擬網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺(tái)的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。
簡單來說,CDN就是為了網(wǎng)絡(luò)內(nèi)容訪問速度“更快“而生的。那么如今的網(wǎng)絡(luò)本身四通八達(dá),為什么還需要CDN呢?
舉個(gè)簡單的例子,假設(shè)我們忽略網(wǎng)絡(luò)傳輸?shù)膿p耗、設(shè)備延時(shí),網(wǎng)絡(luò)傳輸速度接近光速,是30萬公里每秒,從東京到美國硅谷的距離大概為1萬公里,也就是說,如果你的服務(wù)器在東京,你上傳了一張很小的圖片,美國用戶訪問至少需要60毫秒。而且,這只是理論數(shù)據(jù),現(xiàn)實(shí)世界中,網(wǎng)絡(luò)環(huán)境是十分復(fù)雜的,跨地域、跨運(yùn)營商、網(wǎng)絡(luò)擁塞、抖動(dòng)等問題,都會(huì)積少成多,使得延時(shí)成倍增加,還有可能訪問失敗,最終影響訪問體驗(yàn)。
CDN的出現(xiàn),正是為了解決這個(gè)問題。我們將這張圖片分發(fā)并緩存在美國的CDN節(jié)點(diǎn)之上,美國用戶就無需從東京獲取數(shù)據(jù),直接從就近的美國本地CDN節(jié)點(diǎn)獲取到圖片,這大大節(jié)省了傳輸時(shí)間,提升訪問效率。CDN的節(jié)點(diǎn)通常會(huì)遍布全球,源站的文件會(huì)被被緩存到世界各地,這樣全球用戶都可以實(shí)現(xiàn)快速訪問。
它有點(diǎn)像分布于各地的倉儲(chǔ)物流點(diǎn),很多品牌會(huì)預(yù)先在倉儲(chǔ)物流點(diǎn)儲(chǔ)備一些爆款商品(靜態(tài)文件使用CDN進(jìn)行緩存),當(dāng)用戶從電商平臺(tái)下單購買貨物的時(shí)候(用戶發(fā)起請求),平臺(tái)根據(jù)用戶的收獲地址就近匹配到最近的倉儲(chǔ)物流點(diǎn)并直接進(jìn)行派貨(就近分發(fā)),讓用戶以最快的速度拿到快遞包裹(分發(fā)的內(nèi)容)。我們可以用實(shí)際的生活經(jīng)驗(yàn)來做個(gè)對(duì)比,如果從江浙滬包郵區(qū)寄給杭州的用戶,一般第二天就能到,如果是從北京、深圳發(fā)貨,一般需要2-3天!

這就是CDN的緣起。簡單來說,它就是一個(gè)分布式的緩存服務(wù)器,主要作用就是盡可能減少資源在轉(zhuǎn)發(fā)、傳輸、鏈路抖動(dòng)等情況下的時(shí)延,保障信息的連貫與極速。當(dāng)下,我們生活在互聯(lián)網(wǎng)世界,視頻和直播在數(shù)據(jù)上有巨大的吞吐量,CDN扮演著護(hù)航者和加速者的角色,更快速、穩(wěn)定地將信息觸達(dá)每一個(gè)用戶。
下面,我們來進(jìn)一步了解下CDN的工作原理。首先,關(guān)于CDN的那些名詞,需要掃個(gè)盲。
Origin Server源站:做 CDN 之前的客戶真正的服務(wù)器。
User:訪問者,也就是要訪問網(wǎng)站的網(wǎng)民。
Last Mile:最后一公里,也就是網(wǎng)民到他所訪問到的 CDN 服務(wù)器之間的路徑。
域名:域名是Internet網(wǎng)絡(luò)上的一個(gè)服務(wù)器或一個(gè)網(wǎng)絡(luò)系統(tǒng)的名字,全世界,沒有重復(fù)的域名。
CNAME記錄:它是一個(gè)別名記錄( Canonical Name );當(dāng) DNS 系統(tǒng)在查詢 CNAME 左面的名稱的時(shí)候,都會(huì)轉(zhuǎn)向 CNAME 右面的名稱再進(jìn)行查詢,一直追蹤到最后的 PTR 或 A 名稱,成功查詢后才會(huì)做出回應(yīng),否則失敗。
CNAME域名:CDN的域名加速需要用到CNAME記錄,在阿里云控制臺(tái)配置完成CDN加速后,您會(huì)得到一個(gè)加速后的域名,稱之為CNAME域名(該域名一定是.kunlun.com), 用戶需要將自己的域名作CNAME指向這個(gè).kunlun.com的域名后,域名解析的工作就正式轉(zhuǎn)向阿里云,該域名所有的請求都將轉(zhuǎn)向阿里云CDN的節(jié)點(diǎn)。
DNS:DNS即Domain Name System,是域名解析服務(wù)的意思。它在互聯(lián)網(wǎng)的作用是:把域名轉(zhuǎn)換成為網(wǎng)絡(luò)可以識(shí)別的ip地址。人們習(xí)慣記憶域名,但機(jī)器間互相只認(rèn)IP地址,域名與IP地址之間是一一對(duì)應(yīng)的,它們之間的轉(zhuǎn)換工作稱為域名解析,域名解析需要由專門的域名解析服務(wù)器來完成,整個(gè)過程是自動(dòng)進(jìn)行的。比如:上網(wǎng)時(shí)輸入的www.baidu.com會(huì)自動(dòng)轉(zhuǎn)換成為220.181.112.143
邊緣節(jié)點(diǎn):也稱CDN節(jié)點(diǎn)、Cache節(jié)點(diǎn)等;是相對(duì)于網(wǎng)絡(luò)的復(fù)雜結(jié)構(gòu)而提出的一個(gè)概念,指距離最終用戶接入具有較少的中間環(huán)節(jié)的網(wǎng)絡(luò)節(jié)點(diǎn),對(duì)最終接入用戶有較好的響應(yīng)能力和連接速度。其作用是將訪問量較大的網(wǎng)頁內(nèi)容和對(duì)象保存在服務(wù)器前端的專用cache設(shè)備上,以此來提高網(wǎng)站訪問的速度和質(zhì)量。
Cache:cache高速緩沖存儲(chǔ)器一種特殊的存儲(chǔ)器子系統(tǒng),其中復(fù)制了頻繁使用的數(shù)據(jù)以利于快速訪問。存儲(chǔ)器的高速緩沖存儲(chǔ)器存儲(chǔ)了頻繁訪問的RAM位置的內(nèi)容及這些數(shù)據(jù)項(xiàng)的存儲(chǔ)地址。當(dāng)處理器引用存儲(chǔ)器中的某地址時(shí),高速緩沖存儲(chǔ)器便檢查是否存有該地址。如果存有該地址,則將數(shù)據(jù)返回處理器;如果沒有保存該地址,則進(jìn)行常規(guī)的存儲(chǔ)器訪問。因?yàn)楦咚倬彌_存儲(chǔ)器總是比主RAM存儲(chǔ)器速度快,所以當(dāng)RAM的訪問速度低于微處理器的速度時(shí),常使用高速緩沖存儲(chǔ)器。
接下來是CDN的工作原理,最簡單的CDN網(wǎng)絡(luò)由一個(gè)DNS服務(wù)器和幾臺(tái)緩存服務(wù)器組成,如下圖所示:

①當(dāng)用戶點(diǎn)擊網(wǎng)站頁面上的內(nèi)容URL,經(jīng)過本地DNS系統(tǒng)解析,DNS系統(tǒng)會(huì)最終將域名的解析權(quán)交給CNAME指向的CDN專用DNS服務(wù)器。
②CDN的DNS服務(wù)器將CDN的全局負(fù)載均衡設(shè)備IP地址返回用戶。
③用戶向CDN的全局負(fù)載均衡設(shè)備發(fā)起內(nèi)容URL訪問請求。
④CDN全局負(fù)載均衡設(shè)備根據(jù)用戶IP地址,以及用戶請求的內(nèi)容URL,選擇一臺(tái)用戶所屬區(qū)域的區(qū)域負(fù)載均衡設(shè)備,告訴用戶向這臺(tái)設(shè)備發(fā)起請求。
⑤區(qū)域負(fù)載均衡設(shè)備會(huì)為用戶選擇一臺(tái)合適的緩存服務(wù)器提供服務(wù),選擇的依據(jù)包括:根據(jù)用戶IP地址,判斷哪一臺(tái)服務(wù)器距用戶最近;根據(jù)用戶所請求的URL中攜帶的內(nèi)容名稱,判斷哪一臺(tái)服務(wù)器上有用戶所需內(nèi)容;查詢各個(gè)服務(wù)器當(dāng)前的負(fù)載情況,判斷哪一臺(tái)服務(wù)器尚有服務(wù)能力。基于以上這些條件的綜合分析之后,區(qū)域負(fù)載均衡設(shè)備會(huì)向全局負(fù)載均衡設(shè)備返回一臺(tái)緩存服務(wù)器的IP地址。
⑥全局負(fù)載均衡設(shè)備把服務(wù)器的IP地址返回給用戶。
⑦用戶向緩存服務(wù)器發(fā)起請求,緩存服務(wù)器響應(yīng)用戶請求,將用戶所需內(nèi)容傳送到用戶終端。如果這臺(tái)緩存服務(wù)器上并沒有用戶想要的內(nèi)容,而區(qū)域均衡設(shè)備依然將它分配給了用戶,那么這臺(tái)服務(wù)器就要向它的上一級(jí)緩存服務(wù)器請求內(nèi)容,直至追溯到網(wǎng)站的源服務(wù)器將內(nèi)容拉到本地。
看似復(fù)雜龐大的CDN系統(tǒng),其中有幾個(gè)關(guān)鍵技術(shù)組件:調(diào)度、緩存和安全。
1、?調(diào)度是 CDN 中的重中之重,流量接入、流量牽引、選擇合適的 CDN 節(jié)點(diǎn)服務(wù)器等工作,都是在調(diào)度環(huán)節(jié)完成的。
2、?緩存也叫 Cache,是 CDN 領(lǐng)域最重要的一個(gè)組成部分,對(duì)于靜態(tài)內(nèi)容分發(fā),大至視頻點(diǎn)播、文件下載,小至 html 頁面、jpg/gif/png 圖片、css/js 等,都可以緩存到本地,最終用戶(網(wǎng)民)訪問時(shí),不必回到原始服務(wù)器拿取數(shù)據(jù),從而節(jié)省了時(shí)間、降低了源站服務(wù)器的網(wǎng)絡(luò)帶寬支出和負(fù)載。對(duì)于 CDN 來說,每臺(tái) Cache 機(jī)器每天的請求量是十分驚人的,磁盤上所存儲(chǔ)的內(nèi)容量也多得可怕,十幾塊 TB 級(jí)的硬盤被塞滿數(shù)據(jù)也是很正常的事情,因此當(dāng)一個(gè)請求到來時(shí),能迅速檢索出磁盤上的文件并讀取、吐給最終用戶成了一件很重要的事情。
3、 針對(duì)各類網(wǎng)絡(luò)攻擊,比如帶寬飽和攻擊、反射攻擊等蠻力型攻擊,還有XSS跨站、SQL注入、漏洞利用等技巧型攻擊,CDN可以從隱藏源站、分布式架構(gòu)、安全防護(hù)三個(gè)層面進(jìn)行安全防護(hù)。首先,當(dāng)網(wǎng)站接入CDN后,源站信息會(huì)被隔離,攻擊者就無法直接對(duì)源站進(jìn)行直接攻擊,其次,CDN天然分布式架構(gòu)可以當(dāng)某些節(jié)點(diǎn)被攻擊的時(shí)候,很快察覺異常并智能調(diào)度至正常節(jié)點(diǎn),確保業(yè)務(wù)穩(wěn)定,再次,對(duì)于技巧性攻擊,在CDN邊緣節(jié)點(diǎn)前置安全防護(hù)能力,與中心聯(lián)動(dòng)形成更完整、更貼近邊緣的防護(hù)策略,有利于安全隱患的攔截。
































推薦閱讀:
世界的真實(shí)格局分析,地球人類社會(huì)底層運(yùn)行原理
不是你需要中臺(tái),而是一名合格的架構(gòu)師(附各大廠中臺(tái)建設(shè)PPT)
企業(yè)IT技術(shù)架構(gòu)規(guī)劃方案
論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?
企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!
【中臺(tái)實(shí)踐】華為大數(shù)據(jù)中臺(tái)架構(gòu)分享.pdf
華為如何實(shí)施數(shù)字化轉(zhuǎn)型(附PPT)
