一位運維眼中的AIOps

AI 時代,AIOps 熱炒,運維應(yīng)該關(guān)心的是什么:

AIOps 到底是什么?

AI 和 Ops 究竟是什么關(guān)系?

AIOps 到底會帶來哪些改變(顛覆 or 提升)?

按照 Gartner 的定義,AIOps 是 Algorithmic IT Operations,但是在人工智能時代,可能很多的人會把 AI 理解成 Artificial Intelligence,不去糾結(jié)定義,本質(zhì)上,想要表達的意思是一樣的,就是 讓運維具備機器學習和算法的能力。

如果直觀的理解 AI 和 Ops 的關(guān)系,類比到人,AI 相當于人的大腦,我們手腳和軀干是執(zhí)行系統(tǒng),大腦負責決策判斷,手腳軀干負責完成大腦下發(fā)的動作指令。

我們可以稍微停頓再思考一個場景,無人駕駛是怎么樣的?

不難得到答案,AI 更多的是根據(jù)路況做決策判斷,然后將這些指令下發(fā)給汽車自身的駕駛系統(tǒng)(如左轉(zhuǎn)、右轉(zhuǎn)、倒車、油門、剎車等)。在一定條件下(如完善的交通規(guī)則、良好的公民素質(zhì)等),基于海量的數(shù)據(jù)和優(yōu)秀的算法,機器學習做出的判斷會比人更加高效和準確(至少機器不會因為疲憊而造成反應(yīng)遲鈍等等)。

解釋到這里,以此類推,就不難理解 AI 和 Ops 的關(guān)系了。

●“基于專家經(jīng)驗”到“基于機器學習”的轉(zhuǎn)變

前面提到,AI 發(fā)揮的作用是,動態(tài)變化場景的復雜條件下,能夠做出高效準確的決策判斷。回到運維上來,我們現(xiàn)在常看到的監(jiān)控告警、根因分析、日志異常檢測、報警聚合、容量預(yù)測、故障預(yù)測等等,這些都是要基于海量的線上運行時數(shù)據(jù),做出分析判斷的,所以在這一塊,我們會看到大量的跟 AI 結(jié)合的 AIOps 的解決方案,特別是智能監(jiān)控。

而對于一些靜態(tài)化的配置(CMDB、應(yīng)用配置管理等),或者按照標準的流程規(guī)范,按部就班就可以完成的事情,比如持續(xù)集成、發(fā)布和部署等等,這些其實就沒有必要硬跟 AI 本身扯上什么關(guān)系了,但是不是也完全沒有任何關(guān)系呢?也不一定,后面會看到。

下面以智能監(jiān)控方面的例子來說明一下,我理解的一整套的 AIOps 應(yīng)該是什么樣子。

參考說明:以下參考 http://www.infoq.com/cn/,搜“趙宇辰”

發(fā)現(xiàn)問題―機器學習算法在異常檢測中的應(yīng)用

從“基于專家(人)經(jīng)驗”演化成“基于機器學習”的判斷和分析模式,舉個監(jiān)控告警規(guī)則設(shè)定的例子。

通常處理一個問題,抽象出來就是以下三個環(huán)節(jié),我們就從這三個環(huán)節(jié)一步步分析我們要做的具體的事情:

a、傳統(tǒng)模式下基于人的經(jīng)驗,是基于固定閾值的設(shè)定,比如 CPU 高于 80% 就告警,Load 超過 Core 的 2 倍就告警等等,而這個 80% 和 2 倍,就是基于人的經(jīng)驗設(shè)定的,說的高端一些是專家經(jīng)驗。而這種經(jīng)驗的適配性其實是很差的,不同的應(yīng)用和場景的閾值可能又不一樣,大量個性化的配置就出現(xiàn)了,當達到一定規(guī)模時,人工基本是不可維護的。

b、發(fā)現(xiàn)了這種適配性不好,可以采用動態(tài)閾值判斷,比如 3-sigma,或者分段 3-sigma,這個時候算法可以根據(jù)正態(tài)分布的概率,自動的調(diào)整告警閾值。但是,這樣的算法容易忽略周期性和趨勢,比如大促時的各項監(jiān)控值一定是非常高的,而春節(jié)等假期又是非常低的,這時的監(jiān)控點的分布極有可能是在正態(tài)分布之外的,如下圖的個別節(jié)點就很難識別是否異常。

c、繼續(xù)改進,到這個階段,就可以引入一些機器學習算法了,比如基于指數(shù)平滑的二次平滑、三次平滑算法,基于分解的傅里葉分解、小波分解算法等,基于深度學習的前饋神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò) RNN 算法等,還有其它算法等等,這個時候,算法就需要通過大量的線上歷史數(shù)據(jù)進行訓練,以便得出相對準確的告警策略。

d、如此多的算法,到底應(yīng)該選擇那個?這個時候又引入了一類機器學習算法,自動模型選取的分類算法。多個算法同時進行訓練,針對不同的場景,每一種算法的效果會不同,這時根據(jù)與歷史結(jié)果的對比,調(diào)整每個算法的權(quán)重,最終得出一個共同決策結(jié)果。如下圖所示:

