近年來,短視頻與直播業(yè)務的爆發(fā),也讓CDN行業(yè)迎來了新的發(fā)展機遇和挑戰(zhàn)。這些挑戰(zhàn)主要體現(xiàn)在運維上,可分為兩方面:一是出現(xiàn)故障時的響應速度,這需要CDN服務商能夠以最快的速度發(fā)現(xiàn)和處理故障。二是質(zhì)量的提升,視頻類客戶的卡頓率往往是評判各家CDN廠商服務質(zhì)量的首要標準,這要求服務方必須具備過硬的調(diào)優(yōu)能力,因此,快速分析感知細微的質(zhì)量變化、定位質(zhì)量變化的原因就至關(guān)重要。
目前,金山視頻云CDN的服務端天級日志量已近千億條,數(shù)據(jù)量近百T級別,這些數(shù)據(jù)是解決運維效率、提升服務質(zhì)量的關(guān)鍵。近日,在GOPS 2017全球運維大會上海站上,金山云大數(shù)據(jù)技術(shù)總監(jiān)徐寅斐就如何利用數(shù)據(jù)進行CDN的智能運維這個話題,分享了金山云的做法和思考。
金山云大數(shù)據(jù)技術(shù)總監(jiān)徐寅斐發(fā)表演講
利用數(shù)據(jù)構(gòu)建運維和服務質(zhì)量支撐體系
工欲善其事,必先利其器。數(shù)據(jù)是解決運維效率、運維自動化甚至智能化的核心,而要想充分利用已有的數(shù)據(jù)資產(chǎn),數(shù)據(jù)平臺的支撐就顯得至關(guān)重要。為了滿足目前和未來的需求,首先需要對現(xiàn)有的數(shù)據(jù)和使用方式進行分類:
現(xiàn)有數(shù)據(jù)可以分為四類。包括基礎監(jiān)控數(shù)據(jù)、探測數(shù)據(jù)、服務端日志、客戶端日志,這四類數(shù)據(jù)在接入難度、數(shù)據(jù)量級上各不相同,數(shù)據(jù)平臺需要統(tǒng)籌考慮所有數(shù)據(jù)的接入、傳輸、計算和存儲。
CDN數(shù)據(jù)分類及特點
運維對數(shù)據(jù)的使用,可以分為四個階段:數(shù)據(jù)支撐、分析支撐、決策支撐和預測支撐,每個階段對數(shù)據(jù)平臺有著不同的需求:數(shù)據(jù)支撐要求平臺能夠滿足對上述四類數(shù)據(jù)的計算和存儲需求,確保運維人員能夠及時獲取準確的數(shù)據(jù)指標。分析支撐要求平臺能夠及時響應各類即席查詢的需求,包括對原始日志的全鏈路分析,對于業(yè)務指標的多維分析等。決策支撐和預測支撐則要求平臺具備數(shù)據(jù)的強大后處理能力,包括對已存儲數(shù)據(jù)的建模、挖掘能力。
數(shù)據(jù)運維四個階段
金山視頻云大數(shù)據(jù)平臺架構(gòu)建設實踐
先說大數(shù)據(jù)平臺?;谝陨蠑?shù)據(jù)需求,金山視頻云大數(shù)據(jù)平臺在實踐中,通過不斷演進,最終形成了目前以Hadoop和Spark生態(tài)產(chǎn)品為基礎的架構(gòu)。平臺的數(shù)據(jù)傳輸采用的是Kafka,作為現(xiàn)今最主流的傳輸中間件,它出色的吞吐能力為第一層數(shù)據(jù)緩沖提供了保障。數(shù)據(jù)計算全部采用Spark,技術(shù)棧的精簡能夠保證開發(fā)效率和平臺穩(wěn)定性,而且Spark可提供足夠豐富的數(shù)據(jù)挖掘和機器學習庫保證數(shù)據(jù)的后處理。
在數(shù)據(jù)的前處理上,金山云采用的是實時流+離線流修補的經(jīng)典架構(gòu),實時流在一定精度的前提下,保證了數(shù)據(jù)的及時性,離線流保證了數(shù)據(jù)的最終完整性。此外,平臺還引入了邊緣計算,作用是在充分利用CDN節(jié)點分布式天然優(yōu)勢的同時,可大大降低中心數(shù)據(jù)平臺的壓力,提升了平臺的整體穩(wěn)定性。
金山視頻云大數(shù)據(jù)平臺架構(gòu)
對于一個數(shù)據(jù)平臺來說,最復雜的是數(shù)據(jù)存儲,不同的數(shù)據(jù)查詢和獲取需求決定了最終的存儲選型:對于查詢靈活性要求極大,數(shù)據(jù)量適中的數(shù)據(jù),金山云使用ElasticSearch + Kibana提供靈活的數(shù)據(jù)存儲與查詢服務。對于查詢模式相對固定、數(shù)據(jù)寫入量巨大的數(shù)據(jù),Druid是一個不錯的選擇。
CDN的全量原始日志,則會經(jīng)過ETL后以列存儲的方式存儲在HDFS上,可以通過SQL、代碼片段等多種方式對數(shù)據(jù)進行查詢分析。此外,整個數(shù)據(jù)平臺使用金山云自研的大數(shù)據(jù)產(chǎn)品KMR,它對金山云其他IaaS服務的天然支持提供了很多便利,如分布式對象存儲KS3,可以作為平臺存儲空間的擴充,重要的數(shù)據(jù)以及長期不用的冷數(shù)據(jù),都會定期自動備份到KS3中持久存儲。
金山視頻云大數(shù)據(jù)平臺采用多種技術(shù)
大數(shù)據(jù)平臺的運維實踐
基于這個大數(shù)據(jù)平臺,金山云開發(fā)了多套系統(tǒng)提升運維效率。第一個是報警系統(tǒng),大數(shù)據(jù)平臺承載了CDN所有業(yè)務報警數(shù)據(jù)的清洗、計算和決策生成,Spark對流式計算的支持保證了數(shù)據(jù)產(chǎn)生到報警整個過程能夠在1分鐘內(nèi)完成,保證及時發(fā)現(xiàn)問題,系統(tǒng)本身良好的水平擴展能力,也能夠滿足視頻云運維不斷變化的業(yè)務需求。
CDN業(yè)務報警的特點是種類多、維度多、報警閾值因地區(qū)運營商而異。報警規(guī)則和報警閾值的管理工作很復雜,為此,金山云的報警平臺中有一套專門用于閾值評估的離線分析系統(tǒng),針對所有指標的歷史數(shù)據(jù)、人為配置以及運維對報警的反饋信息,綜合評估出不同區(qū)域運營商的合理閾值,極大地降低了報警管理的難度。
第二個系統(tǒng)是CDN服務質(zhì)量的“觀象臺”——鷹眼平臺,它提供了50+業(yè)務指標、5+維度的服務質(zhì)量數(shù)據(jù)的查詢能力,可滿足日常運維和調(diào)優(yōu)工作中80%以上的數(shù)據(jù)獲取需求,并可場景化呈現(xiàn)故障處理、網(wǎng)絡鏈路質(zhì)量、大客戶服務質(zhì)量維護等多種常見運維工作。
鷹眼的數(shù)據(jù)需求繁雜,既提供全局服務質(zhì)量信息,也需要滿足不同域名、區(qū)域運營商、鏈路以及緩存狀態(tài)的細粒度查詢,甚至需要對這些維度進行任意組合。為了滿足這樣的查詢需求,鷹眼的服務質(zhì)量數(shù)據(jù)使用ElasticSearch作為底層存儲,在中等規(guī)模數(shù)據(jù)的寫入和聚合查詢方面的速度都很理想,文檔化的存儲方式也能滿足數(shù)據(jù)快速迭代更新的需求。同時,鷹眼數(shù)據(jù)的部分聚合被下放到節(jié)點上進行,這樣可以降低平臺的計算負載。
基于大數(shù)據(jù)平臺和產(chǎn)生的數(shù)據(jù),金山云CDN已能在包括調(diào)度、故障處理、質(zhì)量調(diào)優(yōu)在內(nèi)的很多場景中實現(xiàn)自動化。除了大數(shù)據(jù),接下來金山云還會在機器學習和人工智能領(lǐng)域進行運維智能化的探索。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!