發布時(shí)間(jiān):2019-05-16
我們生(shēng)活在一(yī)個(gè)數(shù)字化(huà)的(de)社會(huì)中,而運維則是(shì)這(zhè)個(gè)數(shù)字社會(h>uì)的(de)一(yī)個(gè)基礎設施級别的(de)技(jì)術(shù)。
運維做(zuò)得(de)不(bù)好(hǎo),各行(xíng)各業(yè),無論是(shì)金(jīn)融、電(diàn)信、能(néng)源、工(gōng)業(£yè)制(zhì)造、互聯網、物(wù)聯網,都(dōu)不(bù)能(néng)高(gāo)效、穩定、可(kě)靠地(dì)運轉。
既然運維這(zhè)麽重要(yào),為(wèi)什(shén)麽還(hái)常出現(xiàn)各種各樣的(de≤)、甚至影(yǐng)響非常大(dà)的(de)故障呢(ne)?(見(jiàn)下(xià)圖)。
本質原因是(shì)我們現(xiàn)在遇到(dào)了(le)一(yī)個(gè)非常大(dà)的(✔de)矛盾。
這(zhè)個(gè)矛盾就(jiù)是(shì)當前運維所大(dà)量依賴的(de)人(rén)力決策已經無法應對(duì)當前運維所面臨的(de)挑戰(見(jiàn)下(xià)圖)。
随著(zhe)互聯網、移動互聯網迅猛發展,用(yòng)戶越來(lái)越挑剔、對(duì)應用(yòng)軟件(jiàn)的(de)用(yòng)戶體(tǐ)驗要(yào)求越來(l™ái)越高(gāo)。 而我們知(zhī)道(dào),應用(yòng)軟件(jiàn)都(dōu)是(shì)建立在一(yī)個(gè)龐大(dà)、複雜(zá)、跨協議↕(yì)層的(de)大(dà)型分(fēn)布式系統之上(shàng)的(de)。
而這(zhè)個(gè)分(fēn)布式系統的(de)技(jì)術(shù)、軟件(jiàn)、配置通(tōn™g)常會(huì)不(bù)斷快(kuài)速地(dì)演變; 其軟硬件(jiàn)難以避免會(huì)發生(shēng)故障、Bug, 變更;
用(yòng)戶流量會(huì)發生(shēng)不(bù)可(kě)預知(zhī)的(de)變化(huà),甚至會(huì)發生(shēng)安全攻擊事(shì)件(jiàn), 而上(shàng)述趨勢有(yǒu)愈演愈烈之勢。
盡管各類運維監控工(gōng)具使得(de)系統運行(xíng)狀态的(de)可(kě)見(jiàn)度有(yǒu)較大(dà)提升,但(dàn)是(shìΩ)當遇到(dào)運維故障時(shí),面對(duì)海(hǎi)量監控數(shù)據和(hé)龐大(dà)負責分(fēn)布式系統,仍依賴運維人(rén)員(yuán)在高↕(gāo)壓下(xià)人(rén)力做(zuò)出迅速、準确的(de)運維決策。這(zhè)顯然是(shì)不(bù)現(xiàn)實的(de)。
也(yě)即人(rén)力運維決策已經無法應對(duì)當前的(de)運維挑戰。
這(zhè)導緻我們的(de)運維人(rén)員(yuán)的(de)工(gōng)作(zuò)生(shēng)活可(kě)以說(shuō)是(shì)處于δ水(shuǐ)深火(huǒ)熱(rè)之中, “人(rén)少(shǎo)、事(shì)多(duō),救火(huǒ)、背鍋”,7*24小(xiǎo)時(shí)時(shí)刻準備救火(huǒ)。
有(yǒu)運維人(rén)員(yuán)自(zì)己做(zuò)的(de)打油詩為(wèi)證(見(jiàn)下(xià)圖)。
而我們解決上(shàng)述核心矛盾的(de)思路(lù)就(jiù)是(shì)逐漸減少(shǎo)人(rén)力在運維決策中所占的(de)比例,逐漸增加人(rén)工(gōng&)智能(néng)在運維決策中的(de)比例,最終實現(xiàn)無人(rén)運維 (見(jiàn)下(xià)圖)。
這(zhè)就(jiù)像交通(tōng)工(gōng)具所經曆的(de)變革一(yī)樣:
起初交通(tōng)工(gōng)具要(yào)靠人(rén)力驅動,之後能(néng)夠做(zuò)到(dào)自(zì)動驅動,但(dàn)還(hái)需•要(yào)做(zuò)大(dà)量的(de)人(rén)力決策(每公裡(lǐ)駕駛需要(yào)人(rén)力決策100次以上(shàng)),最終我們希望能(néng)夠做(zuò)到(dào)無人(rén)駕駛——你(nǐ)坐(zuò)在車(chē)上(shàng)面,車(chē)自(zì)動帶你(nǐ)去(qù)目的(de)地(dì)。
運維已經從(cóng)最早的(de)人(rén)力運維發展到(dào)了(le)一(yī)定程度上(shàng)的(•de)自(zì)動化(huà)運維(但(dàn)是(shì)還(hái)需要(yào)大(dà)量人(rén)力∞盯屏決策),最終我們希望基于人(rén)工(gōng)智能(néng)的(de)運維工(gōng)具能(néng)夠更多(duō¶)自(zì)主決策,隻需很(hěn)少(shǎo)人(rén)力、甚至不(bù)再需要(yào)人(rén)力參與決策。
這(zhè)就(jiù)是(shì)我們運維行(xíng)業(yè)的(de)長(cháng)遠(yuǎn)的(βde)目标:基于 AIOps 無人(rén)運維。
無人(rén)運維是(shì)目标,AIOps(AI for IT Operations) 是(shì)工(gōng)具、手段。
無人(rén)運維這(zhè)個(gè)目标不(bù)可(kě)能(néng)一(yī)蹴而就(jiù),需要(yào)我們一(yī)步步腳踏實地(dì)、不(bù)∑斷探索去(qù)實現(xiàn)。因此我們必須有(yǒu)一(yī)種客觀的(de)、量化(huà)的(de)手段能(néng)夠對(duì)無人(rén)ε運維(或智能(néng)運維)水(shuǐ)平進行(xíng)度量。
我們下(xià)面提出的(de)無人(rén)運維量化(huà)評級方法,不(bù)包含主觀因素、不(bù)需要("yào)人(rén)主觀打分(fēn)。
按照(zhào)這(zhè)種方法,每個(gè)單位都(dōu)可(kě)以與其它單位、自(zì)己以往進行(xíng)客觀地(dì)比較,有(yǒu)效衡量本單位無人(rén)運維(或智∞能(néng)運維)在行(xíng)業(yè)內(nèi)的(de)相(xiàng)對(duì)水(shuǐ)平及自(zì)身(shēn)進展。
一(yī)、 無人(rén)運維評級
如(rú)前所述,我們希望能(néng)夠量化(huà)、綜合評估運維的(de)生(shēng)産力★。
因此,在設計(jì)具體(tǐ)指标的(de)時(shí)候,我們考慮了(le)如(rú)下(xià)因素:
1)直觀上(shàng)來(lái)講,為(wèi)了(le)達到(dào)同等的(de)穩定性、可(kě)靠性SLA,如(rú)果依賴人(rén)力的(de)決策越多(duō),其無人(rén)運維評級水(shuǐ)平就(j÷iù)相(xiàng)對(duì)低(dī)一(yī)些(xiē)。
2)希望這(zhè)個(gè)評估指标能(néng)夠與以下(xià)因素脫鈎:行(xíng)業(yè)、業(yè)務類型、業(yè)務規模、架構、技(jì)術(shù)、加班程度、外(wà£i)包情況等等。
3)運維人(rén)力計(jì)入負責運維服務器(qì)、存儲、網絡、中間(jiān)件(jiàn)、數(shù)據庫、應用(yòng)的(de)所有(yǒu)人(rén✔)力。
4)運維人(rén)力計(jì)入人(rén)力查看(kàn)監控數(shù)據、排除故障、運維規劃,盯屏幕、值班閑置的(de)事(≈shì)件(jiàn),但(dàn)是(shì)不(bù)計(jì)入運維人(rén)員(yuán)用(yòng)于₹開(kāi)發運維工(gōng)具的(de)時(shí)間(jiān) (見(jiàn)下(xià)圖)。
基于如(rú)上(shàng)考慮,我們提出的(de)指标是(shì)Coresper Op (CPO), 即每個(gè)運維人(rén)員(yuán)OP(每周平均工(gōng)作(zuò)40小(xiǎo)時(shí))平均管理(lǐ)的(de)X86 CPU核數(shù),而評級可(kě)以對(duì)照(zhào)下(xià)表直接換算(suàn)。
在我之前訪談的(de)若幹家(jiā)機(jī)構中, 傳統行(xíng)業(yè)的(de)CPO大(dà)緻在幾百(對(duì)應Level 0),基于公有(yǒu)雲中小(xiǎo)型互聯網公司的(de)CPO大(dà)緻幾千(對(duì)應Level 1),大(dà)型互聯網公司CPO 在幾萬(對(duì)應Level 2)。
下(xià)面通(tōng)過舉幾個(gè)虛構的(de)例子(zǐ)來(lái)進一(yī)步說(shuō)明(mín≤g)如(rú)何通(tōng)過CPO和(hé)無人(rén)運維評級進行(xíng)橫向和(hé)縱向的(de)比較。
某互聯網公司A(見(jiàn)下(xià)圖) 有(yǒu)X86架構的(de)服務器(qì)100萬台,其中12核的(de)50萬台、24核的(de)50萬台;人(rén)力共有(yǒu)400人(rén)、每人(rén)每周工(gōng)作(zuò)60小(xiǎo)時(shí),其中200人(rén)50%的(de)時(shí)間(jiān)用(yòng)在人(rén)力運維,另200人(rén)80%的(de)時(shí)間(jiān)用(yòng)在人(rén)力運維。
按照(zhào)上(shàng)述方法核算(suàn)下(xià)來(lái)是(shì)390 Op,再用(yòng)總核數(shù)(1300萬)除以390OP,是(shì)3.3萬核每OP,對(duì)應Level 2。
互聯網公司B(見(jiàn)下(xià)圖)運維水(shuǐ)準要(yào)比A高(gāo)一(yī)些(xiē): 總核數(shù)同樣是(shì)1300萬,但(dàn)是(shì)總人(rén)力核算(suàn)下(xià)來(lái)隻有(yǒu)130 Op,用(yòng)相(xiàng)同方法計(jì)算(suàn)下(xià)來(lái)是(shì)Level 3, 比A高(gāo)一(yī)級,表示其智能(néng)化(huà)程度更高(gāo)。
從(cóng)前兩個(gè)例子(zǐ)裡(lǐ)可(kě)以看(kàn)出,同一(yī)類型的(de)不(bù)♦同公司之間(jiān)可(kě)以通(tōng)過CPO和(hé)無人(rén)運維評級進行(xíng)量化(huà)的(de)橫向比較。
再舉一(yī)個(gè)傳統行(xíng)業(yè)的(de)例子(zǐ)(見(jiàn)下(xià≠)圖)。
某大(dà)型銀(yín)行(xíng)C的(de)CPU核數(shù)核算(suàn)下(xià)來(lái)有(yǒu)18萬核,各種運維人(rén)力(其中包括外(wài)包運維人(rén)力200人(rén))核算(suàn)下(xià)來(lái)有(yǒu)495 Op。CPO為(wèi)363,相(xiàng)當于Level 0。水(shuǐ)平遠(yuǎn)低(dī)于互聯網公司A、B。
這(zhè)裡(lǐ)面有(yǒu)行(xíng)業(yè)原因,因為(wèi)銀(yín)行(xí≥ng)對(duì)穩定性、可(kě)靠性的(de)優先級更高(gāo),所以銀(yín)行(xíng)C為(wèi)保證穩定性和(hé)可(kě)靠性隻好(hǎo)依賴大(dà)量的(de)人(rén)力來(lái)補足運維工(g¶ōng)具的(de)不(bù)足。 這(zhè)裡(lǐ)是(shì)不(bù)同行(xíng)業(yè)的(de)機(jī)構之間(jiān)的ε(de)橫向比較。
由于銀(yín)行(xíng)C基于互聯網的(de)業(yè)務增長(cháng)迅猛,銀(yín)行(xíng)C 計(jì)劃3年(nián)內(nèi)把X86的(de)服務器(qì)從(cóng)1萬台增長(cháng)到(dào)10萬台,因此總核數(shù)預計(jì)增長(cháng)為(wèi)126萬核。
如(rú)果保持運維水(shuǐ)準不(bù)變(即每個(gè)運維人(rén)力管理(lǐ)363個(gè)核),則需要(yào)人(rén)力增加10倍,達到(dào)3000多(duō)人(rén);但(dàn)如(rú)果人(rén)力隻能(néng)保持300多(duō),這(zhè)就(jiù)必須提升自(zì)動化(huà)運維的(de)水(shuǐ)平,無人(rén)運維評級相(xiàng)應需要(yào)從(cóng)0級升為(wèi)1級。這(zhè)是(shì)同一(yī)個(gè)機(jī)構通(tōng)過CPO和(hé)無人(rén)運維評級進行(xíng)自(zì)我縱向比較和(hé)規劃的(de)例子(zǐ)。
以上(shàng)幾個(gè)例子(zǐ)可(kě)以給大(dà)家(jiā)一(yī)個(gè)比較直觀的(de)感受: 我們可(kě)以利用(yòng)這(zhè)種評級方法對(duì)同一(yī)行(xíng)業(yè)的(de)不(bù)同機(εjī)構、不(bù)同行(xíng)業(yè)的(de)機(jī)構之間(jiān)進行(xíng)進行(xíng)橫向的(de)量化(huà)比較,也(yě)可(kě)以對(dσuì)同一(yī)家(jiā)機(jī)構不(bù)同時(shí)期進行(xíng)縱向的(de)量化(huà)比較。
CPO和(hé)無人(rén)運維評級可(kě)以給大(dà)家(jiā)提供一(yī)個(gè)量化(huà)的(de)依α據,大(dà)家(jiā)可(kě)以看(kàn)到(dào)自(zì)己處于什(shén)麽水(shuǐ)準,同行(xíng)處于什(shén)麽水(shuǐ)準,促進大($dà)家(jiā)更好(hǎo)地(dì)朝著(zhe)最終的(de)無人(rén)運維目标前進。
我們相(xiàng)信上(shàng)述CPO和(hé)無人(rén)運維評級在“基于AIOps的(de)無人(rén)運維”發展中講起到(dào)重要(yào)的(de)促進作(zuò)用(yòng)。
二、通(tōng)過AIOps實現(xiàn)無人(rén)運維
無人(rén)運維是(shì)我們的(de)終極目标,AIOps是(shì)我們通(tōng)往這(zhè)個(gè)目标的(de)手段。
如(rú)下(xià)圖所示,AIOps有(yǒu)兩個(gè)相(xiàng)關部分(fēn):
左側是(shì)監控系統,相(xiàng)當于“眼睛”,采集各類運維監控數(shù)據(抓包、埋點、撥測、日(rì)志(zhì)、流程等), 全面感知(zhī)系統狀态;
右邊相(xiàng)當于“手”, 是(shì)基于确定邏輯的(de)自(zì)動化(huà)工(gōng)具,負責一(yī)些(xiē)比如(✘rú)重啓、回滾、流量調度、擴縮容、跨機(jī)房(fáng)遷移等操作(zuò);
中間(jiān)部分(fēn)是(shì)“大(dà)腦(nǎo)”,就(jiù)是(shì)AIOps,它以眼睛感知(zhī)到(dào)的(de)數(shù)據作(zuò)為(wèi)輸入,做(zuò)出實時(shí)的λ(de)運維決策,從(cóng)而驅動“手”執行(xíng)一(yī)些(xiē)自(zì)動化(huà)的(de)操作(zuò)。
此外(wài),大(dà)腦(nǎo)還(hái)負責把監測的(de)曆史數(shù)據梳理(lǐ)成高(gāo)水(shuǐ)平的(de)知(zhī)§識(即運維知(zhī)識圖譜),從(cóng)而可(kě)以被算(suàn)法模塊調用(yòng)、同時(shí)也(yě)可(kě)以供人(rén)查詢。
AIOps 運維大(dà)腦(nǎo)主要(yào)包含兩大(dà)部分(fēn):“運維知(zhī)識圖譜”和(hé)“動态決策”。(見(jiàn)下(xià)圖)運維知(zhī)識圖譜就(jiù)是(shì)線下(xià)挖掘運維曆史數(shù)據、建立各種畫(huà)像,梳理(lǐ)出各類高(gāo)水♦(shuǐ)平的(de)知(zhī)識。
這(zhè)些(xiē)知(zhī)識有(yǒu)兩類基本用(yòng)途:
1) 可(kě)以通(tōng)過查詢工(gōng)具(比如(rú)人(rén)機(jī)對(duì)話(huà)機(jī)器(qì)人(rén))被運維人(rén)↑員(yuán)消費(fèi);
2) 動态決策利用(yòng)實時(shí)監控數(shù)據和(hé)已經挖掘好(hǎo)的(de)運維知(zhī)識圖譜進行(xíng)實時(shí)決策。“動态決策” 包括故障發現(xiàn)、故障定位、故障處置、故障規避等大(dà)場(chǎng)景。
每一(yī)個(gè)大(dà)場(chǎng)景還(hái)包含若幹個(gè)小(xiǎo)場(chǎng)景,比如(rú)故障發現(xiàn)包含單指标異常檢測、多(duō)指标異✘常檢測、文(wén)本日(rì)志(zhì)異常檢測、交易鏈條日(rì)常檢測等等。
每一(yī)個(gè)場(chǎng)景都(dōu)是(shì)運維行(xíng)業(yè)幾十年(nián)發展積累下(xià)來(lái)的✔(de)難題,都(dōu)需要(yào)投入大(dà)量AIOps算(suàn)法人(rén)力和(hé)精力去(qù)攻關。
比如(rú)我在清華的(de)實驗室在去(qù)年(nián)一(yī)年(nián)投入了(le)10個(gè)博士生(shēng)分(fēn)工(gōng)合作(zuò)研究單指标異常檢測,才把這(zhè)個(gè)難題攻克了(le)。
此外(wài),AIOps要(yào)解決的(de)是(shì)“系統+算(suàn)法”問(wèn)題,而不(bù)是(shì)簡單的(de)算(suàn)法問(wèn)題。這(zhè)是(shì)因為(wè≥i)我們的(de)運維對(duì)象是(shì)個(gè)龐大(dà)、複雜(zá)、跨協議(yì)層的(de)系統,它裡(lǐ)面的(de)大(dà)量邏輯是(shì∑)程序員(yuán)寫的(de)代碼和(hé)各種網絡協議(yì)和(hé)應用(yòng)協議(yì)。
因此,AIOps運維大(dà)腦(nǎo)中的(de)每一(yī)個(gè)模塊都(dōu)相(xiàng)當複雜(zá),所以我們不(bù)要(yào)期望把運維數(shù)據灌進一(yī)個(gè)通(tōng<)用(yòng)AI算(suàn)法就(jiù)能(néng)完成該模塊的(de)功能(néng)。
解決任何一(yī)個(gè)AIOps中的(de)模塊或場(chǎng)景,都(dōu)需要(yào)有(yǒu)“AIOps架構師(shī)”把複雜(zá)的(de)場(chǎng)景和(hé)需求拆解成具體(tǐ)的(de)功能(néng)模塊: “眼”、“手”、“腦(nǎo)”。(如(rú)下(xià)圖)。“眼”解決那(nà)些(xiē)通(tōng)過采集數(shù)據全面感知(zhī)系統運行(xíng)狀态就(jiù)能(néng)解決的(de)問(wèn)題;“手”解決那(nà)些(xiē)基于固定邏輯就(jiù)能(néng)解決的(de)問(wèn)題;
“腦(nǎo)”又(yòu)細分(fēn)為(wèi)兩類模塊:
1)通(tōng)過挖掘曆史數(shù)據總結出來(lái)各種畫(huà)像和(hé)知(zhī)識;
2)通(tōng)過動态決策算(suàn)法來(lái)處理(lǐ)各種具體(tǐ)運維場(chǎng)景。 “腦(nǎo)”裡(lǐ)面的(de)兩個(gè)模塊必須能(néng)被當前AI技(jì)術(shù)所解決(要(yào)求數(shù)據豐富、信息完整、清楚定義、單領域)。
運維領域有(yǒu)很(hěn)多(duō)問(wèn)題當前AI技(jì)術(shù)沒有(yǒu)辦法直接整體(tǐ)解決,在這(zhè)種情況下(xià)我們就(jiù)繼續把該問(wèn)題拆解成更細的(de)模塊∑以期能(néng)夠被當前AI技(jì)術(shù)解決。
為(wèi)了(le)更好(hǎo)地(dì)支持上(shàng)述觀點, 我們在下(xià)圖中給出了(le)我在清華的(de)實驗室在AIOps運維大(dà)腦(nǎo)的(de)各個(gè)模塊中使用(yòng)過的(de)并行(xíng)之有(yǒu)效的(de)通(tōng)用(yòng)AI算(suàn)法。
可(kě)以看(kàn)到(dào)不(bù)同的(de)模塊采用(yòng)的(de)通(tōng)用(yòng)AI算(suàn)法差異非常大(dà),有(yǒu)些(xiē)模塊還(hái)需要(yào)若幹通(tōng)用(yòng)AI算(suàn)法的(de)組合才能(néng)良好(hǎo)解決。這(zhè)張圖充分(fēn)說(shuō)明(míng)了(le)AIOps的(de)架構挑戰。
三、 智能(néng)故障發現(xiàn)
這(zhè)一(yī)部分(fēn)介紹一(yī)下(xià)我們實驗室在“智能(néng)故障發現(xiàn)”方向的(de)進展。智能(néng)故障發現(xiàn)包括故障發現(xiàn)和(hé)故障定位。
首先介紹我們在單指标異常檢測的(de)最新進展。我們實驗室在這(zhè)一(yī)領域的(de)科(kē)研成果在世界範圍內(nèi)處于領先的(de≈)地(dì)位。(見(jiàn)下(xià)圖)
1)我們IMC2015工(gōng)作(zuò)是(shì)有(yǒu)監督的(de)異常檢測,解決了(le)之前樸素異常檢測算(suàn)法無法普适的(de)問(wèn)題;γ
2)後來(lái)我們在推廣這(zhè)個(gè)技(jì)術(shù)的(de)過程中,發現(xiàn)有(yǒu)監督異常φ檢測算(suàn)法的(de)應用(yòng)場(chǎng)景是(shì)有(yǒu)限的(de),所以後來(lái)我們在WWW2018發明(míng)了(le)一(yī)種無監督的(de)異常檢測算(suàn)法;
3)随著(zhe)在實踐中對(duì)該WWW2018算(suàn)法的(de)使用(yòng),發現(xiàn)它也(yě)存在一(yī)些(xiē)不(bù)足。比如(rú),當存在違反周≈期性的(de)異常時(shí),使用(yòng)該算(suàn)法效果不(bù)好(hǎo),因此我們加入了(le)時(shí)間(jiān)信∑息解決了(le)這(zhè)個(gè)問(wèn)題;
4)WWW2018算(suàn)法在處理(lǐ)非高(gāo)斯噪聲的(de)指标時(shí)也(yě)存在不(bù)足,我們就(jiù)實現(xiàn)了(le)一(yī)個(gè)基于對(duì)抗生(shēng)成網絡的(de)算(suàn)法把這(zhè)個(gè)問(wèn)題解決了(le);
5)此外(wài),我們通(tōng)過聚類算(suàn)法和(hé)遷移學習(xí),實現(xiàn)了(le)對(duì)于百萬級指标進行(xíng)異常檢α測;
6)對(duì)于遊戲等生(shēng)命周期很(hěn)短(duǎn)的(de)應用(yòng)通(tōng)過半監督學習(xí)快(kuài)速進行(xíng)異常檢測;
7)通(tōng)過參數(shù)自(zì)動遷移,在指标模式漂移後自(zì)動适配異常檢測算(suàn)法。最後這(zhè)些(xiē)算(suàn$)法整合成了(le)我們非常智能(néng)的(de)單指标異常檢測算(suàn)法。
這(zhè)個(gè)單指标異常檢測的(de)例子(zǐ)很(hěn)好(hǎo)地(dì)說(shuō)明(míng)了(le) 我們實驗室的(de)研究思路(lù):
“從(cóng)實踐中來(lái)” (從(cóng)實踐中總結提煉出科(kē)研問(wèn)題,從(cóng)根兒(ér)上(shàng)解決問(wèn)題,而不(bù)是(shì)通(tōng)過簡單→工(gōng)程方法治标不(bù)治本)、“到(dào)實踐中去(qù)”(不(bù)斷實踐、不(bù)斷叠代認知(zhī)、不(bù)斷完善,而不(bù)是(shì)發表一(yī)篇論文(wén)☆就(jiù)做(zuò)别的(de)去(qù)了(le))。
上(shàng)述算(suàn)法2)-7)在我2017年(nián)下(xià)半年(nián)的(de)演講中還(hái)是(shì)處于展望階段,現(xiàn)在我比較自(z$ì)豪的(de)說(shuō)去(qù)年(nián)展望的(de)技(jì)術(shù)百分(fēn)之八九十都(dōu)已經實現(xiàn)了(le)。
這(zhè)離(lí)不(bù)開(kāi)實驗室博士生(shēng)們的(de)艱辛攻關,也(yě)離(lí)不(bù)開(kāβi)我們的(de)專注投入( 世界上(shàng)沒有(yǒu)第二個(gè)機(jī)構會(huì)在這(zhè)一(yī)領域像我們一(yī)樣投入超過十個(gè)博士生(shē ng))。所以我們在這(zhè)個(gè)細分(fēn)領域能(néng)走到(dào)世界領先的(de)位置也(yě)就(jiù)不(bù)足為(wèi)怪了(le)。
在單指标異常檢測的(de)基礎上(shàng),我們還(hái)實現(xiàn)了(le)多(duō)指标異常檢測、面向文(wén)本日(rì)志(zhì)的♥(de)異常檢測、對(duì)交易鏈條的(de)異常檢測、異常機(jī)器(qì)定位、異常多(duō)維定位、變更故障£定位、交易鏈條定位等 (見(jiàn)下(xià)圖)。
這(zhè)些(xiē)AIOps最終被整合在一(yī)起,形成我們的(de)“智能(néng)故障發現(xiàn)”系統。
一(yī)線運維人(rén)員(yuán)無需關注背後的(de)種種算(suàn)法:當有(yǒu)故障發生(shēng)時(shí),系統直接告訴運維人(rén)員(yuán)哪™裡(lǐ)出了(le)什(shén)麽樣的(de)故障,以及該故障的(de)原因是(shì)什(shén)麽×。
系統不(bù)是(shì)将海(hǎi)量的(de)監控都(dōu)推給運維人(rén)員(yuán)讓他(tā)自(zì)己搞清楚問(wèn)題是(shì)什(shén)麽,而是(shì)已'經彙總好(hǎo),直接給出問(wèn)題所在。
上(shàng)圖展示5台機(jī)器(qì)4項指标出了(le)問(wèn)題,采用(yòng)人(rén)力排查的(de)話(huà)需要(yào)看(kàn)上(shàng)萬台機(jī)器(qì)、每台各100多(duō)個(gè)指标,而我們的(de)系統則可(kě)以把這(zhè)個(gè)結果快(kuài)速呈現(xiàn)出來✔(lái):
某一(yī)個(gè)具體(tǐ)日(rì)志(zhì)時(shí)間(jiān),發生(shēng)故障時(shí)第三個(gè)參數(shù)取值的(de)分(fēn)布<在故障之前和(hé)故障之後有(yǒu)顯著變化(huà),這(zhè)樣就(jiù)給運維人(rén)員(yuán)提供了( le)非常清晰的(de)提示和(hé)參考,指導人(rén)員(yuán)下(xià)一(yī)步該怎麽做(zuò)。
同時(shí)系統還(hái)會(huì)提示本次故障和(hé)曆史上(shàng)某次故障症狀上(shàng)非常相(xià♦ng)似或有(yǒu)某種關系,進而建議(yì)運維人(rén)員(yuán)現(xiàn)在可(kě)采取什(shén)麽樣的(de)處置方案應對(duì)當前故障。
以上(shàng)“智能(néng)故障發現(xiàn)”AIOps算(suàn)法朝著(zhe)無人(rén)運維的(de)終極目标邁進了(le)一(yī)大(dà)步。
四、運維知(zhī)識圖譜
本部分(fēn)簡要(yào)介紹運維知(zhī)識圖譜的(de)構建和(hé)使用(yòng)(見(jiàn)下(x♦ià)圖)。構建運維知(zhī)識圖譜是(shì)指從(cóng)運維數(shù)據中自(zì)動挖掘:
1)各類運維主體(tǐ);
2)運維主體(tǐ)的(de)各類特性畫(huà)像和(hé)規律;
3)運維主體(tǐ)之間(jiān)的(de)關系。
運維主體(tǐ)包括系統軟、硬件(jiàn)及其運行(xíng)狀态:
軟件(jiàn)是(shì)指服務、微(wēi)服務、中間(jiān)件(jiàn)、存儲服務、數(shù)據庫等等;硬件(jiàn)是(shì)指機(jī)房(fáng)、機(jī)群、機(jī) 架、服務器(qì)、虛拟機(jī)、容器(qì)、硬盤、路(lù)由器(qì)、交換機(jī)等等;各類監控數(shù)據,包括指标、日(rìΩ)志(zhì)事(shì)件(jiàn)、Trace、變更、流程等等。
(見(jiàn)上(shàng)圖)那(nà)麽運維知(zhī)識圖譜與CMDB的(de)區(qū)别是(shì)什(shén)麽呢(ne)?
運維知(zhī)識圖譜包含基于人(rén)工(gōng)智能(néng)的(de)、模糊的(de)、自(zì)動化(huà)挖掘的(de)知(zhī)識,而CMDB是(shì)确定的(de)、手工(gōng)配置的(de)知(zhī)識或基于确定邏輯自(zì)動配置的(de)知(zhī)識。
運維知(zhī)識圖譜與傳統的(de)運維專家(jiā)知(zhī)識又(yòu)有(yǒu)什(shén)麽區(qū)别呢(ne)?
第一(yī),知(zhī)識圖譜是(shì)中心化(huà)的(de),而傳統專家(jiā)知(zhī)識是(shì)分(fēn)布在運維專家(♦jiā)頭腦(nǎo)中的(de),是(shì)去(qù)中心化(huà)的(de)。
第二,知(zhī)識圖譜是(shì)連在一(yī)起的(de)“一(yī)幅大(dà)圖”;而專家(jiā)知(zhī)識是(shì)割裂的(de),所以,想要(yào)實時(shí)地(dì)把分(fēn)布在專↑家(jiā)頭腦(nǎo)中的(de)知(zhī)識以及靜(jìng)态CMDB數(shù)據關聯在一(yī)起,解決實時(shí)問(wèn)題顯然是(shì)不(bù)可(kě)行(xíng)的(de)。
第三,知(zhī)識圖譜可(kě)被快(kuài)速查詢,專家(jiā)知(zhī)識需要(yào)人(εrén)力關聯,所以緩慢(màn)易錯(cuò)。
第四,知(zhī)識圖譜可(kě)自(zì)動更新,而專家(jiā)知(zhī)識需要(yào)手動更新。
第五,可(kě)以自(zì)動生(shēng)成知(zhī)識圖譜的(de)變化(huà)報(bào)表,而利用(yòng)專家(jiā)知(zhī)識要(yào)靠手動撰寫報(bào)告≤。因此,建立運維知(zhī)識圖譜的(de)優勢是(shì)非常明(míng)顯的(de)。下(xià∑)面我們通(tōng)過兩個(gè)例子(zǐ)來(lái)詳細說(shuō)明(míng)一(yī)下(xià)。
上(shàng)圖給出了(le)各類硬件(jiàn)主體(tǐ)之間(jiān)的(de)關系。
容器(qì)1屬于容器(qì)類型1, 而容器(qì)類型1的(de)配置細節(CPU、內(nèi)存、存儲類型、存儲空(kōng)間(jiān))都(dōu)是(shì)能(néng)夠由配置信息基于固定邏輯自(zì)動構建出來(lái)的(de≈),屬于靜(jìng)态屬性。
同時(shí),通(tōng)過挖掘學習(xí)出一(yī)些(xiē)動态屬性(白(bái)底紅(hón$g)字),比如(rú)容器(qì)類型1 的(de)資源使用(yòng)限制(zhì)(內(nèi)存使用(yòng)率最多(duō)能(néng)到(dào)多(duō)少(shǎo)),這(zhè)些(xiē)信息很(hěn)難靠人(rπén)力準确總結或推測,得(de)靠挖掘曆史數(shù)據獲得(de)。
我們再看(kàn)軟件(jiàn)主體(tǐ)和(hé)硬件(jiàn)主體(tǐ)之間(jiān)關系,¥以及軟件(jiàn)主體(tǐ)之間(jiān)的(de)關系(見(jiàn)上(shàng)圖)。
服務1調用(yòng)微(wēi)服務1、微(wēi)服務1部署在容器(qì)1上(shàng)面。這(zhè)樣,軟硬件(jiàn)主體(tǐ)在圖中就(jiù)通(tōng)過邊連接起來→(lái)了(le)。
這(zhè)種關系也(yě)是(shì)通(tōng)過确定邏輯基于配置信息自(zì)動構建的(de)(橙色的(de)邊屬性)。那(nà)麽,容器©(qì)類型1可(kě)以支持微(wēi)服務1每秒(miǎo)鐘(zhōng)多(duō)少(shǎo)次的(de)交易呢(ne)(容器(qì)類型1與微(wēi)服務1之間(jiān)的(de)邊的(de)紅(hóng)色屬性)?這(zhè)個(gè)屬性需要(yào)通(tōng)過曆史數(shù)據、壓測數(shù)據✔構建動态的(de)畫(huà)像。
(見(jiàn)上(shàng)圖)我們再看(kàn)一(yī)下(xià)軟件(jiàn)主體(tǐ)與監控指标主體(tǐ)之間(jiān)的(de)關系,以及監控指标之間<(jiān)的(de)關系。
服務1的(de)一(yī)個(gè)監控指标是(shì)總流量,而這(zhè)個(gè)總流量又(yòu)可(kě)以按照(zhào)省£份屬性細分(fēn),監控指标“服務1.流量”與監控指标“服務1.流量.北(běi)京市(shì)”是(shì)包含的(de)關系, 而“服務1.流量.北(běi)京市(shì)”與“服務1.流量.北(běi)京市(shì).聯通(tōng)”又(yòu)是(shì)包含關系。
當今的(de)監控數(shù)據中雖然可(kě)能(néng)有(yǒu)幾百萬監控指标,但(dàn)是(shì)他(tā)們之間(jiān)往往有(yǒu)類似上(shàng)述“包含”關系的(de)某種關系。
而此類關系是(shì)遵循固定邏輯的(de),是(shì)可(kě)以通(tōng)過配置信息自(zì)動構建出來(lái),最終可(kεě)以作(zuò)為(wèi)邊添加在這(zhè)幅圖譜中。
因此我們可(kě)以想象這(zhè)個(gè)圖譜就(jiù)形成了(le)一(yī)個(gè)無所不(bù)包的(d←e)大(dà)型數(shù)據結構,供我們在其上(shàng)為(wèi)各類運維場(chǎng)景開(kāi)發動态決策算(suàn)法。
上(shàng)圖中還(hái)展示了(le)“服務1.流量”的(de)動态畫(huà)像(白(bái)底紅(hóng)字):增長(cháng)趨勢、季節性、高(gāo)峰時(shí)段、特殊日(rì)、最佳的(de)變更時(shí)段等等。
這(zhè)些(xiē)信息在運維人(rén)員(yuán)腦(nǎo)子(zǐ)裡(lǐ)面或多(duō)或少(shǎo)有(yǒu)一(yī¶)些(xiē),但(dàn)是(shì)并不(bù)能(néng)被随時(shí)随地(dì)準确快(kuài)速地(dì)查詢。我們的(de)方法是(shì),在專家(jiā)的(de)指導下(xià),通(tōng)過機(jī)器(qì)學習(xí)方法自(zì)動把這(zhè)些(xiē)知(zhī×)識挖掘出來(lái),可(kě)以被自(zì)動更新和(hé)随時(shí)查詢。
(見(jiàn)上(shàng)圖)“微(wēi)服務1.響應時(shí)間(jiān)” 的(de)影(yǐng)響因素有(yǒu)n個(gè), 而它們之間(jiān)的(de)關系是(shì)通(tōng)過一(yī)個(gè)函數(shù)f(x1,x2,…,xn)來(lái)刻畫(huà)的(de),而這(zhè)個(gè)函數(shù)可(kě)能(néng)是(shì)通(tōng)過一(yī)個(gè)神經網絡來(l₹ái)拟合的(de)。
這(zhè)個(gè)例子(zǐ)清晰的(de)說(shuō)明(míng)運維知(zhī)識圖譜與傳統基于确定邏輯的(₩de)CMDB的(de)區(qū)别。
在這(zhè)個(gè)例子(zǐ)裡(lǐ),我們用(yòng)有(yǒu)限的(de)一(yī)頁PPT, 展示了(le)一(yī)個(gè)很(hěn)大(dà)的(de)知(zhī)識圖譜中很(hěn)小(xiǎo)的(de)一(yī)個(gè)切面。
可(kě)以想象上(shàng)萬台機(jī)器(qì),上(shàng)百萬指标,全都(dōu)串在一(yī)起會(huì)形成如(rú)何的(de)一(yī)幅大(dà)圖!幸運的 (de)是(shì),現(xiàn)在有(yǒu)不(bù)少(shǎo)相(xiàng)對(duì)成熟的(de)圖計(jì)♠算(suàn)系統和(hé)算(suàn)法可(kě)以處理(lǐ)如(rú)此規模的(de)圖。
上(shàng)述例子(zǐ)的(de)一(yī)個(gè)應用(yòng)場(chǎng)景是(sh₹ì):以往為(wèi)了(le)應對(duì)每個(gè)月(yuè)的(de)大(dà)促,需要(yào)拍(pāi)腦(nǎo)袋人(rén)工(♥gōng)預測所需計(jì)算(suàn)資源;有(yǒu)了(le)運維知(zhī)識圖譜,通(tōng)過查詢圖譜以及算(suàn✔)法計(jì)算(suàn)就(jiù)可(kě)以給出準确的(de)預測結果。
下(xià)面介紹最後一(yī)個(gè)例子(zǐ),運維知(zhī)識圖譜的(de)另一(yī)個(gè)切面—故障傳播圖。
有(yǒu)了(le)這(zhè)個(gè)故障傳播圖,就(jiù)可(kě)以快(kuài)速回答(dá)如(rú✘)下(xià)問(wèn)題:
1)當前服務故障的(de)根因是(shì)什(shén)麽?
2)對(duì)當前故障有(yǒu)何處置建議(yì)?
3)當前底層的(de)故障對(duì)上(shàng)層服務有(yǒu)何具體(tǐ)影(yǐng)響?
(見(jiàn)上(shàng)圖)故障傳播圖可(kě)以長(cháng)成什(shén)麽樣子(zǐ),又(yòu)是(shì)如(rú)何構建的(de)呢(ne)?我們通(tōng)過舉例來(✘lái)說(shuō)明(míng)。服務1調用(yòng)了(le)微(wēi)服務1.1和(hé)微(wēi)服務1.2,而微(wēi)服務1.2部署在容器(qì)1.2.1上(shàng)。它們有(yǒu)共同的(de)KPI A。
因此,KPI A報(bào)警在這(zhè)三個(gè)主體(tǐ)之前就(jiù)自(zì)然形成了(le)故障傳播關系,而這(zhè)種故障傳播關系是(shì)可(kě)以通(>tōng)過配置信息通(tōng)過固定邏輯自(zì)動生(shēng)成的(de)(見(jiàn)上(shàng)圖中藍(lán)色的(de)邊屬性)。
(見(jiàn)上(shàng)圖中橙色的(de)邊屬性)有(yǒu)些(xiē)故障傳播關系是(shì)要(yào)靠機(jī)器(qì)學習(xí)算(su≤àn)法自(zì)動挖掘的(de)。
比如(rú)系統存儲日(rì)志(zhì)事(shì)件(jiàn)Y導緻數(shù)據庫日(rì)志(zhì)事(shì)件(jiàn)X;數(shù)據庫日(rì)志(zhì)事(shì)件(jiàn)X導緻微(wēi)服務1.1 的(de)KPI A 報(bào)警。
同時(shí),交換機(jī)日(rì)志(zhì)事(shì)件(jiàn)U也(yě)會(huì)導緻微(wēi)服務1.1.的(de)KPI A 報(bào)警;而微(wēi)服務1.2 KPI A 與微(wēi)服務1.3的(de)KPI C故障傳播關系體(tǐ)現(xiàn)為(wèi)具有(yǒu)波動相(xiàng)關性。上(shàng)圖中邊的(de)屬性為(wèi)橙色的(de)都(dōu)是(shì)自(zì)動挖掘出的(de)故障傳播關系。
(見(jiàn)上(shàng)圖)有(yǒu)些(xiē)故障傳播關系(比如(rú)那(nà)些(xiē)由網絡協議(yì)導緻的(de))很∞(hěn)難被自(zì)動挖掘出來(lái),也(yě)不(bù)在靜(jìng)态配置中體(tǐ)現(xi€àn),而是(shì)存在于行(xíng)業(yè)标準中(如(rú)網絡協議(yì))。
因此我們可(kě)以根據網絡協議(yì)中固定的(de)規則人(rén)工(gōng)指定故障傳播關系(γ上(shàng)圖中綠(lǜ)色的(de)邊屬性),如(rú)物(wù)理(lǐ)層故障導緻鏈路(lù)層故障。
最後,另外(wài)還(hái)有(yǒu)一(yī)些(xiē)自(zì)動挖掘出來(lái)的(de)畫(huà)像信息(上(shàng)圖中紅(hóng)≈色六邊形),比如(rú)廠(chǎng)商手冊中關于交換機(jī)日(rì)志(zhì)事(shì)件(jiàn)V有(yǒu)一(yī)些(xiē)相(xiàng)關知(zhī)識,事(shì)件(jiàn)V為(wèi)什(shén)麽發生(shēng)、該如(rú)何處置。我們可(kě)以自(zì)動把手冊裡(lǐ)©面的(de)規則挖掘出來(lái)變成知(zhī)識。
綜上(shàng),由算(suàn)法專家(jiā)和(hé)運維專家(jiā)配合,采用(yòng)合适↕的(de)算(suàn)法,我們可(kě)以把所有(yǒu)運維相(xiàng)關的(de)經驗知(zhī)識轉化(huà)故障傳播關系,進而形成故障傳播圖。
這(zhè)樣,運維最大(dà)的(de)痛點故障根因分(fēn)析也(yě)就(jiù)不(bù)難解決了(le)。
五、總結和(hé)展望
我們非常看(kàn)好(hǎo)“基于AIOps的(de)無人(rén)運維”,但(dàn)這(zhè)條路(lù)并不(bù)輕松,需要(yào)付出大(dà)量的(de)努力,需要(yào)廣大(dà)運維屆的(de)同仁們一(yī)道(dào)、β一(yī)步一(yī)個(gè)腳印地(dì)去(qù)實現(xiàn)并完善。
——轉自(zì)清華裴丹演講整理(lǐ)