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