近年來(lái),短視頻與直播業(yè)務(wù)的爆發(fā),也讓CDN行業(yè)迎來(lái)了新的發(fā)展機(jī)遇和挑戰(zhàn)驶赏。這些挑戰(zhàn)主要體現(xiàn)在運(yùn)維上,可分為兩方面:一是出現(xiàn)故障時(shí)的響應(yīng)速度既鞠,這需要CDN服務(wù)商能夠以最快的速度發(fā)現(xiàn)和處理故障煤傍。二是質(zhì)量的提升,視頻類客戶的卡頓率往往是評(píng)判各家CDN廠商服務(wù)質(zhì)量的首要標(biāo)準(zhǔn)嘱蛋,這要求服務(wù)方必須具備過(guò)硬的調(diào)優(yōu)能力蚯姆,因此,快速分析感知細(xì)微的質(zhì)量變化洒敏、定位質(zhì)量變化的原因就至關(guān)重要龄恋。
目前,金山視頻云CDN的服務(wù)端天級(jí)日志量已近千億條凶伙,數(shù)據(jù)量近百T級(jí)別郭毕,這些數(shù)據(jù)是解決運(yùn)維效率、提升服務(wù)質(zhì)量的關(guān)鍵函荣。近日显押,在GOPS 2017全球運(yùn)維大會(huì)上海站上,金山云大數(shù)據(jù)技術(shù)總監(jiān)徐寅斐就如何利用數(shù)據(jù)進(jìn)行CDN的智能運(yùn)維這個(gè)話題傻挂,分享了金山云的做法和思考乘碑。
金山云大數(shù)據(jù)技術(shù)總監(jiān)徐寅斐發(fā)表演講
利用數(shù)據(jù)構(gòu)建運(yùn)維和服務(wù)質(zhì)量支撐體系
工欲善其事,必先利其器金拒。數(shù)據(jù)是解決運(yùn)維效率兽肤、運(yùn)維自動(dòng)化甚至智能化的核心,而要想充分利用已有的數(shù)據(jù)資產(chǎn)绪抛,數(shù)據(jù)平臺(tái)的支撐就顯得至關(guān)重要资铡。為了滿足目前和未來(lái)的需求,首先需要對(duì)現(xiàn)有的數(shù)據(jù)和使用方式進(jìn)行分類:
現(xiàn)有數(shù)據(jù)可以分為四類幢码。包括基礎(chǔ)監(jiān)控?cái)?shù)據(jù)笤休、探測(cè)數(shù)據(jù)、服務(wù)端日志蛤育、客戶端日志宛官,這四類數(shù)據(jù)在接入難度、數(shù)據(jù)量級(jí)上各不相同瓦糕,數(shù)據(jù)平臺(tái)需要統(tǒng)籌考慮所有數(shù)據(jù)的接入底洗、傳輸、計(jì)算和存儲(chǔ)咕娄。
CDN數(shù)據(jù)分類及特點(diǎn)
運(yùn)維對(duì)數(shù)據(jù)的使用亥揖,可以分為四個(gè)階段:數(shù)據(jù)支撐、分析支撐圣勒、決策支撐和預(yù)測(cè)支撐费变,每個(gè)階段對(duì)數(shù)據(jù)平臺(tái)有著不同的需求:數(shù)據(jù)支撐要求平臺(tái)能夠滿足對(duì)上述四類數(shù)據(jù)的計(jì)算和存儲(chǔ)需求,確保運(yùn)維人員能夠及時(shí)獲取準(zhǔn)確的數(shù)據(jù)指標(biāo)圣贸。分析支撐要求平臺(tái)能夠及時(shí)響應(yīng)各類即席查詢的需求挚歧,包括對(duì)原始日志的全鏈路分析,對(duì)于業(yè)務(wù)指標(biāo)的多維分析等吁峻。決策支撐和預(yù)測(cè)支撐則要求平臺(tái)具備數(shù)據(jù)的強(qiáng)大后處理能力滑负,包括對(duì)已存儲(chǔ)數(shù)據(jù)的建模、挖掘能力用含。
數(shù)據(jù)運(yùn)維四個(gè)階段
金山視頻云大數(shù)據(jù)平臺(tái)架構(gòu)建設(shè)實(shí)踐
先說(shuō)大數(shù)據(jù)平臺(tái)矮慕。基于以上數(shù)據(jù)需求啄骇,金山視頻云大數(shù)據(jù)平臺(tái)在實(shí)踐中痴鳄,通過(guò)不斷演進(jìn),最終形成了目前以Hadoop和Spark生態(tài)產(chǎn)品為基礎(chǔ)的架構(gòu)缸夹。平臺(tái)的數(shù)據(jù)傳輸采用的是Kafka痪寻,作為現(xiàn)今最主流的傳輸中間件,它出色的吞吐能力為第一層數(shù)據(jù)緩沖提供了保障明未。數(shù)據(jù)計(jì)算全部采用Spark槽华,技術(shù)棧的精簡(jiǎn)能夠保證開發(fā)效率和平臺(tái)穩(wěn)定性,而且Spark可提供足夠豐富的數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)庫(kù)保證數(shù)據(jù)的后處理趟妥。
在數(shù)據(jù)的前處理上猫态,金山云采用的是實(shí)時(shí)流+離線流修補(bǔ)的經(jīng)典架構(gòu),實(shí)時(shí)流在一定精度的前提下披摄,保證了數(shù)據(jù)的及時(shí)性亲雪,離線流保證了數(shù)據(jù)的最終完整性。此外疚膊,平臺(tái)還引入了邊緣計(jì)算义辕,作用是在充分利用CDN節(jié)點(diǎn)分布式天然優(yōu)勢(shì)的同時(shí),可大大降低中心數(shù)據(jù)平臺(tái)的壓力寓盗,提升了平臺(tái)的整體穩(wěn)定性灌砖。
金山視頻云大數(shù)據(jù)平臺(tái)架構(gòu)
對(duì)于一個(gè)數(shù)據(jù)平臺(tái)來(lái)說(shuō)璧函,最復(fù)雜的是數(shù)據(jù)存儲(chǔ),不同的數(shù)據(jù)查詢和獲取需求決定了最終的存儲(chǔ)選型:對(duì)于查詢靈活性要求極大基显,數(shù)據(jù)量適中的數(shù)據(jù)蘸吓,金山云使用ElasticSearch + Kibana提供靈活的數(shù)據(jù)存儲(chǔ)與查詢服務(wù)。對(duì)于查詢模式相對(duì)固定撩幽、數(shù)據(jù)寫入量巨大的數(shù)據(jù)库继,Druid是一個(gè)不錯(cuò)的選擇。
CDN的全量原始日志窜醉,則會(huì)經(jīng)過(guò)ETL后以列存儲(chǔ)的方式存儲(chǔ)在HDFS上宪萄,可以通過(guò)SQL、代碼片段等多種方式對(duì)數(shù)據(jù)進(jìn)行查詢分析榨惰。此外拜英,整個(gè)數(shù)據(jù)平臺(tái)使用金山云自研的大數(shù)據(jù)產(chǎn)品KMR,它對(duì)金山云其他IaaS服務(wù)的天然支持提供了很多便利琅催,如分布式對(duì)象存儲(chǔ)KS3聊记,可以作為平臺(tái)存儲(chǔ)空間的擴(kuò)充,重要的數(shù)據(jù)以及長(zhǎng)期不用的冷數(shù)據(jù)恢暖,都會(huì)定期自動(dòng)備份到KS3中持久存儲(chǔ)排监。
金山視頻云大數(shù)據(jù)平臺(tái)采用多種技術(shù)
大數(shù)據(jù)平臺(tái)的運(yùn)維實(shí)踐
基于這個(gè)大數(shù)據(jù)平臺(tái),金山云開發(fā)了多套系統(tǒng)提升運(yùn)維效率杰捂。第一個(gè)是報(bào)警系統(tǒng)舆床,大數(shù)據(jù)平臺(tái)承載了CDN所有業(yè)務(wù)報(bào)警數(shù)據(jù)的清洗、計(jì)算和決策生成嫁佳,Spark對(duì)流式計(jì)算的支持保證了數(shù)據(jù)產(chǎn)生到報(bào)警整個(gè)過(guò)程能夠在1分鐘內(nèi)完成挨队,保證及時(shí)發(fā)現(xiàn)問(wèn)題,系統(tǒng)本身良好的水平擴(kuò)展能力蒿往,也能夠滿足視頻云運(yùn)維不斷變化的業(yè)務(wù)需求盛垦。
CDN業(yè)務(wù)報(bào)警的特點(diǎn)是種類多、維度多瓤漏、報(bào)警閾值因地區(qū)運(yùn)營(yíng)商而異腾夯。報(bào)警規(guī)則和報(bào)警閾值的管理工作很復(fù)雜,為此蔬充,金山云的報(bào)警平臺(tái)中有一套專門用于閾值評(píng)估的離線分析系統(tǒng)蝶俱,針對(duì)所有指標(biāo)的歷史數(shù)據(jù)、人為配置以及運(yùn)維對(duì)報(bào)警的反饋信息饥漫,綜合評(píng)估出不同區(qū)域運(yùn)營(yíng)商的合理閾值榨呆,極大地降低了報(bào)警管理的難度。
第二個(gè)系統(tǒng)是CDN服務(wù)質(zhì)量的“觀象臺(tái)”——鷹眼平臺(tái)庸队,它提供了50+業(yè)務(wù)指標(biāo)积蜻、5+維度的服務(wù)質(zhì)量數(shù)據(jù)的查詢能力闯割,可滿足日常運(yùn)維和調(diào)優(yōu)工作中80%以上的數(shù)據(jù)獲取需求,并可場(chǎng)景化呈現(xiàn)故障處理竿拆、網(wǎng)絡(luò)鏈路質(zhì)量纽谒、大客戶服務(wù)質(zhì)量維護(hù)等多種常見(jiàn)運(yùn)維工作。
鷹眼的數(shù)據(jù)需求繁雜如输,既提供全局服務(wù)質(zhì)量信息,也需要滿足不同域名央勒、區(qū)域運(yùn)營(yíng)商不见、鏈路以及緩存狀態(tài)的細(xì)粒度查詢,甚至需要對(duì)這些維度進(jìn)行任意組合崔步。為了滿足這樣的查詢需求稳吮,鷹眼的服務(wù)質(zhì)量數(shù)據(jù)使用ElasticSearch作為底層存儲(chǔ),在中等規(guī)模數(shù)據(jù)的寫入和聚合查詢方面的速度都很理想井濒,文檔化的存儲(chǔ)方式也能滿足數(shù)據(jù)快速迭代更新的需求灶似。同時(shí),鷹眼數(shù)據(jù)的部分聚合被下放到節(jié)點(diǎn)上進(jìn)行瑞你,這樣可以降低平臺(tái)的計(jì)算負(fù)載酪惭。
基于大數(shù)據(jù)平臺(tái)和產(chǎn)生的數(shù)據(jù),金山云CDN已能在包括調(diào)度者甲、故障處理春感、質(zhì)量調(diào)優(yōu)在內(nèi)的很多場(chǎng)景中實(shí)現(xiàn)自動(dòng)化。除了大數(shù)據(jù)虏缸,接下來(lái)金山云還會(huì)在機(jī)器學(xué)習(xí)和人工智能領(lǐng)域進(jìn)行運(yùn)維智能化的探索鲫懒。