缺陷管理的角色#

事件管理偏向運維,缺陷管理偏向開發。但兩者都會落到 SRE 手上:

  • SRE 觀察 production,把問題以缺陷形式登錄
  • 開發依優先級修補
  • 測試驗證後上線

延續上一節的保全 + 雜貨整合案例。事件管理改善後,SRE 終於能聚焦在可靠性,但缺陷數仍然居高不下。

維運階段觀察#

  • 同樣的缺陷反覆出現
  • 部分事件最終轉化成程式缺陷
  • 主動監控偵測到的告警也轉成缺陷

問題#

SRE 100% 時間都在繞過缺陷以保住使用者體驗,沒餘力改善系統本身。

解法:把缺陷流程拆開檢視#

  1. SRE 分析缺陷型態,發現「事件 → 缺陷」與「告警 → 缺陷」並非孤立事件
  2. 既有流程:所有 production 缺陷都進入單一佇列,依分類由 SRE 或開發承接
    • 功能缺陷由開發處理
    • 非功能缺陷(如 WARN 印成 INFO)由 SRE 處理
  3. 但開發未及時挑單;SRE 重啟服務以繞過根本問題仍未解決
  4. SME 雙方分析後發現分類有誤:缺陷被標為「一般優先級」,因為「有重啟可繞過」就不被視為高優先級
  5. 現有流程沒有缺陷會議與所有權設定,重要缺陷常被獨立修改而引入新缺陷
  6. SRE 與開發領導重新設計流程:
    • 影響使用者的 production 缺陷「立刻處理」
    • 新增 20% 開發團隊容量專責 production 功能缺陷
    • 開發團隊重新命名以利 SRE 指派
    • 每週固定 SRE 與 dev SME 會議追蹤缺陷
  7. 三個月內缺陷頻率明顯下降、可用性與效能上升、SRE 可回頭做其他工作

缺陷分類的小錯,會放大成可靠性的大坑。流程審視必須與業務成長同步。

教訓#

  • 缺陷管理是 SRE 的「結構性」工作,不僅是「處理單筆」
  • 重複出現的缺陷往往代表流程缺陷,而非單純的程式問題
  • 在系統成長時主動審視流程,遠比等出事再改要划算

每季檢視一次「缺陷分類規則」與「處理 SLA」,並記錄變更前後的指標差異,是落實這個習慣的最簡單方法。