本文做者:AIOps智能運維算法
乾貨概覽網絡
AIOps(Artificial Intelligence for IT Operations ),即智能運維,是將人工智能的能力與運維相結合,經過機器學習的方法來提高運維效率。架構
在傳統的自動化運維體系中,重複性運維工做的人力成本和效率問題獲得了有效解決。但在複雜場景下的故障處理、變動管理、容量管理、服務資源過程當中,仍須要人來掌控決策的過程,這阻礙了運維效率的進一步提高。而AI方法的引入,使得機器可以代替人來作出決策,從而讓真正意義上的實現徹底自動化成爲了可能。框架
在AIOps的落地實施過程當中,最關鍵的因素仍是人,即AIOps的建設者們。運維
AIOps做爲一個全新的技術發展和應用方向,並非簡單地說具有某一種技能或招募一兩個大牛就能夠完成的,它須要不一樣角色、多個團隊的配合才能夠達成。根據近幾年來整個業界對AIOps的理解和實踐,AIOps參與角色的劃分也愈來愈清晰。在百度4年的AIOps實踐中,咱們總結得出了以下四種不可或缺的角色:機器學習
運維工程師分佈式
運維研發工程師工具
平臺研發工程師學習
運維AI工程師大數據
能夠看到,除了運維AI工程師外,其餘角色並非AIOps產生以後纔出現的,他們在傳統運維中也發揮了重要做用。咱們今天主要想和你們探討一下,在AIOps時代,他們的職責究竟發生了哪些變化。爲了方便你們理解,咱們會基於百度AIOps的實踐案例,來進行具體說明。
單機房故障自愈場景
單機房故障自愈是一個典型的AIOps落地項目。該方案主要解決的問題場景以下:某個業務因爲網絡、設備、變動、程序Bug、容量等緣由形成故障,但故障範圍僅侷限在單個機房或單個Region內部。那麼,咱們能夠基於流量調度等手段,將訪問流量調度到非故障機房或Region,實現該類型故障的自動止損。
在這個過程當中,須要AIOps四種角色分工明確、緊密配合,來完成整個AIOps解決方案的落地實現。
運維工程師
在單機房故障自愈項目中,運維工程師基於平常運維工做中所積累的場景、問題和經驗,肯定以單機房故障止損做爲主要需求和突破口,經過定義單機房故障止損的問題域、解決思路以及風險點,明確AI能夠發力的領域。
在完成問題域的定義後,運維工程師須要跟蹤整個單機房故障自愈解決方案的落地,包括在策略設計前期提供數據標註支持,在中期進行效果的驗收,在後期將單機房故障自愈方案實際部署運行到生產環境。
AIOps時代的職責和技能變化
運維工程師承擔線上服務質量的責任,是服務質量的關鍵保證。在工做過程當中,會與研發、產品、運營等各種角色、不一樣團隊進行深度的溝通和協做。
傳統運維中,運維工程師的主要職責分爲三個方面:質量、成本、效率。
在AIOps落地實施中,運維工程師是處於中心的角色,也賦予了新的職責,他們是AIOps具體實施的需求提出者和成果驗收者。具體職責包括:
在AIOps時代,運維工程師一方面須要熟悉運維領域的知識,瞭解運維的難題和解決思路;另外一方面須要瞭解人工智能和機器學習的思路,可以理解哪些場景問題適合用機器學習方法解決,須要提供怎樣的樣本和數據,即成爲AI在運維領域落地實施的解決方案專家。
運維AI工程師
在單機房故障自愈場景中,運維AI工程師將機器學習的算法與實際的故障處理業務場景相結合,針對單機房故障場景的風險點,進行策略研發與實驗工做。以下圖所示:
運維AI工程師分別設計了以下算法策略來知足整個複雜故障場景的自動決策:
異常檢測算法:解決故障發現時指標異常判斷問題,基於AI方法實現較高的準確率和召回率,做爲整個故障自愈的數據基礎。
策略編排算法:基於當前線上的實際流量和服務狀態,設計損益計算模型,判斷基於何種方式的操做組合或步驟,可以使整個自動止損帶來收益最大,風險最小。
流量調度算法:基於線上服務容量與實時流量狀況,進行精確流量比例計算,防護容量不足或不許風險,並實現流量調度收益最大化。
在完成策略設計與研發後,須要根據歷史數據進行Case回溯,並進行仿真Case模擬,來驗證策略效果,並進行逐步迭代調優,以達到線上運行的準確率和召回率要求。
AIOps時代的職責和技能變化
運維AI工程師是將AI引入運維的核心角色。他們針對運維數據、運維經驗進行理解和梳理,使用機器學習的方法將海量運維數據進行彙總、概括,使得數據中的價值顯現出來。
運維AI工程師首先須要具有AI工程師的技能,須要對數學及機器學習方法有足夠的掌握程度,並能應用實踐。
如單機房故障自愈場景中的介紹,運維AI工程師須要具有機器學習知識並在運維領域落地的能力。
平臺研發工程師
在單機房故障自愈場景中,平臺研發工程師須要關注三類平臺的建設。
基礎運維平臺:提供單機房故障自愈場景中的依賴平臺,如:監控平臺和流量調度平臺。在平常運維中提供標準化運維數據獲取和運維操做的基礎,而在AIOps中,這部分接口須要可以同時支持人工和自動的數據獲取和運維操做。
智能運維平臺:提供對AI能力的支持,如:統一的數據服務(運維知識庫)、運維開發框架,以及給AI策略實驗和運行的運維策略框架等。
故障自愈機器人:針對單個業務場景進行平臺化抽象,使之成爲一個基礎服務,基於AIOps平臺研發和運行。
AIOps時代的職責和技能變化
平臺研發工程師負責運維平臺及基礎組件的研發與建設。
在傳統運維場景中,平臺研發工程師負責平臺、基礎組件、類庫和工具的研發工做。在針對運維的場景中,會覆蓋運維相關的服務管理、監控、變動、流量調度等相關平臺。
這部分平臺是運維的基礎,在AIOps時代仍然須要依賴於這些平臺的建設。
同時在AIOps場景中,數據成爲了中心,運維各類狀態信息轉換爲大數據,機器學習則做用在大數據上進行分析。在百度AIOps的實踐中,運維開發框架、運維知識庫、運維策略框架共同組成了完整的智能運維平臺,三大平臺的建設和實施離不開大數據、機器學習架構的引入。這就要求平臺研發工程師具有大數據、機器學習平臺架構師的多重身份,具有流式計算、分佈式存儲、機器學習平臺、算法策略平臺等一系列大數據和機器學習平臺架構能力。
運維研發工程師
基於多個業務線場景抽象出的單機房故障自愈解決方案,可以知足大部分場景需求,但並不意味着能夠直接提供給各個業務線來使用。緣由以下:
策略和參數須要進行調整
流量調度、容災策略等策略,針對不一樣的業務線,配置並不相同。例如某些業務對響應時間敏感,跨地域的調度會帶來較大的延遲,影響用戶體驗,這時就須要根據業務狀況配置機房之間的跨機房流量調度延遲係數,來實現流量優先調度到延遲係數最低的機房。
通用框架沒法知足全部需求
部分業務線須要對原有的策略進行部分重寫纔可以知足需求。例如,部分業務在流量調度時,須要聯動服務降級來知足容量需求,這就須要額外增長服務降級聯動的邏輯。
那麼,就須要運維研發工程師出手來解決這個問題。根據業務線的實際狀況,對策略和參數進行配置和調優,對通用框架沒法知足的需求,進行定製化研發,使得單機房故障自愈方案可以實際應用在不一樣業務線上。
AIOps時代的職責和技能變化
運維研發工程師負責基於業務線特徵的運維研發工做,在傳統運維中,是運維自動化的實施者,實現了針對業務場景的自動化運維實施落地。
在AIOps時代,運維研發工程師承擔了AIOps智能化運維解決方案在業務線實施落地的職責。他們是AIOps場景的實踐者,將AIOps解決方案與業務架構特徵相結合,實現AIOps在業務線的落地。
一方面,他們會與運維工程師緊密配合,對業務問題進行深度分析,理解業務的特色。另外一方面,他們與平臺研發工程師、AI工程師相配合,基於AIOps解決方案的策略和框架,進行定製化開發,使其適合自身業務線的特徵。
總結
本文介紹了運維工程師、運維AI工程師、平臺研發工程師、運維研發工程師四種角色在自動化運維時代和AIOps智能化運維時代,其職責和技能的拓展和變化。AIOps技術爲運維技術的發展帶來了更多的機遇,對於每一個參與到AIOps實施的我的或團隊也是如此。四種角色既有術業專攻,同時又緊密協做,共同將AI能力引入爲運維賦能。那麼,你的選擇是什麼呢?