多雲環境下的AIOps

AIOps (Artificial Intelligence for operations)人工智慧維運,也有人稱NoOps(NO IT Operation)。AIOps在雲端運算仍是一個相當新的概念。AIOps會分析整個系統(端到端的方式)的健康狀態與行為,意思是程式代碼到與之相關的基礎設施都會進行分析。根據分析的結果給予建議以達到資源優化。好的 AIOps 工具可以跨平台,因為它們從應用程式甚至業務供應鏈的角度來運作的。簡單來說AIOps提供以下功能與效益:

  1. 監控與分析IT系統
  2. 問題的自動解決
  3. 維護的預測
  4. 資源優化

本文將介紹AIOps的概念。我們將會討論AIOps的幾個組件,包含資料分析、自動化與機器學習。我們同時會介紹市面上幾家AIOps的領導廠商。

以下為在本文中會討論到的重點:

  • AIOps的概念
  • 使用AIOps優化雲端環境
  • 多雲環境的AIOps

AIOps的概念

AIOps靠的使用大數據分析與機器學習來自動的調查與修正發生在IT系統內的各項問題,也就是自動化的問題發現與修正。而這些資料需要盡可能的去搜刮,基本上只要會產出資料的東西通通都收集進來。所以有時資料當然也包含了企業以外的資料。AIOps學習的就是IT系統組件內還有與外部之間的關係。

所以針對一個複雜又多樣的多雲環境,AIOps對我們的維運看來是可以幫助我們看到全貌的。例如當我們的客戶抱怨網站效能變慢,我們如何從與網站相關的眾多服務與組件中快速找出是哪一個影響了效能。

以下為AIOps的組件說明:

  • 資料分析:
    這裡可以參考本部落格AWS與GCP的大數據系列文章介紹。AIOps使用這個組件可以快速有正確的確認問提點是哪一個。
  • 機器學習(ML):
    這裡可以參考本部落格AWS與GCP的機器學習系列文章介紹。AIOps可以根據ML決定事件與告警的優先順序並開始自動進行修復
  • 自動化:
    這可能是最重要的部分了。不過資料分析事件之後,都需要進行回應來修正問題。但這只有我們將系統配置成高度自動化時才辦得到。有些AIOps系統甚至可以預期即將發生的事件而預先進行動作,也就是我們之前說的"Predictive maintenance"。
  • 視覺化
    雖然AIOps是全自動化與自我學習的,不過最後還是需要人類的監管與修正它的錯誤行為。從這個角度來看,AIOps最多取代了傳統NOC的L1或到L2工程師的工作。但它仍然無法修改架構面的事情。企業仍然需要架構師來對系統架構進行全面性的探討,因為AI永遠無法感測人心。

嚴格來說AIOps只是DevOps的延伸,而不是取代。因為有些事還是需要人來決定,而這個決定考量不會只有技術面。AI/機器學習做的是尋找資料的模式與相關性,而不是因果關係。

使用AIOps優化雲端環境

AIOps在實作上有兩個效益:

  1. 快速且正確的自動化回應偵測到的問題
  2. 雲端資源的容量優化

幾乎有的雲端平台都提供了自動化的資源擴展(scale out/up),但這通常是DevOps團隊成員設立一個門檻值(描述性)後才會觸發。AIOps用大數據與ML來決定何時該觸發資源擴展,它做的是預測資源何時需要加入或減少。與DevOps不一樣的是,這一類的自動觸發動作,由描述性的(descriptive)轉變成為預測性的(predictive),例如AIOps統計過去兩周以來的CPU使用率來判定,當使用率沒有超越過去平均統計的95%就視為正常。下圖為我們從一般的維運到NoOps維運。

一般的傳統監控告訴我們的是What’s up(發生何事),但是AIOps透過資料分析後可以告訴我們What’s Next(下一步怎麼辦,也是老闆想知道的)。並且自動化回應這個事件(也就是predictive與proactive),人類只需要監看其結果。維運的最終階段則會進化到指示性的(prescriptive),也就是系統會指示我們應該怎麼做。也就系統接下來應該會發生甚麼事,而我們已經準備好怎麼應對了。但就市場區隔來看,指示性的維運應該劃分到NoOps的市場。

以下提供是企業在實行AIOps策略時應該有的一些指導方針:

  1. AIOPs是一種學習系統:傳統上企業各項的系統維運分析都是分開的。但現在需要集中在一起。
  2. 沒有資料,AIOps就甚麼都不是:
    這也是企業要變成資料導向組織的基本
  3. 最後都需要標準化
    因為標準化才有可能達成維運的一致性

