近年來,短視頻與直播業(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ì)量變化的原因就至關重要。
目前,金山視頻云CDN的服務端天級日志量已近千億條,數(shù)據(jù)量近百T級別,這些數(shù)據(jù)是解決運維效率、提升服務質(zhì)量的關鍵。近日,在GOPS 2017全球運維大會上海站上,金山云大數(shù)據(jù)技術總監(jiān)徐寅斐就如何利用數(shù)據(jù)進行CDN的智能運維這個話題,分享了金山云的做法和思考。
金山云大數(shù)據(jù)技術總監(jiān)徐寅斐發(fā)表演講
利用數(shù)據(jù)構建運維和服務質(zhì)量支撐體系
工欲善其事,必先利其器。數(shù)據(jù)是解決運維效率、運維自動化甚至智能化的核心,而要想充分利用已有的數(shù)據(jù)資產(chǎn),數(shù)據(jù)平臺的支撐就顯得至關重要。為了滿足目前和未來的需求,首先需要對現(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ù)平臺架構建設實踐
先說大數(shù)據(jù)平臺。基于以上數(shù)據(jù)需求,金山視頻云大數(shù)據(jù)平臺在實踐中,通過不斷演進,最終形成了目前以Hadoop和Spark生態(tài)產(chǎn)品為基礎的架構。平臺的數(shù)據(jù)傳輸采用的是Kafka,作為現(xiàn)今最主流的傳輸中間件,它出色的吞吐能力為第一層數(shù)據(jù)緩沖提供了保障。數(shù)據(jù)計算全部采用Spark,技術棧的精簡能夠保證開發(fā)效率和平臺穩(wěn)定性,而且Spark可提供足夠豐富的數(shù)據(jù)挖掘和機器學習庫保證數(shù)據(jù)的后處理。
在數(shù)據(jù)的前處理上,金山云采用的是實時流+離線流修補的經(jīng)典架構,實時流在一定精度的前提下,保證了數(shù)據(jù)的及時性,離線流保證了數(shù)據(jù)的最終完整性。此外,平臺還引入了邊緣計算,作用是在充分利用CDN節(jié)點分布式天然優(yōu)勢的同時,可大大降低中心數(shù)據(jù)平臺的壓力,提升了平臺的整體穩(wěn)定性。
金山視頻云大數(shù)據(jù)平臺架構
對于一個數(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ù)據(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ù),接下來金山云還會在機器學習和人工智能領域進行運維智能化的探索。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!