天天看點

使用阿裡雲PCDN降低内容分發成本

阿裡雲pcdn(p2p cdn的簡稱)是基于p2p技術的内容分發網絡産品,相比cdn而言,pcdn單價較低,更适用于大流量内容分發。pcdn産品是與傳統cdn互補協作的關系,以p2p技術為核心的分布式pcdn系統可與傳統cdn、雲cdn無縫內建,形成互補協作,pcdn相對于cdn進行了相應的擴容、提速、降費:

(1)<b>擴容</b>,擴充放大cdn容量。pcdn可将原cdn容量按約1:5比例放大,使用pcdn後僅需要較小的 cdn規模即可獲得約5倍的整體擴容效果。

(2)<b>提速</b>,降低播放延遲及進行流暢率優化。通過調用海量分布式p2p節點, 平均播放流暢率 &gt; 97%,平均首播時間小于1秒。

(3)<b>降費</b>,整體成本降低30%以上,pcdn相對傳統cdn成本降低40% 以上,與cdn混合內建後整體成本 降低30%以上。

産品特性

使用阿裡雲PCDN降低内容分發成本

pcdn主要應用的業務領域包括視訊點播、視訊直播、大檔案下載下傳;應用場景涵蓋互動娛樂、教育、演出和賽事;目前支援的平台系統包括web flash、ios、android、pc client、ott,支援的格式協定包括mp4、flv、rtmp、hls。其産品具有使用者體驗好、sdk強大易用、高p2p分享率、高安全性、高可用性、成熟穩定六大特性:

(1)<b>使用者體驗好</b>:平均播放流暢率&gt;97%;平均首播時間小于1秒。

(2)<b>sdk強大易用</b>:支援web flash/andriod/ios/ott等平台下點播、直播;提供優酷播放器,通過多年視訊播放技術沉澱,效果媲美一線視訊應用;接口統一,各終端平台适配簡單。

(3)<b>高p2p分享率</b>:p2p全天平均分享率&gt;50%,高峰期分享率60%~80%。

(4)<b>高安全性</b>:保護關鍵資料,防盜鍊、抵禦ddos攻擊;安全通道通過加密機制保證媒體資料的正确性。

(5)<b>高可用性</b>:可根據營運商、管道、地區等多元度進行運作參數修改和啟停控制;資料統計系統可以實時監控、查詢加速狀态和效果。

(6)<b>成熟穩定</b>:多年來一直為優酷洋芋提供優質的播放加速;擁有内網穿透、緩存處理、種子管理、傳輸政策等各方面的核心技術和專利40餘項。

<b>移動端優化</b>

使用阿裡雲PCDN降低内容分發成本

最近幾年,移動端占比逐漸攀升,視訊播放行為越來越多地發生在移動端,在移動端開發p2p應用存在天然的挑戰:一是由于網絡接入的情況多變,而客戶對app的上傳行為有着比較苛刻的限制或者是幹脆不上傳,一旦p2p應用沒有上傳,則傳統的p2p廠商很難繼續提供服務。pcdn為了應對上傳限制,通過使用路由、區核節點,在移動端上傳受限情況下也能達到良好的效果。第二個挑戰是因為移動端裝置性能、存儲、功耗上的限制,對p2p應用有着較為嚴格的限制,pcdn針對移動裝置做了很多優化:i/o方面支援記憶體模式,不必讀寫tf/rom;資源使用及功耗方面,pcdn做到了極低的系統資源占用,耗電量使用p2p應用和不使用p2p應用基本無差別;機型及版本适配方面,适配各種android/ios裝置及系統版本。

技術架構

<b>視訊點播和大檔案下載下傳</b>

下面看一下pcdn的技術架構和工作原理,具體從視訊生産、傳輸、消費三個環節探究pcdn的工作方式。

使用阿裡雲PCDN降低内容分發成本

