TechRoomage

機器學習在IT運維中的應用

0 1

原標題:機器學習在IT運維中的應用

IT 運維中,機器學習是什麼?

現如今,人工智慧和機器學習已經滲透進了每個領域,它從根本上改變和影響了這些領域的業務模式、技術架構以及方法論。同樣在 IT 運維與 Devops 中也是如此。作為 IT 運維團隊,我們真正關注的是機器學習如何提供實時事件的管理能力,從而幫助較大規模的企業提高服務質量。這其中的關鍵點就在於在用戶發現問題之前提早探測異常,進而減少生產事故與中斷帶來的負面影響。

那麼在 IT 運維中,機器學習是什麼?

在 wiki 中機器學習的定義如下:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

也就是說,隨著任務的不斷執行,經驗的積累會帶來計算機性能的提升。

而在 IT 運維的語境中,這段話又可表述為:隨著運維事件(運維數據)的不斷產生,處理結果的積累會帶來企業服務質量的提升。

我們期望在這個過程中可以建立一種行為模型,一方面它可以依據經驗數據識別事件,將事件歸類、歸因。另一方面它又可以動態改變事件發生的條件,反過來影響事件發生的概率。例如監督式機器學習可以記錄用戶給定的告警及告警集群的活動,並相應地動態調整告警規則。這不同於傳統管理工具的方式,你需要在一開始就對它們進行一定的配置,建立靜態的規則,並期望它們留意你預先就知道會發生的事件。而機器學習則可以存在反饋機制,它能利用數據不斷創建和更新行為模型,而不是使用靜態的行為去尋找特定的結果。

並且,機器學習還可以在不指明具體方向的情況下自行探索,它可以發現事件隱含的特性,並依據此將相關的事件聚類,總結出特徵向量。這種無監督的機器學習方式可以發現事件與事件、事件與運維結果之間的隱性關聯。例如,它可以用於分析事件流和日誌信息,從而找出異常的消息簇。之後,這些異常可以與某項運維結果或者事件相聯繫,從而分析出潛在的原因與癥結。

在運維中應用機器學習的前提是具有運維數據、應用場景、特徵工程、預測模型。

運維數據

在運維過程中,會產生海量的運維數據,這其中有些可用於描述應用或者系統的運行狀態、有些可用於標籤、有些可用於進行經驗反饋。這些巨量的、多維度的數據是機器學習建立行為模型的基礎。運維數據從來源和用途上可分為機器數據、傳輸數據、代理數據和人為數據。

機器數據

由應用或者 IT 系統自身產生,包括日誌信息、監控數據等。這類數據的量最大、維度最廣,它可以全面的描述應用、系統或集群的運行狀況。

傳輸數據

在不同系統之間通過網路傳輸的數據,可能包含系統或者業務數據。

代理數據

由一些工具主動產生的數據,比如代碼分析、系統測試數據等。這類數據一般是通過特定的方式產生,本身就帶有一定的特徵和標籤性。

人為數據

人產生的數據,比如系統操作、提的工單、QQ& 微信中的信息等。這類數據可以作為經驗判斷和標籤的依據。

運維場景

場景也就是所謂的任務。機器學習的核心就是用一個預測模型(線性回歸、邏輯回歸、SVD、決策樹等)和一堆原始數據(運維數據)來得到一些預測結果。而這個預測結果就是任務的預測值。以下我列了幾個在運維領域適用於機器學習的場景。

消除事件噪音

在 IT 運維中產生的成千上萬的事件充滿了噪音和冗餘,單純靠人工方式根本無法處理。機器學習可以自動化這個流程,類似於電子郵箱中的垃圾郵件過濾機制。利用機器學習,可以大幅度降低事件的噪音,只甄選真實的事件向用戶告警。

機器學習在IT運維中的應用

事件歸因歸類

機器學習可以按照預先定義的模型,提取事件的特徵,歸類到不同的事件場景 (situation) 中,便於運維人員理解與處理。

機器學習在IT運維中的應用

事件對齊

機器學習將事件歸類到事件場景后,可以分析事件之間的關聯、按照因果邏輯生成事件告警。這樣運維人員看到的事件告警是經過處理的、具有邏輯關係和意義的結果信息。

複發事件的探測與處理

對於以往發生的事件與告警,機器學習可以自動學習事件場景與處理策略。當類似事件再次發生時,機器學習可以將事件歸類,並自動生成處理步驟,提供給運維人員。

機器分類

機器學習可以按照預先定義的模型,根據機器數據自動分類機器。這樣運維人員可以針對不同的分類,做相應的分析與優化。

機器學習在IT運維中的應用

特徵工程