在 c 和 d 階段,已經(jīng)可以引入機器學習的算法,并會通過大量歷史數(shù)據(jù)的訓練,讓算法能夠相對準確的進行異常檢測,自動生成告警策略。

分析問題―RCA 根因分析

第一個階段是發(fā)現(xiàn)問題,這個階段是針對單個異常信息的,比如單個的 meric 異常、單個應(yīng)用進程異常、單個應(yīng)用日志信息的異常等。但是實際情況下,通常一個部件發(fā)生異常,有可能會導致周邊依賴的部件會同時異常,而且會同時導致 N 個的指標異常和告警。

比如,DB 一條慢 SQL 超時,DB 會告警、依賴 DB 的應(yīng)用因為連接阻塞也會告警,RT 告警、QPS 異常告警、Load 告警,JVM 告警等等多個指標異常,而且有可能一整個集群都在告警,收告警的人也很多,DBA、PE、開發(fā)、SA 等等,再復雜一點,同一時間點,可能還有線上變更操作,如應(yīng)用在做發(fā)布、DB 在執(zhí)行 DDL、DML 等等。

這個時候,在一個分布式系統(tǒng)里,我們發(fā)現(xiàn)了問題,但是問題根因在哪里,就變得十分重要了,這個確認不了,就沒法進行止損和故障消除。而且這個定位過程一般是非常非常痛苦的,越漫長越痛苦,但凡處理過故障的同學都會有深刻的切身體會。之前我們通常只是說要做告警收斂,簡單和常見場景下靠人的經(jīng)驗是容易判斷的,但是復雜情況下,還是得借助機器學習相關(guān)的算法,且系統(tǒng)越龐大、越復雜,靠人和專家會越來越無力。

這個時候就需要一套根因分析 RCA 框架來幫我們做這方面的分析工作,宇辰老師給出的建議是 Monitor Everything,然后根據(jù)相關(guān)性和決策樹方面的算法進行根因分析,這塊從分享內(nèi)容看,在業(yè)界也是有比較成熟的分析算法。下面給出我的理解,直接看下圖:

推薦閱讀:清華大學裴丹老師的《基于機器學習的智能運維》

解決問題―通過運維體系和場景去執(zhí)行動作

上面兩個部分,我們更加精準的發(fā)現(xiàn)和分析了問題,那接下來,我們就該解決問題了,準確的說是做解決問題的動作,這個動作誰來做呢,當然是 Ops 運維體系發(fā)揮作用了,比如:

a、容量不足,要做擴容動作,或者降級或限流動作

b、發(fā)現(xiàn)某臺或部分機器 CPU 或內(nèi)存異常,那做下線動作

c、有慢 SQL,那要盡快執(zhí)行 Kill 動作

d、代碼有 bug?趕緊回滾,或者重新發(fā)布修改 bug 的代碼

e、。。。。。

如果說前面的兩個階段要看算法的效率和準確度是不是高,到了這個階段,就看解決問題的動作執(zhí)行是快是慢了,這個取決于啥呢?當然 取決于我們的整個運維和穩(wěn)定性體系是否高度自動化,是否高度完善。如果高度完善,在第二步分析問題發(fā)現(xiàn)根因后,應(yīng)該可以跟一個運維的預(yù)案場景關(guān)聯(lián),自動觸發(fā)預(yù)案的執(zhí)行。做的再好一點,可以做到 AI 的預(yù)測,提前識別出可能會發(fā)生的問題,提前將預(yù)案執(zhí)行完成。如果能做到這個程度,我想也算是很牛 x 的 AIOps 體系了。

當然,在發(fā)現(xiàn)問題和分析問題階段,也會依賴基礎(chǔ)的運維體系,比如日志采集、全鏈路跟蹤、CMDB 和應(yīng)用配置管理的元數(shù)據(jù)信息等等。

下面一張圖完整說明下我對 AIOps 體系的理解:

建議

1、AIOps 的發(fā)展一定是一個長期演進的過程,AI 是 Ops 的有力補充,進一步降低運維的工作強度和壓力,但是 AIOps 一定建設(shè)在高度自動化和完善的運維體系之上的,是一個演進的過程,不會是一個跳躍性的過程,產(chǎn)生一個完全顛覆性的 AIOps 模式,將現(xiàn)有的 Ops 體系替代掉。

2、從公司的角度,先集中精力建設(shè)好運維自動化體系,效率的問題解決了,再考慮更高層次的建設(shè),就好比先解決溫飽問題,再追求小資生活,這一點前兩天畢玄大師的文章也表達了這個觀點,我是灰常認同的。當然如果人力、精力有富余,做一些前期的預(yù)研和投入是沒問題的,但不要本末倒置。至于大廠,人家早就投入 N 多年開始研究了,其中百度做的絕對是標桿。

3、從個人角度,機器學習和 AI 的知識和技術(shù)還是要花一些個人精力去學習的,凡是會讓我們的生活變得更美好的技術(shù)必然會有極強的生命力,也必然代表著未來技術(shù)發(fā)展趨勢,AI 就是其中之一。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容