在視頻流媒體中,因平臺火爆而出現問題是件好事。至少,這比根本沒有觀眾要好。
\\也許你正在使用世界級的CDN,但是,在大型賽事期間,當CDN的服務器和對等點流量變得飽和的時候,一些用戶還是無法享受到流暢的體驗。因為每個CDN擁有的容量都是有限的,所以都有其局限性。
\\更糟糕的是,每個CDN都是一個黑盒子,在任何特定時候幾乎都不能提供可用容量的信息。因此,CDN在大型賽事中的實際表現情況是無法預測的,尤其是當有不同內容供應商進行活動視頻直播的時候。你會發現,實際上你和其他內容供應商在共享CDN這種稀缺資源上競爭。
\\今年的世界杯正如火如荼地進行著,可以說世界杯會是有史以來最大的流媒體活動。我們對一些進行世界杯視頻直播的廣播公司客戶進行了采訪,詢問了他們為世界杯直播做了哪些準備。
\\根據采訪,我們總結了如下10個方面的經驗。你可以主動采取這些行動,以確保用戶在觀看世界杯直播時盡可能獲得最佳體驗。用戶已經為這次盛會等了足足四年,你可不想讓他們失望吧。
\\1.?數據是關鍵 —— 了解CDN表現如何
\\使用Mux、Youbora或Conviva等服務以準確了解你的CDN表現如何。再強調一遍,每個CDN都是一個黑盒子,但是你至少應該從外部進行測試,并獲得關于交付情況有意義的數據。
\\此圖來源于某次活動現場直播的Peer5分析儀表盤
\\Peer5的內置流媒體分析還能對CDN交付提供很多洞察分析,即使你沒有使用我們的P2P交付產品,你還是可以使用這些免費的分析數據 。如果目前你還沒有分析數據,那么有一點分析總比什么都沒有好。如果你有分析數據,那么可以把Peer5的數據和現有供應商的統計數據進行比較,以進行完整性檢查。
\\2. 讓CDN供應商為問題負責
\\CDN提供商并不完美。它們經常返回HTTP錯誤,而且有些會優先考慮重要或者咄咄逼人的客戶。與你的CDN提供商取得聯系,準備好數據(#1中提到的),并要求他們為你的大型賽事提供更好的性能。
\\如果你的CDN提供商沒有解決問題,沒有達到你的期望,就要考慮換CDN!如今,換個CDN不再是個大麻煩了,通常只需要幾天來部署和測試一個新的CDN。
\\3. 如果你還沒換CDN,那么就用多個CDN以保安全
\\你不能僅僅依靠單獨一個供應商來進行世界杯直播。流媒體直播的關鍵是冗余,如今使用多個CDN要容易得多。首先,純粹使用CDN進行緩存,并刪除任何類似攝入等供應商鎖定的功能。然后,可以輕松地添加另一個(或者兩個,甚至四個!)CDN。接著,你可以在CDN之間進行負載平衡,如果出現問題,就切換到沒有問題的CDN上。
\\即使你無法更改供應商,無法真的從你的CDN遷移,也有辦法使用額外的CDN進行緩存和冗余,同時仍然使用你的主CDN專門進行攝入/編碼。
\\4. 改進多個CDN切換邏輯
\\你是如何在CDN之間實行負載平衡的?我們看到很多平臺仍然使用非常簡單的靜態負載平衡方案。這意味著,每個用戶在整個過程中被分配到一個CDN,這可能是個問題。首先你必須要測試的是:如果一個CDN不能工作了(或者表現糟糕),是否能中途切換CDN?你可以自己構建這個功能,或者采用第三方解決方案,比如:Cedexis或DLVR。
\\5. 多樣化CDN —— 添加一個無服務器CDN
\\給你自己多準備條路。點對點(Peer-to-Peer,簡稱P2P)網狀網絡在解決大規模問題方面已經有幾十年的歷史了。一旦谷歌開源WebRTC,Peer5就可以構建一個P2P,一個無需終端用戶下載或安裝的無服務器CDN,因為WebRTC已經嵌入了瀏覽器。這意味著Peer5對于終端用戶來說是透明的,就像任何一個基于服務器的CDN,并且與目前的流媒體架構無縫集成。
\\這個混合方法(傳統的CDN + 無服務器CDN)很獨特,因為它使交付堆棧完全多樣化了,不受負載的影響。P2P CDN是最終的流媒體保險方案,其中最棒的是,它完全免費。如果一切正常,并且傳統的CDN表現良好,那么你將永遠不需要P2P容量,也就不必為此付費。但是,如果一切都亂了套,并且觀看人數太多了,那么,你就真的需要一個解決方案來解救你。
\\6. 增加一些額外的服務器
\\如今,很多公司運營著自己的數據中心,有時也和商業CDN合作。如果你運營自己的CDN,謹慎起見,要增加一些額外的服務器以防萬一。考慮到驚群(thundering herd)現象,要在為時已晚前啟動更多的實例。
\\7. 準備好阻止更多用戶訪問視頻流
\\沒有人希望自己處于這個境地,但是,你也許需要在CDN出現問題的地區掐斷連接。
\\考慮告訴用戶是否/何時遇到了交付問題。或者,考慮從頁面中刪除視頻元素一段時間。完全沒有視頻比有個不斷出現錯誤和緩沖的視頻要好一點。
\\通過采取這個步驟,你也減輕了CDN的負擔。你肯定不希望在大型節目中出現錯誤信息或推送代碼更改。提前開發這個功能,并確保你能夠在需要的時候馬上就能觸發該功能。
\\8. 準備好妥協 —— 添加更低的格式標準
\\由于質量不夠好,很多內容供應商不再提供360p格式。但是,在大型節目中,你應該考慮把它們添加進來。更低的格式標準意味著即使你的CDN受到壓力,容量有限,一些終端用戶仍然可以觀看。
\\9. 完美并不總是好事 —— 刪除更高的格式標準
\\一種更有趣的方法是,如果碰到緊急狀況(容量問題),刪除最高格式標準的能力。ABR算法是很貪婪的,這意味著每個播放者都會試圖從CDN攫取盡可能多的帶寬,以獲得盡可能高的視頻質量。每個播放器都是獨立的,不會“知道”服務器是否壓力過大或者當前有多少個其他用戶在請求視頻片段。很有可能發生這樣的情況:所有播放器都在爭奪達到同樣的最高格式標準,但是最終,沒有一個能夠做到(可以想想囚徒困境)。
\\同樣,這不是一個理想的場景,但是,當糟糕的事情開始發生時,擁有一個可以消除副本的故障安全措施也許是非常有用的。
\\10. 了解極限 —— 事先進行壓力測試
\\不幸的是,目前還沒有完美的全球壓力測試解決方案。有像LoadRunner這樣的綜合解決方案,會創建數以千計的請求發送給你的CDN,但是這些請求通常將來自位于同一數據中心的幾臺服務器,它們和你的CDN有著良好的連接性。你不能真正超高規模地或在有困難的地區測試你的CDN,這會非常昂貴和耗時。
\\我們找到的最佳解決方案是,使用以前大型賽事的真實數據,并認真地深入研究那些第1條中的分析所識別出的薄弱痛點。
\\祝你好運!
\\查看英文原文:10 ways to avoid CDN issues at peak??
\\感謝張嬋對本文的審校。