世界杯千萬級直播高穩定的挑戰和實踐
今年夏天,俄羅斯世界杯召開。在剛剛落幕的重慶雲棲飛天技術匯專場中,阿裏視頻雲技術專家裘良科,就世界杯這個話題,跟參會嘉賓一起探討了千萬級直播高穩定的挑戰和相關實踐,本文為演講全文。
2018年俄羅斯世界杯從6月14日到7月15日,跨度整整一個月,共有64場比賽,優酷成為央視指定的世界杯新媒體官方合作夥伴,作為優酷的同門兄弟,阿裏雲也一並為世界杯直播的提供技術支持,一同征戰世界杯。 整個世界杯期間,阿裏雲的服務是不間斷的,要始終保持著穩定與流暢。而且除了支持優酷外,阿裏雲同時支持著CCTV5、CNTV、咪咕的世界杯直播,支撐了全網世界杯流量的70%。單單優酷的法阿大戰單場並發就達到2000W,加上其他的幾家客戶,足足有數千萬的用戶並發。這麽大規模、持久的賽事,對直播平臺也是很大的挑戰。
那麽從技術層面看,世界杯直播的挑戰究竟有哪些?
第一個挑戰是內容集中。世界杯核心內容就是CCTV5,加上解說頻道,多角度頻道就10多路直播,假設源站出現問題,那麽所有的直播都會出現問題。
第二個挑戰是高並發。世界杯高達千萬級的並發在線觀看用戶,且用戶量徒增非常明顯。假設直播平臺出現短暫故障,所有用戶可能會重新請求或者請求其他系統,對系統壓力也會非常大。
第三個挑戰是安全性。世界杯是世界級盛會,假設中間出現安全事故,影響會非常大,平臺方也會有不可推卸的責任。
在這樣的挑戰之下,阿裏雲要始終保持著世界杯直播的穩定、流暢、安全,背後有一套復雜的方案和邏輯,下面我們來從穩定性、安全、監控三個部分展開。
穩定性
第一部分是信源生產鏈路,因為最原始的信號很有可能不被雲平臺使用,比如非常高碼率的信號,不適合傳輸,所以一般都會有信源生產的鏈路進行編碼,提供一個源站服務。第二部分是視頻雲中心,整個直播平臺架構是中心架構,所有直播所需要的功能,比如轉碼、截圖、錄制、水印等功能,都是在中心完成的。第三部分是CDN,CDN是真正承載整個世界杯直播的用戶壓力的一環,數千萬的用戶都跑在CDN上。第四個部分是客戶端。接下來分各個環節來介紹阿裏雲如何保障服務穩定。
一、信源生產鏈路
多信號源輸入:生產鏈路環節一般是用戶自己搭建,建議用戶多信號源輸入,因為單信號源輸入的情況下,如果信號源中斷就會導致業務中斷。如果信號源確認只有一個的話,建議用戶信號源多鏈路輸入,避免單鏈路故障而導致信號源無法接收。
多出口推/拉流:源站的出口鏈路一般會要求是多個,因為單出口鏈路存在網絡風險。
二、視頻雲中心
結合多網絡輸入,視頻雲中心也會采用多網絡接入。
流合並,多個流來到視頻雲中心,通過特有的合並組件,把多個流變成一路流。
組件分布式部署,對於重大賽事,所用的機房我們會采用獨立資源專用機房,和其他業務之間互不影響。
全鏈路自動切換,每一個組件的狀態都會自動檢測,發生問題在10秒鐘之內完成切換,保證直播流的連續性。
對於交互相對較少的賽事直播,所以會采用H264直播,進行的優化是,所有的切片輸出的H264切片中,切片長度和I幀都是對齊的,好處是當下遊想在不同碼率之間切換的時候,畫面是連續的,不會有跳躍感。
切片雙寫,每一路流在進行切片的時候,都是雙進程切片,同時切到兩個OSS,這樣就保證了下遊CDN的源是雙份的。
考慮到賽事直播的重要性,整套架構在原來的基礎上,同時做了中心異地備份。
三、 CDN與客戶端
配合OSS雙寫,CDN也同時支持兩個OSS,並根據實時檢測把好的切片拼成一路,任何一個OSS寫異常、寫的慢都不會影響內容的傳輸。
中心主備與L2災備,由於CDN本身架構就是分布式的,考慮到世界杯的規模非常大,采用中心主備,如果CDN中心出現問題,會馬上切換為另一個。另外,每個地區都會放多個L2節點,如果L2在某一時刻出現問題,會馬上要附近的其他L2接入,不會因為異地影響服務質量。
采用節點內的負載均衡和CDN的調度優化方案,可以確保業務順暢。
最後,給客戶端一個建議,因為客戶端很多,當前面的切換出現時,某些客戶端可能會出現卡死無法播放等問題,所以客戶端需要對CDN請求做一個重試。
安全
世界杯賽事直播護航工作中,內容的安全和穩定同樣重要。用戶可以通過阿裏雲雲導播臺內容審核、源站IP推流和拉流的白名單設置、推流鑒權、拉流HTTPS校驗防劫持等幾個方案,來保障內容安全。針對類似世界杯賽事的版權內容,阿裏雲也提供播放鑒權&二次鑒權、DRM對視頻本身鑒權、分域名封禁、區域限制等方案來防止盜播盜鏈。
監控
架構解決了穩定性問題,並在安全方面也做了很多準備之後,直播當然也需要監控,阿裏雲對於世界杯直播的監控分以下三大部分。
第一是技術環境的監控
包括直播中心、CDN每臺設備的CPU使用率、內存、網絡、磁盤等,如果出現故障情況,就和前面的方案配合進行自動切換;如果出現異常、亞健康的狀態,則會通過報警讓運維人員快速定位問題和快速處理。
第二是應用監控
包括每個程序的進程、端口、QPS壓力、直播延遲,與前面環境監控的處理方式一樣,如果出現故障,就和切換機制聯動,如果出現異常則通過報警來人為處理。
第三是業務監控
包括直播全鏈路監控,下圖是一張比較復雜的直播業務的監控圖,綠色代表正常,×××可能會出現丟幀、丟包等問題出現的異常線路。點開每一條線,就可以看到沒路流在當前時間下的狀態值,比如說時間戳一小時之內是否連續、遞增和跳頻,避免客戶端兼容性問題引發的不好的用戶體驗。
對於幀率的監控,在視頻雲中心進行流合並的時候,我們實時地把不同的流合並成一個,來達到抗抖動的效果。下面四幅圖是同一時間同一路流的監控,上面三路流合並成下面一路流,毛刺變少,結果更穩定。
除此之外,系統還會針對服務端慢速比、客戶端卡頓率等數據,進行實時收集和監控,通過和客戶端的聯合,實現質量調優。
除了以上高穩定性的服務架構、多維度安全策略以及全鏈路監控以外,阿裏視頻雲也為用戶提供時移直播、智能剪輯、異地容災、智能調度、秒開、碼率控制、50幀極清、高速通道、防盜鏈、雲導播臺、廣告識別、ET字幕等能力。
相信護航過世界杯直播之後,阿裏視頻雲一定在活動、賽事直播這個場景下沈澱了更多技術,在未來為客戶創造更多價值,為用戶帶來更極致的觀看體驗。
原文鏈接
本文為雲棲社區原創內容,未經允許不得轉載。
世界杯千萬級直播高穩定的挑戰和實踐