從科研角度談“如何實現基於機器學習的智慧運維”

架構師技術聯盟發表於2017-12-28

640?wx_fmt=png&wxfrom=5&wx_lazy=1


0?wx_fmt=gif&wxfrom=5&wx_lazy=1

      清華大學計算機系副教授 裴丹於運維自動化專場發表了題為《基於機器學習的智慧運維》的演講,現場分享了基於機器學習的智慧運維目前面臨的挑戰和解決思路。以下為演講實錄,今天大概內容包括智慧運維背景介紹、如何從基於規則上升到基於學習


      首先會做一個背景的介紹;為什麼清華大學的老師做的科研跟運維有那麼多關係?智慧運維現在已經有一個很清晰的趨勢,從基於規則的智慧運維自動化逐漸轉為基於機器學習了。再介紹幾個跟百度的運維部門搜尋部門進行合作的案例;最後,還要講一下挑戰與思路。


一、智慧運維背景介紹


      談一下參加這次大會的感受,昨天各位講師們的報告,特別是今天早上幾位講師的報告特別精彩,講到了在生產一線過程中遇到的各種挑戰以及大家的實踐和經驗,我們又加了運維的群,對於像我這樣在科研領域做運維相關科研的工作者來說,感覺找到了組織。


      介紹一下我的經驗,特別是跟海峰老師開場的時候,講的一個概念是相關的。海峰老師提到說我們做運維很苦,正好我大概在去年這個時候,我在百度的運維部門,講了一下做運維如何做得更高大上一些,我的題目叫做《我的運維之路》。我們先簡單看一下,我個人學術上的官方簡歷。


0?wx_fmt=png


      我讀了博士,然後在AT&T研究院實習,AT&T研究院前身是貝爾實驗室的一部分,這裡面大概有200個博士,有C發明者、防火牆之父,當然我其實沒有怎麼見到過他們,但是辦公室是在一起的。之後在裡面做了大概6年時間,發了不少論文,得了一些獎,發表了23項運維相關的專利。然後回清華做了不少科研,這是我的官方簡歷。


      實際上我在做什麼事情?我就是一個運維人員。在一個30萬人的大公司裡面做運維,當然主要是通過大資料分析的方法。我讀博期間跟美國各種運維人員打交道了五年;在實習過程中,喜歡上了分析實際的運維資料;真正在那邊工作的時候,基本上就是一個第五級的運維,做的事情是基於大資料技術管理網路和應用的效能,各種網路協議、IPTV、Video等等。


      回到清華做科研的時候,開設的也是網路效能管理/應用效能管理相關的課程,所有的科研都是跟運維相關的,在國內有一些合作者,包括百度的運維部門、搜尋部門以及中石油資料中心等等。我可以認為自己是一個運維人員,很高興在這裡跟大家分享我們之前的一些經驗。


      為什麼說運維是可以做得很高大上的事情?這是一個會議叫SIGCOMM,網路裡面最頂級的會議,如果計算機網路的事情是像電影一樣,這就是奧斯卡,每年大概錄用三四十篇論文,錄用一篇,就跟中彩票一樣。我們看它的Submission,就是這麼多,跟我們運維相關的佔了40%。


0?wx_fmt=png


      再看評委會,我只列出了AT&T研究院裡面的前實習人員和前員工的一些同事們,基本上現在都到大學裡當教授了。所以說運維苦不苦,是不是可以做得更高大上一些,取決於怎麼做。


      資料分析機器學習,這是很好的路線。再看評委會,我只列出了AT&T研究院裡面的前實習人員和前員工的一些同事們,基本上現在都到大學裡當教授了。所以說運維苦不苦,是不是可以做得更高大上一些,取決於怎麼做。資料分析、機器學習,這是很好的路線。


0?wx_fmt=png


      不光是最頂級的會議,我們還有一個專門做運維相關的會議。這個會議,就是這撥人裡面,覺得SIGCOMM這個會一年30多篇,實在是收得太少了,我們再開一個會議,全部都是運維相關的,這是一個頂級的會議,是我科研領域一個主要的戰場之一。


      鋪墊一下,就是說運維是有很多可以鑽研的地方,有很多科研問題。


      簡單介紹一下我在清華大學的實驗室,叫NetMan。我的網路管理實驗室做的科研,基本上都是跟NPMAPM運維相關的。我們跟網際網路公司做一些合作,主要做運維相關的自動化工作,跟SmoothAPP相關的運維工作,跟清華校園網WiFi做一些網路效能優化的工作。我們做了一個核心的基於雲的運維演算法平臺,具體這些運維的應用,下面都有一個核心的演算法,再下面還有一個大資料分析的平臺,就是常用的各種開源工具。


0?wx_fmt=png


      前面所講的是背景部分。我想要表達的一點,工業界、學術界應該在運維領域裡面能夠密切合作,各取所需。工業界有很多實際問題,有很多的經驗,也有實際的資料,學術界老師們有時間有演算法有學生,大家一起結合,這樣就會產生很好的效果。


