關於智能運維AIOps的一點思考

矛盾是事物發展的源泉和動力。運維中的矛盾無處不在,既有來自業務與技術的矛盾,也有來自開發和運維的矛盾,還有來自數據中心內部的矛盾,解決這些矛盾只能靠發展。

一、安全生產

數據中心的主要職責是安全生產,圍繞著安全生產有三個目標:

2.1高可用架構:高可用的IT基礎設施可以確保應用系統的可用性與連續性,包括:應用集群、系統熱遷、數據庫集群、存儲複製、物理備份等。

2.2高效運維:圍繞著高可用架構,進行一些列高效運維工作,包括:資源供給、應用部署、日常變更、故障處理、數據治理等。

2.3 節約成本:在滿足高可用和高效的前提下,儘量節約成本,包括資源優化、性能優化、以及減少成本不敏感的資源浪費。

二、高效運維

主要涉及如下四個方面工作:

2.1資源供給:之前是針對每次資源申請,運維人員都得把機器上架、系統安裝、存儲配置、網絡配置等一系列流程跑一遍,涉及各個專業的人工協同,小企業人少,一個兩個人搞定一切,大企業專業分工明確,這些工作需要多人協同,效率無法保證。現在是通過雲計算來提升效率,主要是池化和自動化,池化是指提前準備一批資源,避免每申請一次就得準備一次,自動化是指通過自動化的流程去串接各個專業條線,避免溝通成本和低效的手工操作,提高了效率和人員安全。

2.2應用部署:之前是開發完交付給測試、測試完組織投產、投產完開展運維,不同階段的人員相互割裂,應用發佈部署效率低。現在通過DevOps提高效率,DevOps強調持續CI/CD,通過CI實現開發到測試的持續集成測試,通過CD實現開發到運維的持續系統部署,通過CD實現技術到業務的持續價值交付。

2.3變更管理:之前是人工配合一些工具腳本,無系統化思維能力,往往只見樹木不見森林。現在是通過雲提升系統外變更效率,通過自動化工具(例如Puppet和Ansible)提高系統內變更效率。

2.4故障處理:之前是接到監控告警,各專業分析根源,執行應急預案,但是存在很多問題,例如:缺乏故障預測、誤報漏報、分析慢、無法自愈。現在是通過AIOps解決,實現故障預測、故障檢測、根因分析、故障自愈,儘量減少人工參與。

、智能運維(AIOps)

IT運維經歷了三個階段,即人工運維、自動化運維、智能運維(AIOps)。人工運維是指人工配合腳本。自動化運維是指系統工具的自動化,決策在人,執行在機器。智能化運維是指決策的自動化,決策在機器,執行也在機器。決策在於推理,推理依賴於規則,現階段,規則是可編程的稱為自動化,規則是可學習的稱為智能化。

3.1 AIOps定義:AIOps是指基於已有的運維數據(訪問關係、監控告警、日誌),採用數據分析和機器學習方法,提高運維決策能力,解決自動化運維無法解決的問題,進一步提高運維效率。AIOps的價值不僅在於提供智能運維決策,也在於實施過程中,對已有的基礎架構、應用關係、監控告警、日誌數據等進行梳理,實現真正的精細化運維。當然,AI算法的侷限性、場景的多樣性、數據的複雜性,決定了AIOps是人力密集性、過程的曲折性,也決定了AIOps不能解決全部問題,需要人機協同和知識圖譜,才能發揮AIOps最大價值。

3.2 數字化運維:信息化是把手工流程變成線上流程,數字化是把物理對象抽象為數字對象,通過大數據分析和機器學習算法挖掘數據的價值。大數據主要通過大量多樣數據的分析,挖掘數據的價值,會使用到一些機器學習算法,機器學習主要強調決策的自動化,依賴的基礎也是數據,可以說,大數據分析基礎,AI是目標態。AIOps是運維數字化的直接體現。

3.3 AIOps場景:一是質量方向,主要是異常處理,包括異常預測、異常檢測、根因分析、故障自愈等。二是效率方向:主要是預測,包括批量預測、容量預測、交易量預測等。三是成本方向,包括資源優化、性能優化等。

3.4算法為尊:

現階段的AI得以發展,得益於算力、算法、數據的共同改良,算力是通用的,場景決定數據,數據決定算法。往往不同的場景有不同的數據,即使同一個場景的不同環境也有不同數據,這就決定了數據的適配性、算法的多樣性。

AI算法:機器學習算法,按標註可以分為監督、非監督、半監督、強化;按用途可分為分類、聚類、迴歸、降維;按照方法可分為統計學、傳統機器學習、深度學習等。其中,統計學(例如:正太分佈、均衡分佈)要求數據必須滿足某種分佈,在異常檢測領域用的多,包括運維領域的故障處理、金融領域的反欺詐、工業領域的殘次品檢測。傳統機器學習(例如:kmeans、隨機森林、支持向向量機、貝葉斯、決策樹、馬爾可夫等),雖然對數據要求弱一些,但對場景依賴強,即使是同一個場景的不同環境,也需要不同模型,在數據分析領域用的比較多。深度學習(深層神經網絡,例如:CNN、RNN)對數據要求高,因為更多的數據才能訓練出更深的神經網絡,更深的神經網絡抽象表達能力更好,也就決定了場景適應能力越強,主要是用在圖像技術、語音技術、自然語言處理三個通用技術領域。

AIOps算法:做異常處理時,主要是概率分佈和聚類,分類比較少,因為GT少。做預測時,可以是多維的線性迴歸模型,線性迴歸簡單,但魯棒性差;也可以是基於深度學習的非線性模型,一則對數據要求高,二則需要監督學習;還可以是傳統的貝葉斯模型,但預測效果一般。

3.5方案為王:學術界研究通用問題,尋找更優的算法,工業界除了需要解決通用問題,還需要解決更多的個性化問題。甲方和乙方經常不在一個頻道上,乙方主打算法和產品,甲方確需要解決方案,解決應用場景中的痛點,這中間需要乙方設立解決方案部門,熟悉甲方各種套路。算法的價值在於解決問題,在算法、產品、解決方案、應用場景、產生價值整個週期中,算法僅僅是個開始,研究新算法,解決通用問題,固然很重要,利用已有算法,解決個性化問題,給出完整解決方案,才是關鍵。

3.6非零基構建:AIOps是在現有基礎架構之上構建的智慧大腦,依賴於現有的眼(應用訪問關係、監控告警、日誌)和手(雲和自動化工具)。眼數據主要有:應用訪問關係,基礎架構成熟的企業,積累了應用訪問關係,不成熟的企業,需要藉助AIOps進行梳理;監控數據,包括設備監控數據、網絡監控數據、系統監控數據、平臺監控數據、應用監控數據、業務指標監控數據,這些都是結構化的時序數據;日誌數據,非結構化的數據,每個系統都有自己的日誌數據,不便於統一分析。手主要分為外手和內手,外手主要是在系統在外側操作,可以通過雲平臺(IAAS和PAAS)實現,內手主要通過自動化工具實現,例如無代理的Ansible和有代理的Puppet。AIOps就是基於現有的眼數據,進行分析、推理、決策,然後使用現有的手進行運維。

四、監管之劍

監管要求的安穩態是把雙刃劍,一方面確保了業務的安全穩定運行,另一方面卻阻礙了技術創新。以金融行業為例,強調嚴管控,嚴格遵守ITIL標準流程(發佈管理、配置管理、變更管理、問題管理、事件管理),追求安穩態。然而,技術創新,無論是雲計算、還是DevOps、還是AIOps,都在追求敏捷態,這往往挑戰了監管要求。在監管面前,一切違反監管要求的做法都是一票否決。我們可以在現有的監管框架內尋求折中,例如,在嚴格遵守ITIL的嚴管控流程的同時,把人工流程全部優化為自動化流程,但這會偏離技術創新的原有初衷。解鈴還須繫鈴人,監管需要為技術創新改變。

五、結束語

真理都是簡潔的,但發現真理的過程往往是且複雜且曲折,這也是AI的魅力所在,我們相信,在學術界和工業界的共同努力下,AIOps終將展現出真理的一面。

關於智能運維AIOps的一點思考


分享到:


相關文章: