世界盃千萬級直播高穩定的挑戰和實踐

摘要: 今年夏天,俄羅斯世界盃召開。在剛剛落幕的重慶雲棲飛天技術匯專場中,阿里視頻雲技術專家裘良科,就世界盃這個話題,跟參會嘉賓一起探討了千萬級直播高穩定的挑戰和相關實踐,本文爲演講全文。 2018年俄羅斯世界盃從6月14日到7月15日,跨度整整一個月,共有64場比賽,優酷成爲央視指定的世界盃新媒體官方合作伙伴,作爲優酷的同門兄弟,阿里雲也一併爲世界盃直播的提供技術支持,一同征戰世界盃。

今年夏天,俄羅斯世界盃召開。在剛剛落幕的重慶雲棲飛天技術匯專場中,阿里視頻雲技術專家裘良科,就世界盃這個話題,跟參會嘉賓一起探討了千萬級直播高穩定的挑戰和相關實踐,本文爲演講全文。

image

2018年俄羅斯世界盃從6月14日到7月15日,跨度整整一個月,共有64場比賽,優酷成爲央視指定的世界盃新媒體官方合作伙伴,作爲優酷的同門兄弟,阿里雲也一併爲世界盃直播的提供技術支持,一同征戰世界盃。 整個世界盃期間,阿里雲的服務是不間斷的,要始終保持着穩定與流暢。而且除了支持優酷外,阿里雲同時支持着CCTV5、CNTV、咪咕的世界盃直播,支撐了全網世界盃流量的70%。單單優酷的法阿大戰單場併發就達到2000W,加上其他的幾家客戶,足足有數千萬的用戶併發。這麼大規模、持久的賽事,對直播平臺也是很大的挑戰。

那麼從技術層面看,世界盃直播的挑戰究竟有哪些?
第一個挑戰是內容集中。世界盃核心內容就是CCTV5,加上解說頻道,多角度頻道就10多路直播,假設源站出現問題,那麼所有的直播都會出現問題。
第二個挑戰是高併發。世界盃高達千萬級的併發在線觀看用戶,且用戶量徒增非常明顯。假設直播平臺出現短暫故障,所有用戶可能會重新請求或者請求其他系統,對系統壓力也會非常大。
第三個挑戰是安全性。世界盃是世界級盛會,假設中間出現安全事故,影響會非常大,平臺方也會有不可推卸的責任。
在這樣的挑戰之下,阿里雲要始終保持着世界盃直播的穩定、流暢、安全,背後有一套複雜的方案和邏輯,下面我們來從穩定性、安全、監控三個部分展開。

穩定性
下圖是世界盃直播穩定性架構圖,分爲四大部分,信源生產鏈路、視頻雲中心、CDN和客戶端。
image

第一部分是信源生產鏈路,因爲最原始的信號很有可能不被雲平臺使用,比如非常高碼率的信號,不適合傳輸,所以一般都會有信源生產的鏈路進行編碼,提供一個源站服務。第二部分是視頻雲中心,整個直播平臺架構是中心架構,所有直播所需要的功能,比如轉碼、截圖、錄製、水印等功能,都是在中心完成的。第三部分是CDN,CDN是真正承載整個世界盃直播的用戶壓力的一環,數千萬的用戶都跑在CDN上。第四個部分是客戶端。接下來分各個環節來介紹阿里雲如何保障服務穩定。

一、信源生產鏈路
多信號源輸入:生產鏈路環節一般是用戶自己搭建,建議用戶多信號源輸入,因爲單信號源輸入的情況下,如果信號源中斷就會導致業務中斷。如果信號源確認只有一個的話,建議用戶信號源多鏈路輸入,避免單鏈路故障而導致信號源無法接收。
主備線下轉碼器:前面講到原始信號源是沒辦法直接使用的,所以會用到一個編碼器,我們一般會要求編碼器的主備是實時能夠獲取多個信號源,並支持實時切換的。切換的模式有兩種,第一個是直接主備模式,在同時輸出源,只有1臺編碼器。第二個雙備的方式,2臺編碼器的輸出源同時給雲平臺提供數據源,這樣的方式,我們最終會把轉碼器的數據通過拉流或者推流的方式同步到視頻雲中心。如果是拉流的方式,視頻雲中心會從多個源站同時拉流,保證任何一個源站/編碼器出現問題,視頻雲中心都可以順利的拿到數據。如果是推流的方式,主動權在用戶,用戶也最好能多個源站/編碼器同時向視頻雲中心推流。
多出口推/拉流:源站的出口鏈路一般會要求是多個,因爲單出口鏈路存在網絡風險。
image

