我們公司主要做視頻在線點播,還有少量視頻下載。比較關心網絡加速,首先就是價格,其次是首播時間、流暢率這幾個核心性能指標。目前使用阿里云PCDN也有幾個月了,整體結果是超預期、值得安利的。寫這篇文章,希望能通過選型對比、接入過程、效果實現幾個方面的真實感受,給還在猶豫的同行們一些啟發,希望文章內容對你們有所幫助。
廢話少說,先直接說效果:每月的
CDN費用比以前少了近50%,首播時間、流暢率略優于使用中的2家CDN。這個結果真是讓人喜大普奔,原以為PCDN價格比CDN低這么多,性能會不好,沒想到這貨不僅價格低,性能比CDN還只好不差,一年能給老板省將近100萬,媽媽再也不用擔心我的年終獎啦。這個羊毛究竟該怎么薅,請聽我一一道來。
先說選型階段,是什么原因讓我們選擇了阿里云PCDN?
上半年公司花大力氣推廣,我們的視頻點播業務量增長挺快。業務量大了,不僅帶寬成本有壓力,我們也同樣壓力山大,怕產品服務不穩定,怕出各種問題。于是乎,我們一方面找目前使用的CDN公司申請價格折扣,申請服務質量保障;另一方面,也在不斷尋找其他質優價廉的CDN產品。
現在CDN各家公司競爭也很激烈,基本都能爽快的給一定的折扣,但價格還是不夠理想。找來找去,最后目光落在了P2P上。剛開始看到P2P,其實我內心是拒絕的,P2P讓人聯想到網上各種BT下載工具,這玩意雖然價格低,但性能指標能得到保障嗎?看了幾份P2P CDN的產品資料后,似乎跟我之前印象中的P2P不太一樣,覺得還像那么回事。但深入了解之后,問題來了。要使用P2P CDN,各家都是要在客戶端上集成SDK,SDK集成難度、SDK大小、SDK出bug后是否影響到主APP等各類因素都會可能造成影響。另外,從P2P原理上看,要有一定的P2P分享率,可能需要在終端上傳流量。我們的視頻點播業務在OTT盒子和移動端上都有,一旦在終端上傳流量,不僅會占用帶寬影響用戶體驗,而且還要在終端劃一塊存儲空間用于緩存內容,頻繁讀寫T卡/ROM也將影響到終端的壽命。這些問題對我們都很致命,如果這些問題真的存在,即使P2P CDN成本低,我們也沒法使用。
細了解下來發現,現在不光CDN競爭激烈,連P2P的競爭也是異常激烈。期間各家P2P CDN公司輪番來宣講產品,吹的天花亂墜。但外行看熱鬧,內行看門道,任你把牛皮吹破,我們有自己關心的點,達不到要求的話,再怎么吹也不會用。下面分別說說吧:
1、騰訊云P2P CDN: 騰訊云目前在大力推廣他家的CDN,價格比較低,性能上還不好說。他家的CDN商業化時間不長,用到的P2P技術還不能公開申請,應該還處于公測階段吧。主要問題是,如果要使用P2P,必須要終端上傳,這個是無法接受的,只能放棄。
2、星域CDN: 星域CDN其實是迅雷下面的一家做
云計算的公司,P2P技術來自于迅雷。星域CDN做了賺錢寶這樣的硬件終端,用于收集用戶的家庭出口帶寬。由于有一些這樣的硬件P2P終端節點的存在,使得客戶端APP可以不用上傳流量即可有P2P分享率。SDK大小適中,可以接受。但是他們缺乏視頻點播業務的客戶案例,并且他們來介紹產品的人,對于星域CDN在視頻點播上的性能表現,看起來也沒有很大的信心。這讓我們比較擔心,我們業務體量在快速增長,我們可不愿意當小白鼠,一旦出問題,這鍋我們背不起。
3、阿里云PCDN: 和星域CDN類似,阿里云也在全國各地發展了很多終端硬件設備,用戶貢獻帶寬獲得一定的收益,像優酷路由寶就是他家自有的設備,所以也不需要在設備上傳流量就有P2P效果。而和星域比起來,阿里云對各種業務場景的支持比較全面,視頻點播和下載業務領域已經有不少成熟的案例,并且優酷全站都使用了PCDN,這重燃了我們的信心。另外, 它的SDK不僅對接很快,而且大小在100KB左右,集成SDK后幾乎不增大APP體積。SDK中跑具體業務的內核可以遠程升級,如果出了問題,可以直接停用或者遠程升級,APP不用發版,這個很炫。
4、云帆加速: 云帆其實是想賣他們的CDN,通過把P2P免費給我們用,從而把CDN價格做的偏高。云帆的P2P必須要在終端設備上傳流量才會有P2P效果,這個沒法接受。云帆目前還是個創業公司,他們目前還做了很多其他業務,對于創業公司而言,人少而業務攤的太多,產品不一定能做精,資源也不能得到很好的保障。我們還是希望跟成熟穩定的大公司合作。
最終,我們決定使用阿里云PCDN測試看看效果。
隨之而來的就是非常關鍵的一步—— 接入,這是最能考驗服務質量和易用性的一步了。
首先在阿里云官網找到PCDN產品,申請開通。PCDN開通后,還要提供阿里云CDN域名和url給他們后臺,說是要匹配規則,然后就把SDK和對接文檔發給我們了。阿里云的人專門拉了釘釘群來支持我們的SDK集成和測試,他們的產品技術同學都在里面,響應的還挺及時,碰到問題都能很快解決,這要贊一個。
他們的SDK整體還比較簡單,就三個接口:啟動、停止和地址轉換。SDK對接照著他們給的文檔進行就可以了,APP的業務邏輯也不需要更改。從開始對接到集成成功,一共就花了不到一個小時,我數了數,總共也就4行核心代碼,這有點顛覆我以前對SDK集成的認知,沒想到這么簡單。給你們看看我是怎么做到的吧。
和大多數SDK一樣,啟動APP時啟動SDK,傳入阿里云分配給我們的token,這樣就把PCDN服務啟動起來了。
1
需要播放視頻時,播放器拿到云端提供的播放url地址后,增加一步調用SDK獲取PCDN播放地址,然后使用PCDN提供的本地地址播放即可。
2
最后再退出應用程序時停止PCDN服務即可。
3
我們在APP上做了埋點監測,比對了首播時間、流暢度等指標,PCDN的指標略優于我們使用的CDN,這些關鍵指標測試下來,效果還是比較滿意的。另外,阿里云PCDN有兩點是超出了我們預期的。
第一個就是PCDN支持下載限速,我們大部分的業務是點播,有少部分的視頻是要下載的,下載都是后臺進行,要求下載的同時還能夠流暢的播放視頻,同時也希望盡量限制在帶寬高峰期下載的速度。這就要求對下載進行限速了,還好阿里云PCDN已經支持了下載限速這個功能,下載速度可以由我們靈活控制,這個功能很好的解決了我們的問題。
第二個就是解決視頻被劫持的問題。之前時不時有用戶反映視頻沒法播放,經過分析基本都是域名被運營商劫持造成的,這種情況尤其在一些小地方小運營商中出現,比較頭疼。給我們提供服務的CDN公司也能解決域名劫持的問題,但需要在APP上集成SDK,我們是不大愿意單純為了這一個功能去集成SDK的。剛好阿里云PCDN SDK自帶了HTTPDNS功能,保證了域名解析的正確性,避免域名被劫持的情況,并且HTTPDNS還免費給我們用,簡直太方便太貼心了有木有。
成功接入后,我們就要看看效果了,畢竟老板們對數字指標是相當關心啊。
我們內部測試驗證了一周左右。從測試情況看,產品穩定性不錯,各方面性能指標也都達到了要求。但這畢竟只是實驗室幾個測試同學的測試,要真正反映產品表現,還是要大量數據來說話。阿里云PCDN的同學建議我們控制渠道灰度發布,有較多的用戶使用才會體現出P2P效果來。經過跟老板商量,我們挑了個渠道,灰度發布了版本。幾個小時后,就有幾千的安裝量,幾千個用戶對于驗證PCDN效果也足夠了。
接著又是一周時間,我們持續觀察了各方面的數據,首播時間跟CDN不相上下,流暢度方面,使用CDN時流暢度98%左右,使用PCDN時流暢度98.5%左右,下載穩定性和完成率也符合要求,整體的表現還是很不錯的。老板看到測試數據比較滿意,同時,阿里云PCDN的同學對我們的問題的響應和支持都比較及時,老板果斷決定正式上線PCDN產品,在各個渠道逐步全量發布。
現在,我們使用PCDN有幾個月時間了,新版本的覆蓋率已經很高了。產品還是很穩定的,即使偶爾有問題也能很快得到解決,這是我們非常看重的一點,省了很多麻煩。雖然業務增長,帶寬量也在增長。但使用PCDN后,每月的帶寬支出卻實實在在的省了不少。照這個情況看,每年就能省將近100萬的帶寬費用了。而這所有的一切,只是花了不到一個小時集成阿里云PCDN SDK,增加了4行核心代碼帶來的成果,真是相見恨晚。