世界杯千萬級(jí)直播高穩(wěn)定的挑戰(zhàn)和實(shí)踐
今年夏天,俄羅斯世界杯召開。在剛剛落幕的重慶云棲飛天技術(shù)匯專場中,阿里視頻云技術(shù)專家裘良科,就世界杯這個(gè)話題,跟參會(huì)嘉賓一起探討了千萬級(jí)直播高穩(wěn)定的挑戰(zhàn)和相關(guān)實(shí)踐,本文為演講全文。

2018年俄羅斯世界杯從6月14日到7月15日,跨度整整一個(gè)月,共有64場比賽,優(yōu)酷成為央視指定的世界杯新媒體官方合作伙伴,作為優(yōu)酷的同門兄弟,阿里云也一并為世界杯直播的提供技術(shù)支持,一同征戰(zhàn)世界杯。 整個(gè)世界杯期間,阿里云的服務(wù)是不間斷的,要始終保持著穩(wěn)定與流暢。而且除了支持優(yōu)酷外,阿里云同時(shí)支持著CCTV5、CNTV、咪咕的世界杯直播,支撐了全網(wǎng)世界杯流量的70%。單單優(yōu)酷的法阿大戰(zhàn)單場并發(fā)就達(dá)到2000W,加上其他的幾家客戶,足足有數(shù)千萬的用戶并發(fā)。這么大規(guī)模、持久的賽事,對(duì)直播平臺(tái)也是很大的挑戰(zhàn)。
那么從技術(shù)層面看,世界杯直播的挑戰(zhàn)究竟有哪些?
第一個(gè)挑戰(zhàn)是內(nèi)容集中。世界杯核心內(nèi)容就是CCTV5,加上解說頻道,多角度頻道就10多路直播,假設(shè)源站出現(xiàn)問題,那么所有的直播都會(huì)出現(xiàn)問題。第二個(gè)挑戰(zhàn)是高并發(fā)。世界杯高達(dá)千萬級(jí)的并發(fā)在線觀看用戶,且用戶量徒增非常明顯。假設(shè)直播平臺(tái)出現(xiàn)短暫故障,所有用戶可能會(huì)重新請(qǐng)求或者請(qǐng)求其他系統(tǒng),對(duì)系統(tǒng)壓力也會(huì)非常大。第三個(gè)挑戰(zhàn)是安全性。世界杯是世界級(jí)盛會(huì),假設(shè)中間出現(xiàn)安全事故,影響會(huì)非常大,平臺(tái)方也會(huì)有不可推卸的責(zé)任。在這樣的挑戰(zhàn)之下,阿里云要始終保持著世界杯直播的穩(wěn)定、流暢、安全,背后有一套復(fù)雜的方案和邏輯,下面我們來從穩(wěn)定性、安全、監(jiān)控三個(gè)部分展開。
穩(wěn)定性
下圖是世界杯直播穩(wěn)定性架構(gòu)圖,分為四大部分,信源生產(chǎn)鏈路、視頻云中心、CDN和客戶端。

