CNTV總監(jiān)譚述剛
CNTV在世界杯的挑戰(zhàn)主要有兩項(xiàng),第一項(xiàng)是視頻類,因?yàn)橛幸粋€(gè)并發(fā)高峰的問(wèn)題(在2010年世界杯時(shí)用的是P2P平臺(tái),最高的一個(gè)并發(fā)是560萬(wàn)),CNTV當(dāng)時(shí)計(jì)劃是播AB路比賽(一個(gè)世界杯會(huì)有50、60臺(tái)攝像機(jī),當(dāng)時(shí)跟著球員和教練的是AB路)。這對(duì)視頻來(lái)講是一個(gè)挑戰(zhàn)。CNTV還有一個(gè)商城,設(shè)了一個(gè)獎(jiǎng)品,時(shí)間一到,會(huì)有大量的用戶來(lái)選,這是一個(gè)互動(dòng)上的挑戰(zhàn)。在針對(duì)阿里云包括服務(wù)器(ECS)、數(shù)據(jù)庫(kù)(RDS)、CDN、負(fù)載均衡(SLB)和存儲(chǔ)(OSS)進(jìn)行考察之后,CNTV感覺(jué)阿里云對(duì)世界杯是適合的。因?yàn)榘⒗镌铺嘀档檬褂玫牡胤?,例如服?wù)器監(jiān)控系統(tǒng)。利用CDN監(jiān)控系統(tǒng)可以計(jì)算出用戶量和做數(shù)據(jù)分析等,還有OSS監(jiān)控和RDS監(jiān)控等。
在用阿里云的過(guò)程中,CNTV首先發(fā)現(xiàn)ECS有實(shí)體機(jī)沒(méi)有的功能,比實(shí)體機(jī)可以更好地解決誤操作的問(wèn)題。
CNTV到云上,監(jiān)控系統(tǒng)的問(wèn)題怎么解決?這是SLB的監(jiān)控,SLB作為第一層來(lái)講,CNTV是要第一時(shí)間監(jiān)控的,因?yàn)橛辛诉@個(gè)才知道CNTV的服務(wù)是否正常。這是一次報(bào)警,CNTV當(dāng)時(shí)設(shè)置了一個(gè)指標(biāo),訪問(wèn)值只要超過(guò)6個(gè)指標(biāo),就會(huì)報(bào)警,這是一個(gè)真實(shí)的數(shù)據(jù),發(fā)生的時(shí)間是7月6號(hào)21時(shí),就這個(gè)報(bào)警來(lái)講,CNTV沒(méi)有特殊去處理。CNTV認(rèn)為這個(gè)功能一定要有,這次可能對(duì)CNTV的參照意義不大,但是這個(gè)功能非常大。
這是服務(wù)器的監(jiān)控,服務(wù)器監(jiān)控,CNTV以前在大賽期間都是用實(shí)體的設(shè)備去監(jiān)控,阿里云也提供了服務(wù)器的監(jiān)控。這是CDN的監(jiān)控,這是跟大家利益是切實(shí)相關(guān)的,當(dāng)然根據(jù)CDN監(jiān)控也能計(jì)算出來(lái)CNTV有多少用戶,所以這個(gè)CDN監(jiān)控是非常必要的,這個(gè)還有一個(gè)好處,就是CNTV一些簡(jiǎn)單的數(shù)據(jù)分析可以用它來(lái)做,包括用戶使用的哪些ISP。OSS的監(jiān)控,OSS監(jiān)控只能是作為一個(gè)參考,對(duì)CNTV帶說(shuō)意義不是特別大,因?yàn)榍懊嬗蠧DN,都已經(jīng)控制住了,這是CNTV非常高興控制住的。下面是RDS監(jiān)控,這是非常好的,還有公司是沒(méi)有RDS平臺(tái)的,但是有了這個(gè)監(jiān)控,很多內(nèi)容就可以在這個(gè)平臺(tái)上進(jìn)行。這個(gè)對(duì)小微企業(yè)來(lái)講,你只要使用了它這個(gè)東西,使你數(shù)據(jù)庫(kù)的水平達(dá)到大家差不多的水平。任何人來(lái)寫程序也好,做服務(wù)也好,很難有競(jìng)爭(zhēng)性得,CNTV可以通過(guò)RDS,把很多程序性的問(wèn)題找出來(lái)。
譚述剛用一個(gè)實(shí)際的例子解釋他為什么對(duì)RDS感情深厚。
6月份世界杯期間,有一天早晨CNTV接到一個(gè)報(bào)警:數(shù)據(jù)庫(kù)運(yùn)行100%了,CNTV會(huì)通過(guò)CDN查詢整個(gè)CPU利用率高的原因,發(fā)現(xiàn)了一個(gè)表結(jié)構(gòu),在這個(gè)表結(jié)構(gòu)里面看到了一個(gè)ID,這個(gè)ID是字符型,其實(shí)應(yīng)該是一個(gè)數(shù)字型的ID。當(dāng)時(shí)應(yīng)該對(duì)這個(gè)ID進(jìn)行整理,但是可能因?yàn)槌绦騿T或者其他的原因,所以造成了這個(gè)事件。這說(shuō)明,這個(gè)RDS作用是非常大的。譚述剛認(rèn)為一個(gè)非常好的架構(gòu)在數(shù)據(jù)庫(kù)上的負(fù)載不應(yīng)該太大,所以CNTV對(duì)性能要求更高。
CDN還滿足了CNTV單獨(dú)的安全性。因?yàn)镃NTV在做新媒體的時(shí)候,版權(quán)方對(duì)傳播地域是有要求的,你不能說(shuō)我買了世界杯的大陸轉(zhuǎn)播權(quán),在美國(guó)也能看到。阿里云的CDN能夠很好地解決這個(gè)問(wèn)題。
如前所述,CNTV在客戶端里面是有積分的,這也是CNTV的第一次嘗試,因?yàn)檫@個(gè)東西畢竟涉及到錢。CNTV在世界杯期間,海爾的兩萬(wàn)塊錢的空調(diào)就發(fā)了30多臺(tái),因?yàn)楠?jiǎng)品非常多,入門門檻也非常低。在2014年6月15日晚9點(diǎn),某用戶的積分突然多了1000萬(wàn)。出了這個(gè)問(wèn)題之后,CNTV就開(kāi)始分析問(wèn)題發(fā)生在哪里,后來(lái)發(fā)現(xiàn)CNTV犯的第一個(gè)錯(cuò)誤,日志沒(méi)有分割;再看,又找到了CNTV犯的第二個(gè)錯(cuò)誤,日志沒(méi)有記錄x-forward字段。這個(gè)時(shí)候CNTV就求助于阿里的同學(xué),因?yàn)檫@兩個(gè)錯(cuò)誤已經(jīng)犯下了,沒(méi)有辦法去彌補(bǔ)了,阿里的同學(xué)就把所有SLB的日志全部調(diào)出。然后CNTV大概知道用戶產(chǎn)生的時(shí)間是幾點(diǎn),然后根據(jù)日志去過(guò)濾,找到了這樣一條數(shù)據(jù),CNTV對(duì)這里面的數(shù)字沒(méi)有處理,所以多出了1000萬(wàn)。出了問(wèn)題之后,CNTV想了很多,因?yàn)槟愕目蛻舳吮仨氁茸?cè),必須要填寫手機(jī)號(hào)才能注冊(cè)的,所以CNTV是能找到用戶的手機(jī)號(hào)的。CNTV打這個(gè)用戶的手機(jī),當(dāng)時(shí)用戶說(shuō)好好,這個(gè)事情是我做的,我不會(huì)做的,但是他不告訴你是怎么做的。但是這個(gè)用戶說(shuō)話是不算數(shù)的,他在15號(hào)的凌晨又來(lái)了一次,他數(shù)據(jù)又提交了一次。所以CNTV就發(fā)現(xiàn),所有的東西都得靠自己,他的承諾是虛假的。
CDN的日志有多重要?CDN的日志有多大?CDN的日志怎么處理?這個(gè)時(shí)候就需要用到ODPS大數(shù)據(jù)平臺(tái)。CNTV的一些統(tǒng)計(jì)數(shù)據(jù),點(diǎn)播播放次數(shù)150481908(31天),SLB平均每天請(qǐng)求次數(shù)3000萬(wàn)次(單APP)。從譚述剛的演示可以看到CNTV整個(gè)世界杯期間的一些記錄,6月10日對(duì)APP服務(wù)器19個(gè)接口壓測(cè)驗(yàn)證,數(shù)據(jù)庫(kù)以及APP程序優(yōu)化后TPS 2W響應(yīng)50ms;6月13日世界杯的開(kāi)幕式,直播切換為AB鏡頭,當(dāng)天峰值流量4.65Gbps;6月22日出現(xiàn)了CDN峰值76.53Gbps,2.56W QPS,當(dāng)天pv 3.1億,UV 309W。商城換購(gòu),峰值18988QPS。