(即將開源)運維學件:沒有演算法專家,玩轉 AIOps 的不二法寶

weixin_34075551發表於2018-09-27

作為運維,每天與程式碼和伺服器打交道的你、是否有過這樣的焦慮?

“扛機器、接網線、敲 shell 命令、背黑鍋,這不是我想要的人生。”

半夜起來處理故障的人——是你

與開發吵得面紅耳赤的人——是你

默默背鍋的人——是你、還是你

8863605-2411fed4ba9e706e

別焦慮,AIOps 的時代已經到來,快收拾收拾情緒迎接它。

那麼,沒有演算法專家,也能做 AIOps 麼?

可以!答案是肯定的!

有學件!!運維學件!!

特大好訊息:騰訊織雲團隊即將開源學件啦!!

說明:學件由南京大學周志華教授提出,運維學件由騰訊 SNG 趙建春先生提出並率先開源,雲端計算開源產業聯盟和高效運維社群榮譽共同推廣。以下內容由趙建春先生及其團隊提供。

接觸 AIOps 會發現很多問題,例如,我可能是一個小團隊,或者說我缺乏演算法專家,還有即使用了別人的演算法模型,我還希望瞭解這個演算法的原理。

以及,提供演算法的一方和使用演算法的一方,都不願意提供資料,擔心資料洩露給對方,那雙方都有這樣一個擔憂,這是面臨的困難。

8863605-91d87825c52f26b7

對於以前的運維的環境裡面規則來講,其實你可以認為他是 API,或者是一些編寫的邏輯處理,特點就是很少會變,因為是人編寫的,所以容易理解,專家總結了,和資料無關,他寫好就放在那裡,類似 if-else,case swich等。

但是在 AI,前面講了,其實是一組帶有記憶能力的 API,這個記憶能力是從哪裡來的,就是對資料有依賴的,從資料裡面統計學習而來的,同時環境裡面不斷地在積累這個資料,可能不斷有新的案例進來。

所以這個模型時刻地在變,它非常的複雜,它可能是決策樹的決策路徑、迴歸引數或神經網路的網路結構及路徑權重。

因為它的各種的演算法,決策算的神經網路的結構,以及他的權重,或者是迴歸引數相當複雜,這個不是人編寫出來的,所以就難理解。

8863605-8a1c53460a30221f

從 API 到學件

所以 AIOps 我們可以來一個從 API 到學件的轉變,“學件”概念是南京大學的周志華老師提出來的,他是國內 AI 領域的泰斗級的人物,非常厲害,他提出學件是通過資料可以不斷地學習,隨著資料的不斷地加入會更好,另外它的演算法是公開的,你也可以瞭解它是怎麼實現的。

8863605-f79cdf1f6c4124d6

你也可以拿過來用,通過我的資料訓練好模型後給你,但沒有把資料交給你,把引數、網路結構這些東西交給你,並沒有把資料交給你,來解決資料安全問題。

你也可以用自己的資料重新去訓練改進適應自己環境的模型,所以是可演進的。演算法也是公開可瞭解的,拿來可以重用,來解決裡面的一些問題。

8863605-2ef9d31a92928eee

這是我們前一段時間和業界同仁一起編寫的 AIOps 白皮書的一個能力框架,我不展開來細講。

我們大體的想法就是說最底層就是各種機器的學習演算法,這個演算法和我們的實際環境場景結合起來,通過訓練一些單個的 AIOps 學件,單點場景也可以解決問題,之後把單點學件串聯起來組成 AIOps 的串聯應用場景,最終就可以形成一個智慧排程的模型,去解決我們的運維環節的成本、質量、效率等運維關心的問題。

我們團隊跟高效運維社群做了一些實踐和理論方面的探索和嘗試,今天也希望通過這幾個單點的串聯質量效率這些緯度跟大家分享一下。

關於學件的實踐案例分享

1)單點案例:成本 - 記憶體儲存智慧降冷

單點第一個是成本,就是記憶體儲存智慧降冷,因為我們是社交網路業務,使用者規模大,又有大量的訪問,這樣就導致團隊喜歡用記憶體型的KV儲存。

上線的時候,請求量可能很高,但是隨著時間的推移,他的資料量不斷地增長,訪問密度反而在下降,對我們的成本造成很大的壓力。

8863605-0d706f0a17cf811f

那大家會想到降冷,但是降冷之前大家都熟悉就是利用資料的最晚使用時間按規則處理,但是這個你想想其實只有一個指標,這個資料的最後使用時間,作為特徵去分析,其實遠遠不夠的。

我們對每一類資料做了非常多的特徵的抽樣提取,有幾十個特徵,如週期的熱度變化這些,就是如圖上這些,還有一些沒有寫出來的。

然後我們同學根據的經驗,因為他們之前手工處理過很多,就會有一些經驗,哪些資料條目是可以降冷的,把他標註之後,用邏輯迴歸和隨機森林,去學習和訓練,其實就是做分類,機器學習絕大部分都是做分類。