在視訊生産環節,客戶通過版權采購、使用者上傳分享等方式産生媒資庫,存儲在阿裡雲的oss上,形成源站;在視訊傳輸和視訊消費環節,定義了一、二、三級加速概念,從源站将内容推送到cdn,這是最傳統的cdn加速,這裡稱之為一級加速;p2p的節點又細分為路由器、營運商區核和商業wifi,稱之為pcdn網絡的二級節點,pcdn網絡中的排程會定期主動把cdn網絡中熱點資源推送到pcdn網絡的二級節點上;在視訊播放端,由于內建了pcdn的sdk,在請求播放時會優先命中附近的路由器、營運商區核、商業wifi是否存在所請求資源,如果存在,則直接從這些節點中擷取資源;否則從cdn擷取資源,通過這種機制實作了二級加速,減少了cdn的使用量;在播放端,尤其是sdk中,它不僅可以到二級節點中命中所請求的資源,還可以通過彼此之間的上傳和下載下傳命中所需資源,這種消費端彼此命中資源的模式稱之為三級加速,進一步降低了二級節點的使用量。通過将pcdn網絡和cdn網絡結合起來,通過一、二、三級加速達到了較好的使用者體驗,同時降低了成本。

<b>直播</b>

使用阿裡雲PCDN降低内容分發成本

視訊直播的技術架構如上圖所示,整體流程與點播基本一緻,它們的差別在于,直播通常分為兩類:hls切片,它可以利用點播的思想來實作直播,它的原理和剛才的點播實際上是一樣的,hls切片直接被cdn分發,熱點内容再分發到二級節點上,如果sdk能夠在二級節點命中請求,則從二級節點中擷取内容,進行播放,如果不命中或逾時則回源cdn。對于直播流rtmp/flv,它是流的形式,并不是小切片或者檔案的形式,是以在cdn網絡分發以及被pcdn網絡識别和打包前,必須要将視訊流推送到切片服務,經處理後分發到cdn中,也就是通過切片服務将rtmp/flv直播流轉換成類似hls小視訊切片,後續處理和hls相同。

<b>節點布局</b>

為了應對移動端上傳的限制,在pcdn的網絡中專門部署大量的二級節點,包括營運商彙聚層節點(區核)、商業網絡節點(商業wifi、小區寬帶)、路由器節點(路由寶及合作機制)。通過這樣的節點布局,覆寫了90%以上地級市和五大營運商,p2p帶寬儲量保守估計達10tbps。

接入流程

下面來看一下如何接入和使用pcdn服務。

使用阿裡雲PCDN降低内容分發成本

使用pcdn的大緻步驟如上圖所示,首先客戶了解到産品,會同我們的售前人員進行需求溝通,主要溝通的問題包括業務場景和帶寬需求量,特别是使用者群、終端分布、媒資熱度和格式;如果溝通之後确定pcdn适用于客戶場景,下一步客戶需要通過文檔和技術人員指導在各端sdk內建聯調;第三個環節包括局部上線和正式上線,局部上線時分管道/地區/營運商逐漸打開p2p開關,階段性評估播放體驗,确認一切無誤,再全量打開p2p開關,正式投入營運。

<b>接入流程:媒資流量調研</b>

使用阿裡雲PCDN降低内容分發成本

我們在與客戶溝通的過程中,需要明确客戶的媒資熱度,媒資熱度反映的是媒資庫中熱點内容流量占比情況,例如:10%的内容占據90%的流量。圖中左側是媒資庫熱度分布曲線,橫軸是累計媒資數量,縱軸可以是cdn流量(tb)或播放量(vv)、m3u/ts的媒資檔案。如果視訊播放的頻率是完全平均分布的,則媒資熱度分布曲線呈現長尾下均勻分布,如圖中黃色曲線所示;如果極少數的視訊帶來絕大多數播放量,則媒資熱度分布曲線呈現頭部效應下分布,如圖中綠色曲線所示,曲線越陡峭則媒資熱度集中度越高,實施p2p方案的效果就越好。

<b>接入流程:pcdn sdk</b>

使用阿裡雲PCDN降低内容分發成本

在接入過程中,主要工作在對接sdk上。相比較而言,pcdn的sdk接口層還是較為簡潔的,宿主app實際上隻需要對接sdk接口層所提供的幾個簡單的方法和接口即可實作整個邏輯,一些複雜的業務實作屏蔽在sdk的核心中。

下面來看一個簡單的pcdn sdk接口的調用過程。

使用阿裡雲PCDN降低内容分發成本