在機器學習中,一個預測模型的好壞往往取決於特徵工程。坊間常說:數據和特徵決定了機器學習的上限,而模型和演演算法只是逼近這個上限而已。由此可見特徵工程在實際的機器學習中的重要性。從某些層面上來說,所使用的特徵越好,得到的效果就越好。在有些時候,我們甚至可以使用一些不是最優的模型來訓練數據,如果特徵選擇得好的話,依然會得到不錯的結果。

而在運維中,如何選擇特徵是個領域和工程問題。

我們一般可以遵循以下流程來構建特徵:

  • 任務的確定:根據具體業務確定要解決的問題

  • 數據的選擇:收集數據,整合數據

  • 數據的預處理:數據格式化、清洗、採樣

  • 特徵的構造:利用領域知識和工程化方法構造和選擇特徵

  • 計算模型:通過模型計算得到模型在該特徵上所提升的準確率

  • 上線測試:通過在線測試的效果來判斷特徵是否有效

預測模型

在有了運維數據和應用場景(確定業務問題)后,如何建立一個預測模型能盡量的擬合數據,從而使得目標函數最優化則成為了解決運維問題的關鍵。

一般情況下預測模型可以分成兩個子集:回歸和分類。

回歸

它研究的是因變數和自變數之間的關係,以便做出關於連續變數的預測,如天氣預報的最高溫度的預測。在技術運維中,我們可以通過建立回歸模型來預測下一個點的監控值,並通過設置動態閾值的方法來對異常數據進行檢測。

分類

與回歸模型不同,分類的任務是分配離散的類標籤給特定的觀察對象作為預測的結果。回到上面的例子:在天氣預報中的分類問題可能是對晴天、雨天或者雪天的預測。

分類任務可被分成兩個主要的子類別:監督學習和無監督學習。

在監督學習中,用於構建分類模型的數據的類標籤是已知的。例如,一個垃圾郵件過濾的數據集,它裡面將包含垃圾郵件以及非垃圾郵件。在有監督的學習問題中,我們已經知道了訓練集中的郵件要麼是垃圾郵件,要麼是非垃圾郵件。我們將會使用這些信息來訓練我們的模型,以對新的郵件進行分類。在運維的場景中,我們可以通過建立有監督的分類模型,來消除告警噪音。

機器學習在IT運維中的應用

而與此相反,無監督學習任務處理未標記的實例,並且這些類必須從非結構化數據集中推斷出來。通常情況下,無監督學習採用聚類技術,使用基於一定的相似性(或距離)的度量方式來將無標記的樣本進行分組。例如在技術運維中,我們可以對機器進行聚類,便於運維人員找出它們彼此之間的關聯,做相應的分析與優化。

機器學習在IT運維中的應用

總 結

傳統的運維方式基本都是依賴人工和靜態規則,它們無法適應於動態複雜變化的場景。而人工智慧可以讓運維具備機器學習和演演算法的能力,從而在動態變化場景的複雜條件下,能夠做出高效準確的決策判斷。我們需要具有從「基於專家經驗」到「基於機器學習」的觀念轉變,讓 Ops AI 化(這個 AI 指的是 Algorithmic IT),從而推動運維朝著高效的方向發展。

隨著大數據技術的發展以及數據產品的應用和推廣,尤其是在工業和網際網路領域,企業使用機器學習來提升收入或是降低成本的方式愈加有效。這其中,預防欺詐、定位電子廣告的目標客戶、內容推薦、建造更好的汽車、瞄準更好的潛在市場、優化媒體改善醫療保障服務等都證明大數據機器學習的多功能性和廣泛的適用性。

大家都知道,機器學習技術不僅包含高深的理論演演算法模型以及對數據的合理利用,同時也離不開全面的工程技術支持。因此,QCon 2017 上海站特設會前兩天的深度培訓——綜合介紹業界先進的機器學習演演算法模型及應用實踐,以及飛速發展的大數據實時計算技術。我們邀請的國內一線網際網路技術專家們,也將通過各自在不同領域的實踐分享,向大家展示如何利用【機器學習實踐】和【大數據實時計算】技術的融合來引領業務發展的,並引領大家走上成為機器學習工程師之路。

深度培訓在 QCon 大會前 2 天,10 月 15 日 -16 日在上海寶華萬豪酒店舉辦,培訓包括 10 小時的授課和 2 個小時的提問交流,沉浸式學習熱門技術,深度培訓機器學習和大數據實時計算知識。

機器學習在IT運維中的應用

學習席位有限,點擊 「 閱讀原文 」即可進入大會官網,了解更多信息,點擊官網「立即報名」按鈕即可獲取學習席位,開啟成為機器學習工程之路。

Leave A Reply

Your email address will not be published.