8863605-8ee6e5ebdd169ec5

做一個分類之後,上面是 LR 和 邏輯的迴歸,下面是隨機森林。那在隨機森林,在30棵樹的時候效果最好,因為隨機森林本來就是一個 bagging 的方法,對穩定性效果有提高。

8863605-aaee8a2839b71370

最終的效果就是說,我們把資料進行了一個下沉,把接近 90% 的資料,下沉到硬碟上,我們的訪問量並沒有下降,SSD 資料沒有造成訪問壓力,可以看到下沉和下降是非常精準的。

而且這裡面的資料延遲和成功率幾乎沒有變化,其實之前的同事通過人工的設定做下沉的設定,其實效率是非常的低,這個模組提升了 8 到 10 倍的下沉的效率,這是第一個案例是成本的。

8863605-9b6bff4753a67761

2)單點案例:質量 — 統一監控去閾值

質量,大家可以看到統一監控去閾值是很有意義的一件事情。監控有兩種情況,一種是成功率的監控,它應該是一個直線,正常應該在100%左右,但它會往下掉。

第二個就是類似於一個累計性的曲線,或者 CPU 的曲線,這個曲線監控其實是非常的千變萬化的。

8863605-cf95df558f856be2

之前我們可能是通過設定閾值的方法,最大值最小值,閾值設定這樣的方式,去設定告警。

這個曲線一直在變化,最大值和最小值也一直在變化,然後他的形式也非常的多變,也很難去設定這樣的東西。

8863605-da93dba5e344d468

那我們做了兩種的方式第一個是成功率的方式,我們使用了 3sigma 方式,來自於工業界,是來控制產品的次品率的,如果是 3sigma 是 99.7% 是正品,其實用這個方式我們統計出來的告警裡面,超過正常值範圍裡面的多少多我們認為是多少個次品,把它找出來。

8863605-645de0490a99d083

第二步用孤立森林,就是長的相似的一類的東西,是比較難分類的,要通過很多步才可以去到葉子節點上,所以看到這個 Gap,這一塊就是說在比較淺的葉子的節點,就是異常的節點。

我們通過第一步統計的方式,第二步的無監督方式找到一場。目前最後一步我們還是加了一些規則,讓告警更可靠。這個規則其實就是看到我在什麼時候告警和恢復,這樣一個邏輯既然是一個規則,在未來我們會進一步做一個 AI 化的改造。

那對於這個曲線型的監控,目前我們就是因為曲線不是屬於正態分佈的,一個曲線是一個曲線,所以極差很大。我們把它做了一個分段的 3sigma,就是一個小時一個段,過去 7 天進行一個取樣。

8863605-9ef589d1ee71d272

還有曲線我們可以用多項式去擬合這個曲線,我們用 3sigma、統計方法、多項式擬合幾種方法作為第一步,就是相當於推薦系統裡的多路召回。

第二步依然就是孤立的森林,和前面講的原理一致。

第三步就是有監督的人工標註,就是圖上畫圈的有些告警有一些不應該告警的標註,標註訓練集後去訓練自動地分類。

為了獲得更多的樣本庫,同事們用這個叫相關係數的協方差演算法,尋找更多的樣本庫。大家可以關注一下,就是說去找一些相似的曲線,對訓練不好的模型,就再進行打包去訓練。

8863605-cdfbd20b55f032b0

總的方式,通過三級的過濾找到異常的告警。

我們有十萬多臺裝置,超過120萬個監控檢視,其實之前我們70%以上都沒有設告警,因為很難每個都設一個最高值最低值,所以說目前就把這些模組都納入到這個監控裡面去,百分之百覆蓋,這是一個監控區域值,去設定的一個案例。

8863605-05e5ac7df6527c78

重磅:運維學件即將開源

10月20日、騰訊織雲基於多年運維內部場景整合的 AIOps 利器 Metis 開源專案即將正式釋出。

8863605-6da804d5e7d664b3

Metis 這個名字取自希臘神話中的智慧女神墨提斯(Metis),它是一系列智慧運維的應用實踐集合。騰訊織雲 Metis 團隊通過開源專案 Metis 打造智慧運維的學件平臺。

8863605-9249ea596bb6073c

本次率先開源的時間序列異常檢測學件,是從無監督+有監督學習的角度來解決時序資料的智慧檢測問題。時間序列異常檢測學件是通過學習織雲海量的時間序列樣本,訓練出一套智慧檢測模型,然後利用無監督和監督演算法對時間序列進行智慧檢測。通過 Metis, 運維人員無需再去設定監控閾值,能複用經過織雲海量業務樣本訓練而成的模型,同時跟根據個性業務場景生成新的測試模型,滿足多種業務需求。

原文地址:https://mp.weixin.qq.com/s/9vNV0ldpqwrpjFGZKWaccw

相關文章