剛剛我們提到AIOps可以視為是DevOps的延伸,因為它是在原有的系統上發展"優化"。在DevOps與CI/CD的實作中,"測試"是最重要的元素。基本上,開發人員首先使用單元測試針對一個應用程式的功能進行測試,然後再與其他應用程式或系統整合。 問題是開發人員無法測試所有內容; 例如,他們無法針對 IT 服務鏈中的系統組件發生變化的場景進行測試。這些IT的變動在理論上可能不會產生重大影響,但在實際運作上中會產生甚至引發完全出乎意料的行為。

AIOps可以幫助我們將實際運作可能會發生的IT 服務鏈中的系統組件發生變化的場景考量進去。AIOps可以幫我們考慮在各種變動之後IT系統可能發生的狀況,反之亦然。也就是哪些系統將回應效能和穩定性方面的變化。而這些可能都散落在不同的雲端平台中,而這也是整體IT服務組件鍊的一部分。

AIOps 可以幫助我們了解整體IT系統即將發生的變化,甚至採取主動措施來避免應用程式和系統遇到麻煩。 而這不是單純的CI/CD流水線觸發的單元和整合測試能夠做的,因為這些流水線是人為固定好的,即使要改變也要人為介入。

而維運一個雲端平台已經夠複雜了,在多雲環境下複雜度就不是線性成長而是指數成長。而在我們不斷修改並強化我們的整體系統時,AIOps還可以時時刻刻檢查系統是否違反了組織所需要遵守的資安框架。

多雲環境的AIOps

由於AIOps的效益這麼大,所以全球的科技巨頭無不爭相投入這個市場。這篇Gartner文章解釋了為甚麼這些科技巨頭,甚至是科技新創產業也投入研發這一個技術。

哪企業(也就是我們)如何選擇AIOps這一類的解決方案呢?就是AIOps可以"使用API方式來跟所有雲端平台的監控軟體與第三方監控進行整合。就是可以從這些地方撈出資料"。而整個AIOps平台的作業內容是分層次的,如下圖:

而不論使用哪一家的AIOps的系統。重點在於:AIOps要能即時且自動的發現多雲環境中的任何變化,而且可以在事件實際發生之前預測對 IT 環境中任何其他組件的影響,也可以從 CI/CD 流水線計劃的變更中預測。

AIOps協助企業成為資料驅動的組織,所以越來越多的企業開始搞數位轉型。 IT 架構是由業務決策驅動的。 但業務本身是由資料驅動的:市場發展的速度有多快,客戶在哪裡,這些客戶的需求是什麼,IT 部門如何為這些需求做好準備? 適應市場變化的"敏捷性"是 IT 的關鍵,而這正是雲端運算的目的 — — 也就是說,雲端系統可以快速適應市場變化。 當資料直接驅動變化而無需人為干預時,它會變得更快。 因為系統根據資料驅動每一個決定。

成為資料驅動型企業原則的組織必須能夠存取來自 IT 內部和外部的許多不同來源的大量資料。 企業需要擁抱自動化。 但最重要的是,企業需要"信任並依賴"資料分析、人工智慧和機器學習等複雜技術。 對於很多企業來說,這可能是體制的轉變。 只有一步一步來,它才會成功

總結

AIOps 是一個新的維運概念。 這些複雜的系統可幫助組織偵測其 IT 環境中的變化和異常,並預測這些事件可能對其環境中的其他組件產生的影響。 AIOps 系統甚至可以根據來自 DevOps 系統(例如 CI/CD 流水線)的計劃變更來預測這一點。 為了能夠做到這一點,AIOps 利用大數據分析:它可以存取IT 環境內部和外部的許多不同資料來源。 這些資料被分析並由演算法的運算:這就是 AI 和 ML 上場的地方。 AIOps 系統進行自我學習以便它們能夠真正預測未來事件。

大多數組織都希望變得越來越受資料來驅動,這意味著資料正在推動所有決策,包括商業上的而AIOps只是其中的一部分,所以越來越多的企業加速他們的數位轉型。 資料驅動的企業在回應市場變化時更加敏捷和快速。

歸根究柢,這一切都是為了能夠企業對於系統能夠快速回應變化,同時將風險降至最低,並保持 IT 系統始終正常運行

--

--

運用"雲端服務"加速企業的數位轉型願景
運用"雲端服務"加速企業的數位轉型願景

Written by 運用"雲端服務"加速企業的數位轉型願景

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。諮詢請來信jason.kao@suros.com.tw. https://facebook.com/jason.kao.for.cloud

No responses yet