第一部分是信源生產(chǎn)鏈路,因?yàn)樽钤嫉男盘?hào)很有可能不被云平臺(tái)使用,比如非常高碼率的信號(hào),不適合傳輸,所以一般都會(huì)有信源生產(chǎn)的鏈路進(jìn)行編碼,提供一個(gè)源站服務(wù)。第二部分是視頻云中心,整個(gè)直播平臺(tái)架構(gòu)是中心架構(gòu),所有直播所需要的功能,比如轉(zhuǎn)碼、截圖、錄制、水印等功能,都是在中心完成的。第三部分是CDN,CDN是真正承載整個(gè)世界杯直播的用戶壓力的一環(huán),數(shù)千萬的用戶都跑在CDN上。第四個(gè)部分是客戶端。接下來分各個(gè)環(huán)節(jié)來介紹阿里云如何保障服務(wù)穩(wěn)定。
一、信源生產(chǎn)鏈路
多信號(hào)源輸入:生產(chǎn)鏈路環(huán)節(jié)一般是用戶自己搭建,建議用戶多信號(hào)源輸入,因?yàn)閱涡盘?hào)源輸入的情況下,如果信號(hào)源中斷就會(huì)導(dǎo)致業(yè)務(wù)中斷。如果信號(hào)源確認(rèn)只有一個(gè)的話,建議用戶信號(hào)源多鏈路輸入,避免單鏈路故障而導(dǎo)致信號(hào)源無法接收。主備線下轉(zhuǎn)碼器:前面講到原始信號(hào)源是沒辦法直接使用的,所以會(huì)用到一個(gè)編碼器,我們一般會(huì)要求編碼器的主備是實(shí)時(shí)能夠獲取多個(gè)信號(hào)源,并支持實(shí)時(shí)切換的。切換的模式有兩種,第一個(gè)是直接主備模式,在同時(shí)輸出源,只有1臺(tái)編碼器。第二個(gè)雙備的方式,2臺(tái)編碼器的輸出源同時(shí)給云平臺(tái)提供數(shù)據(jù)源,這樣的方式,我們最終會(huì)把轉(zhuǎn)碼器的數(shù)據(jù)通過拉流或者推流的方式同步到視頻云中心。如果是拉流的方式,視頻云中心會(huì)從多個(gè)源站同時(shí)拉流,保證任何一個(gè)源站/編碼器出現(xiàn)問題,視頻云中心都可以順利的拿到數(shù)據(jù)。如果是推流的方式,主動(dòng)權(quán)在用戶,用戶也最好能多個(gè)源站/編碼器同時(shí)向視頻云中心推流。多出口推/拉流:源站的出口鏈路一般會(huì)要求是多個(gè),因?yàn)閱纬隹阪溌反嬖诰W(wǎng)絡(luò)風(fēng)險(xiǎn)。
二、視頻云中心
結(jié)合多網(wǎng)絡(luò)輸入,視頻云中心也會(huì)采用多網(wǎng)絡(luò)接入。流合并,多個(gè)流來到視頻云中心,通過特有的合并組件,把多個(gè)流變成一路流。組件分布式部署,對(duì)于重大賽事,所用的機(jī)房我們會(huì)采用獨(dú)立資源專用機(jī)房,和其他業(yè)務(wù)之間互不影響。全鏈路自動(dòng)切換,每一個(gè)組件的狀態(tài)都會(huì)自動(dòng)檢測(cè),發(fā)生問題在10秒鐘之內(nèi)完成切換,保證直播流的連續(xù)性。對(duì)于交互相對(duì)較少的賽事直播,所以會(huì)采用H264直播,進(jìn)行的優(yōu)化是,所有的切片輸出的H264切片中,切片長度和I幀都是對(duì)齊的,好處是當(dāng)下游想在不同碼率之間切換的時(shí)候,畫面是連續(xù)的,不會(huì)有跳躍感。切片雙寫,每一路流在進(jìn)行切片的時(shí)候,都是雙進(jìn)程切片,同時(shí)切到兩個(gè)OSS,這樣就保證了下游CDN的源是雙份的??紤]到賽事直播的重要性,整套架構(gòu)在原來的基礎(chǔ)上,同時(shí)做了中心異地備份。

三、 CDN與客戶端
配合OSS雙寫,CDN也同時(shí)支持兩個(gè)OSS,并根據(jù)實(shí)時(shí)檢測(cè)把好的切片拼成一路,任何一個(gè)OSS寫異常、寫的慢都不會(huì)影響內(nèi)容的傳輸。中心主備與L2災(zāi)備,由于CDN本身架構(gòu)就是分布式的,考慮到世界杯的規(guī)模非常大,采用中心主備,如果CDN中心出現(xiàn)問題,會(huì)馬上切換為另一個(gè)。另外,每個(gè)地區(qū)都會(huì)放多個(gè)L2節(jié)點(diǎn),如果L2在某一時(shí)刻出現(xiàn)問題,會(huì)馬上要附近的其他L2接入,不會(huì)因?yàn)楫惖赜绊懛?wù)質(zhì)量。采用節(jié)點(diǎn)內(nèi)的負(fù)載均衡和CDN的調(diào)度優(yōu)化方案,可以確保業(yè)務(wù)順暢。最后,給客戶端一個(gè)建議,因?yàn)榭蛻舳撕芏?,?dāng)前面的切換出現(xiàn)時(shí),某些客戶端可能會(huì)出現(xiàn)卡死無法播放等問題,所以客戶端需要對(duì)CDN請(qǐng)求做一個(gè)重試。

安全
世界杯賽事直播護(hù)航工作中,內(nèi)容的安全和穩(wěn)定同樣重要。用戶可以通過阿里云云導(dǎo)播臺(tái)內(nèi)容審核、源站IP推流和拉流的白名單設(shè)置、推流鑒權(quán)、拉流HTTPS校驗(yàn)防劫持等幾個(gè)方案,來保障內(nèi)容安全。針對(duì)類似世界杯賽事的版權(quán)內(nèi)容,阿里云也提供播放鑒權(quán)&二次鑒權(quán)、DRM對(duì)視頻本身鑒權(quán)、分域名封禁、區(qū)域限制等方案來防止盜播盜鏈。
監(jiān)控
架構(gòu)解決了穩(wěn)定性問題,并在安全方面也做了很多準(zhǔn)備之后,直播當(dāng)然也需要監(jiān)控,阿里云對(duì)于世界杯直播的監(jiān)控分以下三大部分。
第一是技術(shù)環(huán)境的監(jiān)控
包括直播中心、CDN每臺(tái)設(shè)備的CPU使用率、內(nèi)存、網(wǎng)絡(luò)、磁盤等,如果出現(xiàn)故障情況,就和前面的方案配合進(jìn)行自動(dòng)切換;如果出現(xiàn)異常、亞健康的狀態(tài),則會(huì)通過報(bào)警讓運(yùn)維人員快速定位問題和快速處理。
第二是應(yīng)用監(jiān)控
包括每個(gè)程序的進(jìn)程、端口、QPS壓力、直播延遲,與前面環(huán)境監(jiān)控的處理方式一樣,如果出現(xiàn)故障,就和切換機(jī)制聯(lián)動(dòng),如果出現(xiàn)異常則通過報(bào)警來人為處理。
第三是業(yè)務(wù)監(jiān)控
包括直播全鏈路監(jiān)控,下圖是一張比較復(fù)雜的直播業(yè)務(wù)的監(jiān)控圖,綠色代表正常,黃色可能會(huì)出現(xiàn)丟幀、丟包等問題出現(xiàn)的異常線路。點(diǎn)開每一條線,就可以看到?jīng)]路流在當(dāng)前時(shí)間下的狀態(tài)值,比如說時(shí)間戳一小時(shí)之內(nèi)是否連續(xù)、遞增和跳頻,避免客戶端兼容性問題引發(fā)的不好的用戶體驗(yàn)。

對(duì)于幀率的監(jiān)控,在視頻云中心進(jìn)行流合并的時(shí)候,我們實(shí)時(shí)地把不同的流合并成一個(gè),來達(dá)到抗抖動(dòng)的效果。下面四幅圖是同一時(shí)間同一路流的監(jiān)控,上面三路流合并成下面一路流,毛刺變少,結(jié)果更穩(wěn)定。

除此之外,系統(tǒng)還會(huì)針對(duì)服務(wù)端慢速比、客戶端卡頓率等數(shù)據(jù),進(jìn)行實(shí)時(shí)收集和監(jiān)控,通過和客戶端的聯(lián)合,實(shí)現(xiàn)質(zhì)量調(diào)優(yōu)。
除了以上高穩(wěn)定性的服務(wù)架構(gòu)、多維度安全策略以及全鏈路監(jiān)控以外,阿里視頻云也為用戶提供時(shí)移直播、智能剪輯、異地容災(zāi)、智能調(diào)度、秒開、碼率控制、50幀極清、高速通道、防盜鏈、云導(dǎo)播臺(tái)、廣告識(shí)別、ET字幕等能力。

相信護(hù)航過世界杯直播之后,阿里視頻云一定在活動(dòng)、賽事直播這個(gè)場景下沉淀了更多技術(shù),在未來為客戶創(chuàng)造更多價(jià)值,為用戶帶來更極致的觀看體驗(yàn)。
本文作者:樰籬
更多技術(shù)干貨敬請(qǐng)關(guān)注云棲社區(qū)知乎機(jī)構(gòu)號(hào):阿里云云棲社區(qū) - 知乎
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由財(cái)神資訊-領(lǐng)先的體育資訊互動(dòng)媒體轉(zhuǎn)載發(fā)布,如需刪除請(qǐng)聯(lián)系。