本文來(lái)自時(shí)任云帆加速創(chuàng)始人/CTO扶凱在LiveVideoStackCon 2017上的分享,并由LiveVideoStack整理而成,目前扶凱任南海集團(tuán)下屬大地零一深圳有限公司新零售業(yè)務(wù)VP。扶凱介紹了在海量視頻和用戶的背景下,CDN如何有效、低成本的提供服務(wù),涉及到存儲(chǔ)架構(gòu)、邊緣節(jié)點(diǎn)架構(gòu)、流量調(diào)度等難題。
今天為大家分享的是與大視頻時(shí)代下CDN相關(guān)的視頻行業(yè)發(fā)展趨勢(shì)。隨著視頻的內(nèi)容越來(lái)越豐富,流量越來(lái)越大,視頻所占用的網(wǎng)絡(luò)帶寬越來(lái)越多,以至于今年已占用網(wǎng)絡(luò)總流量的70%~80%,而視頻的玩法也花樣繁多,例如大家熟悉的短視頻、VR、4K等。我們可以看到視頻行業(yè)已進(jìn)入一個(gè)爆炸式發(fā)展的時(shí)代。在此時(shí)代下的視頻網(wǎng)站尤其是大型視頻網(wǎng)站,需要明確如何解決流量爆發(fā)背后隱藏的一系列亟待解決的問(wèn)題:如何有效應(yīng)對(duì)視頻服務(wù)需求的迅猛增長(zhǎng)?
在視頻行業(yè)我們需要應(yīng)對(duì)一系列問(wèn)題,例如架構(gòu)問(wèn)題、存儲(chǔ)問(wèn)題、分發(fā)問(wèn)題、轉(zhuǎn)碼問(wèn)題等等。這些問(wèn)題歸根結(jié)底是什么?技術(shù)?
其實(shí)是成本問(wèn)題,我們需要在控制成本的基礎(chǔ)上為客戶提供最好的服務(wù)體驗(yàn)以實(shí)現(xiàn)效益最大化。如果落實(shí)在技術(shù)上可以總結(jié)為以下幾點(diǎn):
在解決以上兩個(gè)問(wèn)題之前,需要追根溯源,首先明確視頻在整個(gè)網(wǎng)站架構(gòu)中是如何處理的,并對(duì)每一環(huán)節(jié)的成本有清晰的理解。
1、 存儲(chǔ)與訪問(wèn)
例如:用戶是將視頻通過(guò)基于HTML5分塊上傳的方式發(fā)送到線上;接下來(lái)通過(guò)音視頻分離的編碼對(duì)用戶上傳的視頻進(jìn)行處理,并通過(guò)有AI技術(shù)來(lái)審核視頻,對(duì)視頻中的不良內(nèi)容進(jìn)行偵測(cè)……在眾多處理流程中最麻煩的是存儲(chǔ),為什么呢?以UGC網(wǎng)站為例,任何一個(gè)視頻,無(wú)論時(shí)長(zhǎng)與內(nèi)容,UGC網(wǎng)站都需要將此視頻的每一份拷貝單獨(dú)存儲(chǔ)。隨著視頻拍攝設(shè)備的硬件發(fā)展,視頻的清晰度與碼率越來(lái)越高,一個(gè)視頻文件大小動(dòng)輒幾百M(fèi)B甚至上GB,而這樣的文件經(jīng)過(guò)轉(zhuǎn)碼依照不同的碼流至少需要存儲(chǔ)2~3份拷貝,以至于對(duì)現(xiàn)如今的視頻網(wǎng)站而言將這些文件存儲(chǔ)在同一個(gè)機(jī)房十分困難。例如一份文件有幾十個(gè)PB,任何一個(gè)機(jī)房都無(wú)法滿足如此極端的存儲(chǔ)需求,此時(shí)我們只能將這些文件分散存儲(chǔ)在多個(gè)機(jī)房,那具體該如何分散存儲(chǔ)呢?
1.1 分布式存儲(chǔ)
當(dāng)用戶將視頻文件上傳完畢后,會(huì)將文件存儲(chǔ)在至少三個(gè)上層機(jī)房中的一個(gè),而每一個(gè)文件可能存儲(chǔ)在不同的幾個(gè)上層中。一般的超大型視頻網(wǎng)站會(huì)使用推送機(jī)制將至少6份文件拷貝存儲(chǔ)在全國(guó)所有的機(jī)房當(dāng)中。例如上圖A、B、C三個(gè)存儲(chǔ)中心分布在全國(guó)各地,簡(jiǎn)而言之這就是一個(gè)超大的對(duì)象分布式文件系統(tǒng)。
在這樣一個(gè)超大的分布式文件系統(tǒng)中,系統(tǒng)會(huì)將存儲(chǔ)單元進(jìn)行分層,并根據(jù)算法將最熱門的文件分發(fā)到最邊緣的節(jié)點(diǎn)。此時(shí)便解決了存儲(chǔ)的問(wèn)題,接下來(lái)需要解決的是訪問(wèn)問(wèn)題。
1.2 分層訪問(wèn)邏輯
關(guān)于訪問(wèn),采用的是冷熱分層的訪問(wèn)邏輯。既然邊緣節(jié)點(diǎn)無(wú)法存儲(chǔ)太多數(shù)據(jù),那么必須采用一種高效的訪問(wèn)機(jī)制以分擔(dān)存儲(chǔ)的壓力。我們會(huì)直接將冷門的文件調(diào)度至上層,而在邊緣將熱門的文件直接傳送給最近的用戶;直接從上層獲取一部分完整的冷門文件,而熱門文件則從邊緣獲取。這樣我們便妥善解決了存儲(chǔ)與分發(fā)問(wèn)題,也就解決了存儲(chǔ)空間和用戶訪問(wèn)速度的二難問(wèn)題。
但此時(shí)還需要解決的是推送熱門文件的選擇與數(shù)量。這是一個(gè)比較麻煩的問(wèn)題,推送的文件, 因?yàn)椴皇侨浚?所以無(wú)論我怎么樣推送的熱門算法,其實(shí)都有部分請(qǐng)求訪問(wèn)到上層,上層可能是異地,所以用戶的訪問(wèn)體驗(yàn)質(zhì)量可能不好。 例如小的運(yùn)營(yíng)商,象歌華都得透穿出來(lái)訪問(wèn)到上層。 原因二是用戶喜好的地理差異性,例如北京的用戶喜歡看的內(nèi)容與上海的用戶喜歡看的內(nèi)容存在明顯差別,而使用通用算法得出的熱門是大家普遍喜歡的,無(wú)法針對(duì)不同地域特點(diǎn)進(jìn)行個(gè)性化精準(zhǔn)調(diào)整。之前使用了推的機(jī)制,那這里能否反向思考,使用拉的機(jī)制來(lái)妥善解決以上問(wèn)題,而CDN的出現(xiàn)可以說(shuō)很好地解決了這個(gè)問(wèn)題。
2、 用戶體驗(yàn):大視頻時(shí)代
2.1 標(biāo)準(zhǔn)CDN結(jié)構(gòu)與補(bǔ)充
上圖是一個(gè)標(biāo)準(zhǔn)的CDN結(jié)構(gòu),也就是當(dāng)最邊緣的用戶訪問(wèn)最近的節(jié)點(diǎn)之后,繼續(xù)訪問(wèn)上層存儲(chǔ);在經(jīng)過(guò)第三層節(jié)點(diǎn)后對(duì)流量進(jìn)行回源。這里需要做的第一件事是使用空間換取流量:盡可能使用最邊緣節(jié)點(diǎn)里的空間來(lái)存儲(chǔ)用戶訪問(wèn)的文件從而換取吐出給用戶的 80% 的流量,但由于邊緣的空間有限,我們無(wú)法對(duì)其進(jìn)行無(wú)限擴(kuò)張。因此所做的第二件事便是使用回源來(lái)?yè)Q取存儲(chǔ)空間。假設(shè)某個(gè)文件超過(guò)一個(gè)月都未被訪問(wèn)的話便使其訪問(wèn)回源,重新取一份文件。以上便是典型的CDN結(jié)構(gòu)。此時(shí)需要注意的是因?yàn)镃DN中的回源操作對(duì)地域的作用,如果某個(gè)用戶屬性有明顯的地域差異,便可以將具有地域特征的文件緩存到相應(yīng)的邊緣。此時(shí)相似地域特征的用戶就近訪問(wèn)同一邊緣節(jié)點(diǎn),得到符合地域特征要求的文件。
我們通過(guò)使用商業(yè)CDN進(jìn)行補(bǔ)充的方式解決了存在地域特點(diǎn)的視頻文件分發(fā)難題,現(xiàn)在主流的超大型視頻網(wǎng)站都是基于以上方案。既然談到了CDN的整個(gè)結(jié)構(gòu),那么下面就看看如何使用CDN的單節(jié)點(diǎn)(邊緣節(jié)點(diǎn))結(jié)構(gòu)來(lái)解決存儲(chǔ)與速度的問(wèn)題,這也是與之前提到的存儲(chǔ)和體驗(yàn)直接相關(guān)的兩個(gè)關(guān)鍵性問(wèn)題。
2.2 CDN邊緣節(jié)點(diǎn)結(jié)構(gòu)
整個(gè)邊緣節(jié)點(diǎn)架構(gòu)基于一臺(tái)具有良好批量管理性能的定制OSPF交換機(jī)。這種交換機(jī)本身就是一個(gè)集群,它可以連接到下層所有交換機(jī),來(lái)進(jìn)行批量控制。并且當(dāng)機(jī)器出現(xiàn)宕機(jī)時(shí)可在4層路由上就迅速屏蔽宕機(jī)信息。每一臺(tái)機(jī)器分為兩個(gè)部分:控制部分與OCT的Cache軟件。控制部分進(jìn)行邏輯處理以對(duì)CDN公司的海量客戶控制管理和功能邏輯處理,例如請(qǐng)求過(guò)來(lái)以后是從路徑中一部分中計(jì)費(fèi),還是 URL 的參數(shù)中的一個(gè)字段來(lái)計(jì)費(fèi)。最開始時(shí)CDN公司對(duì)用戶邏輯處理的的通用做法是使用C代碼將這些邏輯集成到 Cache 中是一體的。所以配置更新時(shí),任何一個(gè)用戶修改, 會(huì)需要升級(jí)整個(gè) Cache 軟件并重加載,這便導(dǎo)致了無(wú)數(shù)配置文件的積累。而使用分離的二塊抽象,有了前端邏輯處理的部分,當(dāng)使用Edge Control控制所有的用戶邏輯與域名訪問(wèn)控制,便可簡(jiǎn)化配置文件。此時(shí)我們只需要讓 Cache 只負(fù)責(zé)存儲(chǔ)文件與視頻處理等工作,其余都可以交給EdgeControl系統(tǒng)來(lái)完成,只需在必要時(shí)與系統(tǒng)進(jìn)行簡(jiǎn)單的通訊,可以秒級(jí)生效全網(wǎng)的配置。另一個(gè)問(wèn)題,為了應(yīng)對(duì)海量的文件與視頻存儲(chǔ),整個(gè)存儲(chǔ)資源池中所有的機(jī)器都使用一致的哈希的算法并確保整個(gè)文件在節(jié)點(diǎn)中只存儲(chǔ)一份。也許這里會(huì)有人質(zhì)疑,如果某個(gè)視頻文件的訪問(wèn)量非常高,存儲(chǔ)一份會(huì)為內(nèi)網(wǎng)大環(huán)境帶來(lái)壓力。尤其對(duì)于一些大型視頻網(wǎng)站來(lái)說(shuō)這是個(gè)很常見的問(wèn)題,例如當(dāng)上線某個(gè)熱門的電視劇視頻會(huì)為內(nèi)網(wǎng)帶來(lái)極大的壓力,在這里我們使用一項(xiàng)被稱為“熱點(diǎn)遷移”的技術(shù)。這是一項(xiàng)非常簡(jiǎn)單的技術(shù),我們直接在 Edge Control中,使用一個(gè)隊(duì)列,對(duì)視頻文件進(jìn)行分析、排序再調(diào)整則無(wú)法從容應(yīng)對(duì)流量短時(shí)間內(nèi)的爆發(fā)性增長(zhǎng)。而“熱點(diǎn)遷移”技術(shù)實(shí)際是對(duì)每個(gè)URL進(jìn)行排序,當(dāng)某個(gè)URL出現(xiàn)的頻率達(dá)到某一閥值時(shí)我們就會(huì)將這個(gè)熱門URL擴(kuò)散在多臺(tái)機(jī)器上并使其以極快的速度擴(kuò)展,這樣就避免了大數(shù)據(jù)分析從而能夠在第一時(shí)間對(duì)某個(gè)熱門文件的流量爆發(fā)做出反應(yīng)與干預(yù)。
2.3 配置軟件
以上描述的是單機(jī)結(jié)構(gòu),接下來(lái)讓我們看看Cache軟件本身需要什么。我們的 Cache軟件類似于Nginx的結(jié)構(gòu),正常的CDN公司大部分是基于Squid進(jìn)行修改,但Squid存在很多問(wèn)題,例如無(wú)法共享存儲(chǔ),基于 Epoll只能依托單CPU進(jìn)程執(zhí)行等等;即使3.0版本可在多CPU,但執(zhí)行但執(zhí)行效率也非常低下。而我們自己的 Cache 軟件類似于ATS 直接支持多 cpu 共享存儲(chǔ),不過(guò),原生的 ATS 有什么問(wèn)題,就是ATS的鎖的機(jī)制,會(huì)讓運(yùn)維和研發(fā)人員在慢的時(shí)候,或異常的時(shí)候,不知道什么時(shí)間,代碼什么地方,莫名其妙會(huì)出現(xiàn)卡住的問(wèn)題。我們的 Cache 本身就可以象它一樣多進(jìn)程多 CPU 上執(zhí)行,中間通過(guò)epoll實(shí)現(xiàn)一些異步操作,而所有的共享操作通過(guò) IPC 通信來(lái)進(jìn)行。除此之外我們?cè)谧约旱?Cache 軟件上開發(fā)了自己的文件系統(tǒng):這是一個(gè)裸盤的文件系統(tǒng),運(yùn)維人員都不用格式化文件系統(tǒng), 只需要給硬盤路徑配置進(jìn)去;我們也定制開發(fā)了自己的分級(jí)內(nèi)存管理,不在使用操作系統(tǒng)本身的內(nèi)存管理。因?yàn)楸旧淼姆猪?yè)大小, 特別影響 Cache 對(duì)于大文件的效率。在這里我們對(duì)硬盤 IO 的優(yōu)化也不同于其他廠商,其它公司是直接增加SSD的策略,我們的策略是先增加內(nèi)存,才再考慮增加SSD。因?yàn)楫?dāng)我們使用標(biāo)準(zhǔn)操作系統(tǒng)的的內(nèi)存來(lái)緩存分頁(yè)時(shí)就會(huì)發(fā)現(xiàn)落到磁盤上的I/O非常多,并且不斷出現(xiàn)缺頁(yè),這便導(dǎo)致讀取視頻文件的效率十分低下,所以我們使用了自己開發(fā)的內(nèi)存管理機(jī)制。在使用上述自己開發(fā)的技術(shù)之后,整體的I/O下降了30% ~40%,并且實(shí)現(xiàn)缺頁(yè)操作與CPU占用率的大幅降低。
2.4 Cache軟件
接下來(lái)詳細(xì)介紹文件系統(tǒng)。傳統(tǒng)文件系統(tǒng)的一臺(tái)機(jī)器連接多個(gè)硬盤,一般為12個(gè)。如果一個(gè)熱門視頻文件訪問(wèn)量非常高,那么存儲(chǔ)這個(gè)文件的當(dāng)前硬盤,的使用率可達(dá)到100%,而其它幾個(gè)硬盤則處在空閑狀態(tài),使得文件的訪問(wèn)性能十分低下。因此我對(duì)整個(gè)文件系統(tǒng)進(jìn)行調(diào)整,將文件分成多個(gè)很小的塊,以這種方式將所有文件分塊存儲(chǔ)至文件系統(tǒng)中,使得每個(gè)硬盤中存儲(chǔ)的是一個(gè)孤立的文件分塊,所有文件按照邏輯一體,物理上分塊來(lái)進(jìn)行存儲(chǔ)與讀取。這種方塊存儲(chǔ)具有以下優(yōu)勢(shì):一、沒(méi)有大量的I/O分布在一個(gè)盤上。因?yàn)橐坏┮粋€(gè)文件塊訪問(wèn)量高,便意味著整個(gè)系統(tǒng)訪問(wèn)會(huì)慢,分塊后此時(shí)所有磁盤的I/O是一致的一樣高;二、一旦其中某個(gè)硬盤壞掉,受影響的只是文件的某一小部分的分塊, 而不會(huì)是所有的整個(gè)文件,此時(shí)只需要從上層服務(wù)器重新讀取文件并放置在其他正常運(yùn)行的硬盤上,而不用對(duì)所有文件進(jìn)行重新回源。三、如果用戶在訪問(wèn)時(shí)需要跳過(guò)視頻文件的片頭片尾,那么分塊存儲(chǔ)可不存儲(chǔ)開頭與結(jié)尾,并在處理時(shí)可以按分塊進(jìn)行并發(fā):例如在瀏覽視頻時(shí)我們拖動(dòng)視頻至某一特定進(jìn)度,正常情況下如果不將整個(gè)文件加載完成,視頻服務(wù)器便無(wú)法實(shí)現(xiàn)正常播放;而如果使用分塊存儲(chǔ)那么只需獲取文件第1MB的Meta信息,重新跳轉(zhuǎn)至需要的視頻進(jìn)度位置并立即合成一個(gè)新的文件,極大提高視頻的拖動(dòng)效率。四、當(dāng)刪除一個(gè)文件時(shí)只需要將文件從內(nèi)存列表中刪去而不需要調(diào)整I/O。綜上所述,自主開發(fā)文件系統(tǒng)可以為我們?cè)贑DN領(lǐng)域的開發(fā)節(jié)省很多成本。以目錄刷新為例,目錄刷新一直是CDN界的難題。假設(shè)需要對(duì)一百萬(wàn)個(gè)文件進(jìn)行目錄刷新,這里便存在兩個(gè)問(wèn)題:
1、如何找到這些URL文件?
2、如何高效處理數(shù)百萬(wàn)個(gè)URL文件?
解決方案是對(duì)每個(gè)文件確定一個(gè)版本號(hào),假設(shè)所有文件目錄的版本號(hào)為0,當(dāng)有某個(gè)刷新請(qǐng)求提交過(guò)來(lái)時(shí)把此路徑下所有文件的請(qǐng)求標(biāo)成一個(gè)新的版本號(hào),假設(shè)為1;這樣當(dāng)此請(qǐng)求發(fā)送至刷新系統(tǒng)中時(shí)系統(tǒng)便知道這個(gè)請(qǐng)求對(duì)應(yīng)需要版本號(hào)為1的文件。此時(shí)所有的刷新操作不需要存儲(chǔ)任何的URL到內(nèi)存中, 并用刪除時(shí)也不會(huì)出現(xiàn)集中的I/O的占用,因?yàn)閮H當(dāng)用戶訪問(wèn)時(shí)系統(tǒng)才會(huì)進(jìn)行I/O操作。
2.5 定制的業(yè)務(wù)語(yǔ)言
以上描述了在多種功能下如何實(shí)現(xiàn)有效配置,方案便是分離配置并對(duì)每一項(xiàng)設(shè)定專門的邏輯語(yǔ)言。在 CDN 的應(yīng)用場(chǎng)景中,用戶的邏輯千奇百怪,為了提高開發(fā)效率我們開發(fā)了一套定制的業(yè)務(wù)語(yǔ)言。此語(yǔ)言可實(shí)現(xiàn)通用的基本操作,如對(duì)URL與一些基本參數(shù)的調(diào)整操作。由于此語(yǔ)言的存在,運(yùn)維人員不需要單獨(dú)開發(fā)而只需要根據(jù)描述文檔就能實(shí)現(xiàn)多項(xiàng)功能。這便相當(dāng)于一個(gè)配置文件,當(dāng)提交此文件生成操作之后,會(huì)進(jìn)行一次編譯并生成一個(gè)二進(jìn)制代碼,此代碼會(huì)被直接傳輸至所有機(jī)器中,便實(shí)現(xiàn)了所有功能在邊緣的生效。此語(yǔ)言還可以保證良好的性能,例如可在進(jìn)行編譯時(shí)將多個(gè)執(zhí)行點(diǎn)相同的文件合并為同一個(gè)文件,或把多個(gè)路徑前綴/后綴相同的文件合成為同一個(gè)文件;也可基于編譯器對(duì)開發(fā)過(guò)程與業(yè)務(wù)流程進(jìn)行優(yōu)化,例如將多個(gè)域名相同處理流程進(jìn)行合并等。
2.6 流量調(diào)度
如果想保證視頻的質(zhì)量,也就需要考慮基于成本與質(zhì)量的流量調(diào)度,實(shí)際上我們公司也會(huì)對(duì)流量調(diào)度進(jìn)行質(zhì)量評(píng)估。流量如果想節(jié)約成本, 需要讓調(diào)度支持很多功能,抽象出來(lái)有二點(diǎn),第一個(gè)做95,第二個(gè)是做保底。另一個(gè), 就是集中的調(diào)度處理, 無(wú)論用戶選擇302 還是 HTTP 調(diào)度、HTTP DNS調(diào)度、DNS調(diào)度以及M3U8調(diào)度等,都是相同的處理邏輯, 只有前端接口不一樣,所以是統(tǒng)一體。 另外, 我們邊緣化來(lái)計(jì)算所有我們的調(diào)度請(qǐng)求,我們會(huì)將以上所有調(diào)度直接指定到離用戶最近的節(jié)點(diǎn)上,所以所有的機(jī)器都能實(shí)現(xiàn)調(diào)度, 也能實(shí)現(xiàn) CDN 本身的功能。在我們?cè)诹髁空{(diào)度的處理算法上全部使用自主開發(fā)的一致性算法,與在上層節(jié)點(diǎn)使用的一致性哈希算法相同。這樣上層就算變成下層, 也能很方便的保證命中率, 和不增加存儲(chǔ)空間。
2.7 邊緣化調(diào)度
一般廠商會(huì)選擇使用中心節(jié)點(diǎn)/調(diào)度處理,在此模型下所有用戶必須先請(qǐng)求調(diào)度才可得到目標(biāo)地址,而這種動(dòng)態(tài)請(qǐng)求需要中心中央服務(wù)器實(shí)時(shí)處理,無(wú)法在邊緣對(duì)其進(jìn)行配置,并且服務(wù)器的機(jī)位與處理能力有限,如果有攻擊,和高并發(fā)流量,極易造成調(diào)度的宕機(jī)。所以我們嘗試了新的思路,即邊緣化調(diào)度:不設(shè)立調(diào)度中心服務(wù)器,將邊緣作為調(diào)度服務(wù)器。采用本地就近處理的方式讓用戶訪問(wèn)就近的調(diào)度器,而調(diào)度器會(huì)區(qū)分調(diào)度請(qǐng)求與用戶訪問(wèn)請(qǐng)求并反饋不同的操作。
2.8 其他常見問(wèn)題
2.8.1 回源
這是一個(gè)經(jīng)典場(chǎng)景,邊緣的用戶請(qǐng)求最近的節(jié)點(diǎn)并回源。在此過(guò)程中, 如果本地的服務(wù)器異常,網(wǎng)絡(luò)不通,這時(shí)周邊沒(méi)有服務(wù)怎么辦?我們的結(jié)構(gòu)中, 上層和下層基本是一樣的,任何一個(gè)邊緣節(jié)點(diǎn)都可作為上層與下層,并且程序, 訪問(wèn), 計(jì)費(fèi)本身是抽象出來(lái),并不需要區(qū)分上下層來(lái)單獨(dú)處理。只需在后臺(tái)對(duì)流量進(jìn)行調(diào)整或自動(dòng)識(shí)別某個(gè)流量是邊緣流量還是回源流量。
2.8.2 安全體系
在安全領(lǐng)域我們也做了很多嘗試,例如WAF安全體系,可實(shí)現(xiàn)動(dòng)態(tài)加載防盜鏈、內(nèi)容加密與視頻防盜播、文件防篡改、HTTPs回源與加密支持、防劫持等。并且采用積分機(jī)制,例如某個(gè)不良請(qǐng)求命令10分,某個(gè)處于黑名單中的IP 10分,當(dāng)達(dá)到一定分?jǐn)?shù)時(shí)安全體系會(huì)直接拒絕操作。
3、 未來(lái)CDN方向
眾所周知,CDN的成本越來(lái)越低,如果想把CDN做得更好,或者想進(jìn)一步挖掘CDN的潛能,必須尋找差異化路線。例如P2P解決方案;另一條路是安全解決方案,例如各種抗DDOS服務(wù)、流量清洗的服務(wù)、Wap等服務(wù)。
邊緣計(jì)算
在這里我想強(qiáng)調(diào)的是邊緣計(jì)算。大家都將CDN視為一個(gè)靜態(tài)的東西,那么為什么不能將其作為一個(gè)通用的網(wǎng)關(guān)接口呢?因?yàn)镃DN離用戶最近并可實(shí)現(xiàn)很多功能,可以利用CDN開發(fā)很多智能解決方案,例如對(duì)多家客戶的IP進(jìn)行重合度分析;利用大數(shù)據(jù)技術(shù)結(jié)合自己的連接數(shù)、I/O等進(jìn)行校驗(yàn)來(lái)實(shí)現(xiàn)自主學(xué)習(xí)的安全防護(hù)從而實(shí)現(xiàn)故障自主檢測(cè)等。
舉一個(gè)邊緣計(jì)算的例子,假設(shè)上圖是一個(gè)標(biāo)準(zhǔn)視頻網(wǎng)站架構(gòu)中的一部分。如果我要訪問(wèn)一個(gè)視頻,需要從調(diào)度器的相關(guān)系統(tǒng), 來(lái)查詢很多信息,例如媒體系統(tǒng)、會(huì)員系統(tǒng)、視頻調(diào)度系統(tǒng)等。其中大部分的信息是不怎么變的,即使只有一兩個(gè)信息變化也需要客戶訪問(wèn)原站并獲取此調(diào)度器,這也就使得此調(diào)度器非常容易出現(xiàn)重復(fù)訪問(wèn),大量并發(fā)。為了解決這個(gè)問(wèn)題我們可將這三個(gè)接口在CDN層進(jìn)行合并,直接緩存基本的視頻原信息、回源原信息等不變信息,而只把最終的調(diào)度信息傳遞給用戶。每次只需要在邊緣與后端的客戶交換少量必要信息,利用有限的服務(wù)器資源實(shí)現(xiàn)更穩(wěn)定高效的數(shù)據(jù)交換,這是CDN一項(xiàng)很重要的趨勢(shì)。
-
視頻
+關(guān)注
關(guān)注
6文章
1934瀏覽量
72815 -
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4265瀏覽量
85675 -
CDN
+關(guān)注
關(guān)注
0文章
312瀏覽量
28773
原文標(biāo)題:扶凱:海量視頻和用戶時(shí)代的CDN
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論