整體調用過程分為三步:<b>第一步</b>啟動p2p(調用start()指令);<b>第二步</b>利用pcdn_address函數轉換播放位址,在向p2p系統播放請求url時,首先調用pcdn_address函數對原位址(http://a.com/xxx.mp4)進行轉換,如果p2p系統成功傳回http://127.0.0.1:xxxx/xxx.mp4位址,則說明該系統可以供給p2p流量,播放器無需知曉這個位址是怎麼來的,隻需要按照傳回位址播放視訊即可,播放時使用的是p2p流量;如果p2p政策被禁用或者不識别域名無法提供服務時,會傳回原位址(http://a.com/xxx.mp4),宿主app像通路cdn一樣通路該位址即可。整體過程對使用者而言都是透明的,且沒有其他性能代價。<b>第三步</b>:當整體業務流程結束時,停止p2p(調用stop()指令)。

效果分析

下面通過兩種服務模式對pcdn的效果進行分析。

<b>pcdn服務模式一:與阿裡雲cdn內建</b>

使用阿裡雲PCDN降低内容分發成本

pcdn與阿裡雲cdn內建使用的大緻結構如上圖所示。首先給定預設條件:客戶切給阿裡雲帶寬15gbps;pcdn覆寫率80%,p2p分享率50%。客戶的各種終端都需要更新帶sdk的app才能使用pcdn的流量,一旦涉及軟體更新,是很難做到100%,總有老版本因為各種問題無法更新,是以假定有80%是覆寫并使用sdk的終端。

上圖中虛線部分包括三種類型的移動終端,分别是未內建sdk、內建sdk但未使用pcdn服務以及內建sdk并使用pcdn服務終端。當app發起資源請求時,用戶端通過負載均衡/流量排程系統把該請求排程給阿裡雲cdn,如果是由內建sdk并使用pcdn的終端發起的請求,則由阿裡雲pcdn響應該請求,對其提供服務,阿裡雲pcdn在該預設條件下報表用量為12g(15×80%),按pcdn單價計費;當請求是由其他兩類終端發出,則由阿裡雲cdn響應其請求,并提供服務,在阿裡雲cdn報表用量為3g(15-12),按cdn單價計費。

使用阿裡雲PCDN降低内容分發成本

pcdn與阿裡雲cdn內建之後的節省效果如上圖所示,兩者相比較,通過阿裡雲cdn與pcdn混合方案,每月能夠節省32%的成本。

<b>pcdn服務模式二:與任意cdn內建</b>

使用阿裡雲PCDN降低内容分發成本

除了阿裡雲cdn之外,pcdn還可以與任意第三方cdn內建使用。預設條件不變,客戶總帶寬需求15gbps;pcdn覆寫率80%,p2p分享率50%;客戶終端不變,同樣是三種類型。當使用者app請求資源時,內建sdk并使用pcdn的終端會出現兩種狀況:一是請求命中p2p資源,使用p2p帶寬,則阿裡雲pcdn報表為6g(15g*80%*50%),按pcdn單價計費;二是盡管內建sdk并使用了pcdn,但請求未命中p2p資源,則回源cdn擷取資源,則這部分會計入第三方cdn報表中,則第三方cdn報表為9g(15g-6g)。

典型案例

最後介紹兩個pcdn在實際中使用的典型案例。

<b>ott點播</b>

使用阿裡雲PCDN降低内容分發成本

上圖是ott點播的架構模型,在該結構中使用oss做源站,多家cdn做分發,其中pcdn僅對接阿裡雲cdn,也就是僅對請求阿裡雲域名的流量起作用,幫助客戶降低了使用阿裡雲産品的成本。

<b>互動直播</b>

使用阿裡雲PCDN降低内容分發成本

上圖是互動直播案例架構圖,在該案例中pcdn對接所有廠商的cdn(不單是阿裡雲cdn),使用阿裡雲直播中心推流,視訊流其中一條路徑是進入rtmp/flv切片服務進行切片,原始直播流和切片後的檔案都通過阿裡雲cdn分發,利用阿裡雲cdn作為根節點(是第三方cdn的源站),對于各cdn的請求都可以使用pcdn帶寬。利用該架構可以降低客戶使用各家cdn的成本。