宜信正式開源其AIOps落地三大利器
宜信技術(shù)研發(fā)中心在CNUTCon全球運維技術(shù)大會上宣布正式開源支撐AIOps 的三大利器:UAVStack, Wormhole, DBus.
不斷開放開源技術(shù),推動技術(shù)共同成長是宜信技術(shù)生態(tài)的目標(biāo)之一。包括正式開源的UAVStack,Wormhole,DBus等在內(nèi),已經(jīng)開放七個系列的軟件技術(shù)。
宜信開源軟件系列
UAVStack是智能化服務(wù)技術(shù)棧,是研發(fā)運維一體化的解決方案,開源系列包括全維監(jiān)控(UAV.Monitor),應(yīng)用性能管理(UAV.APM),服務(wù)治理(UAV.ServiceGovern),微服務(wù)計算(UAV.MSCP)。其中,UAV.Monitor+APM為智能運維采集全維監(jiān)控數(shù)據(jù),是一站式的全維監(jiān)控+應(yīng)用運維解決方案。
DBus專注于數(shù)據(jù)的收集及實時數(shù)據(jù)流計算,通過簡單靈活的配置,以無侵入的方式對源端數(shù)據(jù)進行采集,經(jīng)過轉(zhuǎn)換處理后成為統(tǒng)一JSON的數(shù)據(jù)格式(UMS),提供給不同數(shù)據(jù)使用方訂閱和消費。
此外,DBus還提供以下特性:
1. 多種數(shù)據(jù)源支持,海量數(shù)據(jù)實時傳輸
2. 初始加載和獨立加載
3. 統(tǒng)一標(biāo)準(zhǔn)化消息傳輸協(xié)議,可靠多路消息訂閱分發(fā)
4. 支持分表數(shù)據(jù)匯集
DBus技術(shù)架構(gòu)
Wormhole是一個SPAAS(Stream Processing as a Service)平臺解決方案,面向大數(shù)據(jù)項目的開發(fā),運維以及管理人員,致力于簡化和統(tǒng)一開發(fā)管理流程。運維是典型的大數(shù)據(jù)應(yīng)用領(lǐng)域,是機器學(xué)習(xí)的有力支撐,尤其是針對流式實時和流式準(zhǔn)實時數(shù)據(jù)處理場景。
Wormhole技術(shù)架構(gòu)
智能運維的自研之路
Gartner定義了基于算法的運維(ITOA),算法即運維,將算法運用運維領(lǐng)域。實際上我們在自動化運維體系中已經(jīng)將算法落地到DevOps工具鏈中,日益興盛的人工智能技術(shù),讓我們意識到賦予系統(tǒng)“智能化”是大趨勢。我們對AIOps的解讀是:AIOps正是將人工智能技術(shù)應(yīng)用到IT運維領(lǐng)域,幫助變革運維模式,提升效率和創(chuàng)造現(xiàn)實價值的“工程化”過程,也是DevOps的進化方向。它會成為
1. 運維管理的成員:協(xié)調(diào)人與系統(tǒng),不是被動的工具,而是直接參與運維的“助手”
2. 業(yè)務(wù)運營支持的成員:協(xié)調(diào)人與業(yè)務(wù),參與運營的“助手”
3. 業(yè)務(wù)與系統(tǒng)的“全知”者:協(xié)調(diào)業(yè)務(wù)與系統(tǒng),管理系統(tǒng),支撐業(yè)務(wù)
落地方案
宜信的AIOps平臺是以任務(wù)機器人為中心,利用大數(shù)據(jù)平臺實現(xiàn)機器學(xué)習(xí)和統(tǒng)計模型的處理,與DevOps工具鏈深度集成。可從幾個層面來解讀這個架構(gòu):
DevOps工具鏈為任務(wù)機器人HIT的知識圖譜構(gòu)建提供了高質(zhì)量的原始數(shù)據(jù)
任務(wù)機器人HIT的核心能力來源于特定領(lǐng)域的知識圖譜和計算模型。目前我們的訓(xùn)練領(lǐng)域包括系統(tǒng)API模型,個性化交流上下文,服務(wù)拓?fù)洌瑘?zhí)行計劃,問題診斷等。知識圖譜是實現(xiàn)認(rèn)知關(guān)聯(lián)的核心技術(shù),而如何自動化構(gòu)建知識圖譜是關(guān)鍵的關(guān)鍵,成熟的DevOps工具鏈可以為自動化構(gòu)建知識圖譜提供高質(zhì)量的原始數(shù)據(jù)。
全維監(jiān)控UAV為任務(wù)機器人HIT的模型訓(xùn)練提供了全面維度的原始數(shù)據(jù)
在智能運維體系中,UAV采集的全維度監(jiān)控數(shù)據(jù)是機器學(xué)習(xí)的原始數(shù)據(jù)來源。全維度監(jiān)控數(shù)據(jù)覆蓋基礎(chǔ)設(shè)施性能,應(yīng)用/服務(wù)性能,日志,調(diào)用鏈,線程棧,客戶端體驗,業(yè)務(wù)指標(biāo),應(yīng)用畫像,服務(wù)圖譜。
數(shù)據(jù)總線DBus持續(xù)的,自適應(yīng)的將全維監(jiān)控數(shù)據(jù)導(dǎo)入大數(shù)據(jù)存儲
全維度的監(jiān)控數(shù)據(jù)還不能直接使用這些數(shù)據(jù)來做機器學(xué)習(xí)。其原因是由于它們的存儲和查詢需求是根據(jù)實時監(jiān)控領(lǐng)域的需要來定義的,因此它們有以下特點:
1. 存儲在不同的存儲源。例如服務(wù)畫像數(shù)據(jù)存儲在MongoDB,應(yīng)用日志和調(diào)用鏈存儲在Elastic Search中,應(yīng)用性能指標(biāo)和基礎(chǔ)性能指標(biāo)數(shù)據(jù)存在RocketMQ中等;
2. 有不同的schema定義。例如BIN日志格式,JSON格式,Plain日志格式,性能指標(biāo)的schema與調(diào)用鏈的schema是不同的。
3. 不同的變更策略。例如服務(wù)畫像數(shù)據(jù)是根據(jù)應(yīng)用升級不定期變化的,日志數(shù)據(jù)也可能是這樣。
DBus正是解決這三個問題的良方。
1. 能夠支持多種數(shù)據(jù)源,只需通過配置就可實現(xiàn)無侵入對接。
2. 能夠?qū)⒉煌母袷睫D(zhuǎn)換成標(biāo)準(zhǔn)格式(UMS格式)。
3. 有自動適應(yīng)的能力,匹配這些類型和格式的變化。
大數(shù)據(jù)處理Wormhole針對目標(biāo)場景,基于全維監(jiān)控數(shù)據(jù)進行機器學(xué)習(xí)和統(tǒng)計模型處理
Wormhole是任務(wù)機器人的計算模型生產(chǎn)者。Wormhole基于Spark,既可接入Kafka在線實效數(shù)據(jù)進行流式處理,也可接入HDFS離線歷史數(shù)據(jù)進行批量處理。Wormhole不光支持落地多Sink,還支持流上處理,還可以在落HBase之前流上做一些數(shù)據(jù)清洗擴展等操作。目前我們的任務(wù)機器人HIT的訓(xùn)練主題“問題診斷”的計算模型都是由Wormhole來實施訓(xùn)練,實際生產(chǎn)過程中會使用機器學(xué)習(xí)和某些經(jīng)典統(tǒng)計模型,主要的有:
1. 時序數(shù)據(jù)的趨勢預(yù)測模型:可以根據(jù)過去若干天來預(yù)測未來一段時間某重要指標(biāo)的趨勢走向。
2. 指標(biāo)的關(guān)聯(lián)組合模型:識別出哪些指標(biāo)組合是判斷異常的充分條件。
3. 組合指標(biāo)的異常點識別模型:組合指標(biāo)在時序上異常點的自動判別。
4. 問題節(jié)點的根源分析模型:跨多節(jié)點的異常行為關(guān)聯(lián)性識別模型。
任務(wù)機器人HIT通過API模型實施執(zhí)行計劃
任務(wù)機器人與普通系統(tǒng)的另一個重要區(qū)別是:普通系統(tǒng)可以看成是通過編碼來“機械”的完成某種事,就系統(tǒng)本身而言,它并不理解“我在做什么”。而任務(wù)機器人是以目標(biāo)驅(qū)動的,它根據(jù)API模型以及其他認(rèn)知模型(知識圖譜)來生成執(zhí)行計劃,并使用API模型來實施執(zhí)行計劃,執(zhí)行計劃的本質(zhì)是對DevOps系統(tǒng)API的調(diào)用。這樣的應(yīng)用場景是很多的,例如讓任務(wù)機器人去做系統(tǒng)上線,線上巡檢,協(xié)助問題處理,甚至支持運營協(xié)作等。