0?wx_fmt=png


      值得各位運維界同仁們關注的就是學術界的頂級會議,我比較推薦的是上面圖中的這些會議,這些會基本上一年三五十篇論文的樣子,簡單瀏覽一下,跟大家做得工作是不是相關,瀏覽一下最新的會議論文集,看看有沒有相關的,還是很有幫助的。美國的工業界,像谷歌Facebook都已經在這些會議上發表過一些論文,包括他們在工程上的一些實踐。


二、從基於規則到基於學習


      簡單介紹一下智慧運維大概的歷程,基於規則到基於機器學習


      我簡單回顧一下,我們這個趨勢,不光是說我們這個領域的趨勢,整個人工智慧領域發展的趨勢。人工智慧也是經歷了起起伏伏,最近又非常火。基本歷程,就是從基於專家庫規則到逐漸變成機器學習,再到深度學習。


      我講一下幾年前基於專家庫規則到機器學習的經歷。


      我們在做降維分析的時候,需要一個規則集,什麼事件導致另外一個事件,再導致額外頂級的事件,最後倒推回來,什麼導致了這個事情。我們當時針對骨幹網做的各種事件的關聯分析,基本上是基於規則的。當時CDN的效能事件,這個事件導致這個事件,單獨對它進行分析,如果這個事件發生,可以通過監測到的各種事件一直推到這兒。當時做出來的時候,起到了很好的效果,發表了論文,審稿評價也很高,也有專利,現在還在非常常規地使用,並且用得很好,效果很好。


      但是這裡面有個問題,規則是由運維人員給出來的,為什麼能夠執行的很好?因為在網路骨幹網上面情況不是那麼複雜,網路協議一層接一層,事件比較少,所以比較容易把規則弄出來。


      我們跟百度進行合作的時候,發現不是那麼好做。因為在網際網路公司裡面,大家都在講微服務,模組特別多,規模很大,百度這邊一百多個產品線,上萬個微服務模組,上萬臺機器,每天上萬個軟體更新,想通過人把這些規則表達出來,執行到你的系統裡,根本就不行,我們試了一下,很快就碰壁了。


      最後怎麼辦?我們採用了基於機器學習,把這些規則挖出來。我們在做的過程中不斷總結,不斷遇到新的問題,實現了基於規則的智慧運維過渡到基於機器學習。


      機器學習本身已經有很多年了,有很多成熟的演算法。要想把機器學習的應用做成功,要有資料,有標註資料,還要有工具(演算法和系統),還要有應用。對於我們運維領域來說,這幾點到底是怎麼做的?


      第一點,是資料。網際網路的應用天然就有海量日誌作為特徵資料,想各種辦法做優化儲存。在執行過程中遇到資料不夠用還能按需自主生成,這是很好的。


      二點,是過程反饋。在運維日常工作中還會產生各種標註資料,比如說工單系統,發生一次運維事件之後,具體負責診斷的人員會記錄下過程,這個過程會被反饋到系統裡面,我們可以從裡面學到東西,反過來提升運維水平。


      第三點,就是應用。做出來的系統,我們運維人員就是使用者,我們可以設計、部署、使用、並受益於智慧運維繫統,形成有效閉環。建模、測量、分析、決策、控制,很容易形成一個閉環。我們能夠形成閉環,因為我們有這樣的優勢。


      總結一下,基於機器學習的智慧運維具有得天獨厚的基礎,網際網路應用天然有海量日誌作為特徵資料,運維日常工作本身就是產生標註資料的來源,擁有大量成熟的機器學習演算法和開源系統,可以直接用於改善我們的應用,所以我個人有一個預測,智慧運維在今後若干年會有飛速的發展(待續)。


      驀然回首,自開號以來,本號已經創作430+篇文章,自媒體的紅海時代已經全然來臨(死傷無數),隨著百家號、今日頭條等知名媒體把推廣重點放在娛樂八卦、人體藝術和小視訊上之後,技術號生存空間變得更小。本號之所以一直堅持創作,其源動力基本來自幾萬粉絲精神的支援,如果覺得文章對大家有用,請大家不吝動動手指分享給更多讀者(源動力)。也不知道什麼時候會停筆,但不到萬不得已相信會堅持寫下去。


      利用週末時間(一般都是週末),對Ceph技術架構、生態和特性詳細對比分析進行了二版重新整理,重新整理內容包含Ceph架構,故障機制、後端物件儲存演進、Ceph跟Glustre FS和華為分散式OceanStor 9000產品對比分析。感興趣的讀者可通過原文連結檢視詳情。


>>>推薦閱讀



溫馨提示:
請搜尋“ICT_Architect”“掃一掃”下面二維碼關注公眾號,獲取更多精彩內容。

640?wx_fmt=png

聽說點贊和分享的朋友都已走上人生巔峰了

0?wx_fmt=gif

相關文章