6.4 AI 驅動的異常偵測與自癒系統#
從「人看著」到「系統自己反應」#
傳統維運(6.3 節)靠的是:人看儀表板、人收到警報、人去調查、人去修復。這個模型有個瓶頸——人的注意力有限、反應有延遲、深夜不一定在線。
本節討論更先進的方向:讓 AI 不只「看」,還能「自動偵測、自動反應、自動修復」——即 AI 驅動的異常偵測與自癒系統(Self-Healing)。
flowchart LR
A[可觀測性資料<br/>指標 / 日誌 / 追蹤] --> B[異常偵測<br/>規則 + AI 模型]
B -->|發現異常| C[診斷<br/>判斷原因與影響]
C --> D{執行修復}
D -->|可行且安全| E[自動修復<br/>重啟 / 擴展 / 回滾]
D -->|需人判斷| F[升級給人<br/>附上下文]
E --> G[回報與記錄]
F --> G異常偵測:從規則到 AI 模型#
異常偵測回答「系統是不是不正常了」。它無外乎兩種方法:
1. 規則式偵測(Threshold-Based)#
基於預先定義的規則:「p99 延遲 > 1 秒 → 異常」「錯誤率 > 5% → 異常」。簡單、可解釋、易於警報。
侷限:只能抓到「我們事先想到的」異常;真實世界的異常往往非線性、時序化、難以用固定閾值描述——例如「流量突然暴增但延遲正常」「某個時間點的規律性抖動」。
2. 學習式偵測(AI/ML-Based)#
用 AI/ML 模型學習「什麼是正常」,再偵測「偏離正常」。常見方向:
- 無監督學習:模型學出歷史資料的正常型態,偵測「統計上的異常點」(Anomaly Detection)
- 時間序列模型:預測「接下來應該是多少」,實際值與預測值偏差過大即異常
- 日誌異常:從日誌文字中學習「常見模式」,偵測「罕見的異常事件組合」
AI 偵測的優勢:能捕捉規則式想不到的異常模式、能處理高維度與非線性的訊號。挑戰:需要足夠的歷史資料、可能誤報(需要調校)、可解釋性較低(為什麼說異常)。
務實做法:規則與 AI 混合——用規則抓已知、用 AI 抓未知,兩者互補(呼應「監控 vs 可觀測性」的分工)。
自癒:自動反應的動作#
偵測異常只是第一步,真正的價值在「接著做對的事」。自癒系統比喻著「人體」:生病了,免疫系統自己啟動修復,而不是等醫生。
常見的自癒動作(由操控的「自動化能力」執行):
| 異常 | 自癒動作 |
|---|---|
| 某服務實例掛掉 | 自動重啟 / 自動替換新實例(K8s 可做到) |
| 流量突增、資源不足 | 自動擴展(Scale Out) |
| 服務異常崩潰 | 自動回滾(Rollback)到上一個穩定版本 |
| 機器/容器異常 | 自動遷移 / 汰換 |
| 配置錯誤被偵測 | 自動恢復到已知良好的配置 |
這些動作之所以「能自動」,靠的是第 6.1、6.2 節的基礎:有不可變的映像(可重啟/替換)、有可重現的 IaC(可重建/遷移)、有可回滾的部署(可退回前一版本)。沒有這些自動化基礎,「自癒」就無從談起——自癒是把「重啟/擴展/回滾」這類已被自動化的動作,加上「自動偵測觸發」的邏輯。
自癒的危險:自動化的雙刃劍#
自動化修復也有顯著風險,必須謹慎設計:
- 誤診更糟:如果 AI 誤判「正常為異常」(誤報),可能「把好的服務重啟」反而造成中斷
- 修復本身有風險:自動回滾到一個「看起來對但其實有 bug」的版本,可能重複出錯(回滾地獄)
- 無限迴圈:兩個互相觸發的「自動修復」可能互相打架,形成震盪
- 需要「人知道」:即使自動修復,也必須記錄並通知人類,不能「偷偷做了」卻無人知曉
關鍵設計:分級處理與人在迴路#
為了控管自癒的風險,成熟系統採用分級的自癒策略與人在迴路(Human in the Loop):
- 低風險動作(如「重啟壞掉的唯讀快取」):可完全自動,但務必記錄與回報
- 中風險動作(如「自動擴展」「回滾到前一版」):可自動但需設限(如一天最多幾次),並回報
- 高風險動作(如「影響資料的修正」「大型遷移」):必須先升級給人,由人確認後才執行
核心原則:自動化修復應該「是可逆的、有上限的、且總是人可介入的」。 把「衍生風險高的決策」保留給人,是可靠自癒設計的關鍵——這正是第 9 章要詳談的「Harness 約束與糾正」在維運領域的應用。
從偵測自癒到 AI Agent Ops#
展望未來,AI 在維運中的角色會持續深化,形成「AI Agent 負責維運工作」的方向(這與第 8、9 章的 Agent/Harness 概念直接相連):
- AI 維運 Agent:不只「偵測異常」,還能「調查原因(讀日誌、跑追蹤)、提出修復計畫、在授權範圍內執行修復」
- 受控的 Agent 動作:如同 13 章的工具安全,AI 維運 Agent 對系統的「寫操作」(重啟、改配置、遷移)必須受權限控制、可逆、有稽核
這裡再次浮現全書的主軸:AI 負責「看得快、猜得準、動得勤」,人類負責「定邊界、把關、負最終責任」。 自癒系統再聰明,它的「修復動作」也該有一個人在迴路中掌握方向。
本章小結#
- 從「人看人修」進化到「AI 自動偵測與自癒」
- 異常偵測:規則式(抓已知)與學習式 AI(抓未知),兩者混合最佳
- 自癒動作:重啟、擴展、回滾、遷移——依賴 6.1/6.2 節的自動化基礎
- 風險:誤診更糟、修復本身有風險、無限迴圈;務必記錄並通知人
- 分級處理 + 人在迴路:低風險可自動、高風險留給人
- 展望:AI 維運 Agent 深化自動化,但真操作須受控、可逆、有稽核
- 主軸重申:AI 負責「動」,人負責「定邊界與把關」
想一想#
- 「規則式」與「AI 學習式」異常偵測各有什麼優缺點?為什麼「混合」通常是好選擇?
- 為什麼「自癒的修復動作」必須分級、並在特定風險上保留人在迴路?完全不設限的全自動會怎樣?
- 如果你要設計一個「AI 維運 Agent」,你會給它哪些「可自動執行的動作」、哪些「必須人確認的動作」?