華為云AIOps實踐全面解析
在如今的云計算時代,計算的云化和分布式應用給運維工作帶來了很大的挑戰,讓人海戰術在運維面前失靈,所以基于算法和機器學習的智能運維(AIOps)必將是業務運維場景下的大勢所趨。業界有個說法,公有云***的競爭是基于運維能力的綜合競爭。現在各大公有云服務商也都在積極探索AIOps,此次我們采訪了華為云應用運維域專家,為我們揭秘華為云的智能運維實踐。
華為云的運維技術演進
華為云很早就在實踐智能運維了,包括最早的IaaS運維,以及近幾年的PaaS運維、服務洞察。只是之前的叫法不是現在談論的“智能運維”,而是智能監控、應用分析、智能分析、自動診斷與調優、自動化運維等,華為云的AIOps在SRE和云服務中都有應用和實踐。
前幾年,華為云主要聚焦在企業云、私有云、混合云等建設,運維能力建設圍繞數據中心,在統一運維架構、運維研發化的基礎上,重點發展運維的標準化、自動化和智能化。
2017年華為Cloud BU成立,正式進入公有云市場。在這個階段,SRE在統一運維架構基礎上,整合了各種運維工具,形成了公有云管理面的統一運維。與此同時APM、AOM、CES等云服務直接面向云租戶提供應用運維能力。
華為云專家華為云專家認為,傳統運維和AIOps是緊密聯系的,在數據分析層面二者也有些重疊區域,并且AIOps也依賴傳統運維的數據基礎、計算處理等。二者之間的區別主要體現在數據規模和實時性上。當云實體的規模擴大、應用棧的多樣化、應用架構的容器化、微服務化后,運維對用戶體驗管理和業務高可用性越來越不可知性。而云服務對監測的實時性、反饋控制的及時性、故障預測、故障自愈等要求也是AIOps所擅長的。
如何使用AI利器
在華為云專家看來,針對不同的產品或者項目,構建AIOps所依賴的關鍵技術有所不同,比如企業資源故障預測項目與公有云上的應用性能監測服務就有比較大的區別。以廣義的APM為IT運維的范圍,一般涉及到以下關鍵點:
- 監測對象的完整建模:各層物理實體、虛擬實體與應用服務的映射關系;
- 監測數據的采集與預處理:比如元數據是否完備,海量數據的高效訪問與擴展等;
- 子領域的算法選擇:合理劃分出問題域的邊界,結合領域知識篩選或設計出合適的算法,并予與驗證。
在華為云的實踐中,AI技術主要應用在以下幾個方面:
- 預測的智能化
- 診斷的智能化
- 自愈的智能化
- Agent的智能化
上面幾個方面涵蓋了運維閉環模型:監測感知 – 分析洞察 – 優化控制。
以傳統運維中最常見的挑戰——告警風暴——為例,靜態閾值、多段式組合閾值、基線化閾值等基于統計計算的方法都難以滿足應用運維的要求了。另一方面,云化后的應用所涉及計算節點,服務endpoint、指標等更多,不可能完全依靠人工來設置。這時候基于動態閾值或時序數據行為模式分析的AI方法就派上用場了。
所以AI技術首先適合用于復雜的場景中,尤其是各種可能組合數量遠遠超越了人力所能企及的范圍,還比如復合因素下的趨勢預測(磁盤壽命、性能指標、容量)、故障定界定位、根因分析等。
其次AI技術在一些時效性要求高的場景中得到應用,比如基于指標、日志、事件的告警。應用或者系統出現異常后,是需要***時間通知到運維值守人員的。還比如云服務的彈性伸縮(auto-scaling),是需要根據一些監測指標、服務模型、規則以及算法智能地及時做出適當調整動作。
除了中心化的AI技術應用外,數據采集端側(Agent)的智能化也是一個重要發力領域,也包括IoT場景下的邊緣節點(edge node)。在萬物感知、萬物互聯、萬物智能的趨勢下,我們可以把訓練好的模型發放到需要的Agent端。Agent智能化可以解決端側更高的響應實時性要求,減少數據上傳的網絡帶寬消耗、存儲成本、計算成本等。
下圖是華為云面向租戶的立體運維平臺,實際上是一個基于應用運維生態的大解決方案。這種統一、開放的云運維平臺可以支撐華為云的底座運維、上百種云服務的SLA保障和運維,幫助客戶監測管理部署在華為公有云上的業務應用。
在運維工具和平臺的構建過程中,華為云大量采用了開源項目,比如ELK、調用鏈有關的PinPoint、Zipkin、OpenTracing等規范、StatsD和Prometheus等數據接口規范、Spark、TensorFlow、MXNet等。
數據的收集與處理
大數據是AI的黑土地,前提是數據量要足夠多。華為云針對運維目的,主要收集下面這些性能數據:
- 指標數據(metrics):既有IaaS層資源指標,也有PaaS層應用資源指標,客戶所用云服務業務指標、客戶業務自定義指標(由客戶根據自身需求主動上報)。
- 日志數據(logs):客戶指定的業務和各種中間件的運行日志
- 調用鏈數據(traces):客戶通過非侵入式方法獲得的調用鏈數據,或者客戶開發應用在代碼中引入SDK或者直接上報的調用鏈數據。
- 事件及告警(events&alerts):客戶應用主動上報的各種事件和直接告警信息,還有根據預定義規則產生的事件和告警。
- 網絡包數據(packets):主要是虛擬網絡、容器網絡中面向應用的網絡性能數據。
這些數據根據自身特點,選擇不同的存儲方式,比如Cassandra、HDFS、ElasticSearch、GaussDB等。具體處理主要包括:
- 流式計算:主要用于指標、日志的告警,調用鏈分析;
- 離線計算:特定時間周期內的聚合計算、關聯分析、模型訓練等;
- 內存計算:為部分實時性要求高的算法所用。
區別于以前的運維,當前把很多指標數據中的一些維度屬性和IaaS、PaaS層的基礎信息結合起來形成面向應用的元數據集,和傳統的CMDB有些類似,但粒度更細。其目的是為面向應用的數據分析提供各種可能的“關系網”。
AIOps落地之難點
AIOps面臨的技術挑戰主要有大量數據的獲取、結合專業領域知識的算法驗證、多種算法組合應用、新方法的探索以及服務化的工程化難度。
有了數據后,針對特定問題域去驗證或者創新算法就需要領域專家和算法專家通力合作,找到合適的方法或者方法組合是很有挑戰性的。華為云在彈性伸縮算法、事務黑盒分析、基于異常檢測的智能告警和調用鏈洞察分析等方面采用機器學習進行了探索。
- 面向應用SLA實現容器的彈性伸縮,除了支持指標預定義條件的scaling外,還研究實現了基于強化機器學習算法的Auto-Scaling,為復雜的大規模應用提供了更智能選擇。
- 在利用網絡包分析推導應用調用關系及性能的BlackBox分析領域,經過理論分析和原型推導驗證,華為云嘗試過很多創新,***利用Hierarchical Clustering實現了服務間的因果路徑推導,準確率基本達到了90~95%以上。分析結果以傳統應用拓撲數據格式輸出,展示效果近似于Whitebox方法得到的應用拓撲,可以感知整個應用的性能態勢和識別性能瓶頸,對一些擁有legacy IT資產的客戶監測需求特別適用。
- 調用鏈是云上應用性能診斷的重要一環。從調用鏈中先解析feature,利用聚類方法發現模式,針對每類事務做分鐘級聚合,結合移位環算法實現10分鐘的統計聚合,***實現對事務的“好”與“壞”的智能判斷。Dashboard上采用heat map和histogram形式予以展示和引導,提供與人友好的應用性能直觀洞察能力。
AIOps:讓AI成為得力的助手
盡管在一些子領域或者單點技術上AIOps獲得了一些進展,運維域AIOps還有很大的空間有待發展,離真正做到無人值守、NoOps還有很大的現實差距。比如復雜大系統中智能RCA分析、可信自愈能力、面向機器理解的無監督學習、智能化下沉到端側等都有待業界共同努力。
華為云專家認為,IT運維是個很大的范疇,完全不用人工運維,即無人值守只會存在某些特定的小場景下。而從整個系統來看,一定需要人來做更高階的工作,參與者也不會只限于操作者或者管理員,還會涉及DevOps、業務主管等。
這是一個融合的世界,真正的有機系統,非黑即白的界線會越來越模糊,未來世界也一定是人主導,而不會是機器主宰的。在應用運維領域,人不會被AI簡單取代,而是利用AI輔助人類做那些自己不擅長或者不愿意做的事情。
據了解,2018華為全聯接大會將于10月份在上海召開,屆時將首發華為AI戰略和全棧全場景的解決方案,并攜合作伙伴帶來更多諸如“秦渲云”這樣AI、云、大數據、5G、IoT、視頻等在各行業的創新與實踐,惠及更多開發者人群,“+智能,見未來”我們拭目以待。