二、視頻雲中心
結合多網絡輸入,視頻雲中心也會採用多網絡接入。
流合併,多個流來到視頻雲中心,通過特有的合併組件,把多個流變成一路流。
組件分佈式部署,對於重大賽事,所用的機房我們會採用獨立資源專用機房,和其他業務之間互不影響。
全鏈路自動切換,每一個組件的狀態都會自動檢測,發生問題在10秒鐘之內完成切換,保證直播流的連續性。
對於交互相對較少的賽事直播,所以會採用H264直播,進行的優化是,所有的切片輸出的H264切片中,切片長度和I幀都是對齊的,好處是當下遊想在不同碼率之間切換的時候,畫面是連續的,不會有跳躍感。
切片雙寫,每一路流在進行切片的時候,都是雙進程切片,同時切到兩個OSS,這樣就保證了下游CDN的源是雙份的。
考慮到賽事直播的重要性,整套架構在原來的基礎上,同時做了中心異地備份。
image
三、 CDN與客戶端
配合OSS雙寫,CDN也同時支持兩個OSS,並根據實時檢測把好的切片拼成一路,任何一個OSS寫異常、寫的慢都不會影響內容的傳輸。
中心主備與L2災備,由於CDN本身架構就是分佈式的,考慮到世界盃的規模非常大,採用中心主備,如果CDN中心出現問題,會馬上切換爲另一個。另外,每個地區都會放多個L2節點,如果L2在某一時刻出現問題,會馬上要附近的其他L2接入,不會因爲異地影響服務質量。
採用節點內的負載均衡和CDN的調度優化方案,可以確保業務順暢。
最後,給客戶端一個建議,因爲客戶端很多,當前面的切換出現時,某些客戶端可能會出現卡死無法播放等問題,所以客戶端需要對CDN請求做一個重試。
image
安全
世界盃賽事直播護航工作中,內容的安全和穩定同樣重要。用戶可以通過阿里云云導播臺內容審覈、源站IP推流和拉流的白名單設置、推流鑑權、拉流HTTPS校驗防劫持等幾個方案,來保障內容安全。針對類似世界盃賽事的版權內容,阿里雲也提供播放鑑權&二次鑑權、DRM對視頻本身鑑權、分域名封禁、區域限制等方案來防止盜播盜鏈。

監控
架構解決了穩定性問題,並在安全方面也做了很多準備之後,直播當然也需要監控,阿里雲對於世界盃直播的監控分以下三大部分。

第一是技術環境的監控
包括直播中心、CDN每臺設備的CPU使用率、內存、網絡、磁盤等,如果出現故障情況,就和前面的方案配合進行自動切換;如果出現異常、亞健康的狀態,則會通過報警讓運維人員快速定位問題和快速處理。

第二是應用監控
包括每個程序的進程、端口、QPS壓力、直播延遲,與前面環境監控的處理方式一樣,如果出現故障,就和切換機制聯動,如果出現異常則通過報警來人爲處理。

第三是業務監控
包括直播全鏈路監控,下圖是一張比較複雜的直播業務的監控圖,綠色代表正常,×××可能會出現丟幀、丟包等問題出現的異常線路。點開每一條線,就可以看到沒路流在當前時間下的狀態值,比如說時間戳一小時之內是否連續、遞增和跳頻,避免客戶端兼容性問題引發的不好的用戶體驗。

image

對於幀率的監控,在視頻雲中心進行流合併的時候,我們實時地把不同的流合併成一個,來達到抗抖動的效果。下面四幅圖是同一時間同一路流的監控,上面三路流合併成下面一路流,毛刺變少,結果更穩定。

image

除此之外,系統還會針對服務端慢速比、客戶端卡頓率等數據,進行實時收集和監控,通過和客戶端的聯合,實現質量調優。

除了以上高穩定性的服務架構、多維度安全策略以及全鏈路監控以外,阿里視頻雲也爲用戶提供時移直播、智能剪輯、異地容災、智能調度、秒開、碼率控制、50幀極清、高速通道、防盜鏈、雲導播臺、廣告識別、ET字幕等能力。

image

相信護航過世界盃直播之後,阿里視頻雲一定在活動、賽事直播這個場景下沉澱了更多技術,在未來爲客戶創造更多價值,爲用戶帶來更極致的觀看體驗。

閱讀原文
本文爲雲棲社區原創內容,未經允許不得轉載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章