自動化是 SRE 的核心驅動力#

從洗衣機軟體到車用系統,自動化早已滲透日常。在軟體組織內,自動化更是 SRE 的關鍵推手——它讓團隊能精簡運維、聚焦目標。

「toil」指那些手動、重複、無需人類智慧的戰術性任務。SRE 的核心責任之一就是消滅 toil。

範例:服務自我修復腳本#

import os
import time

def check_service():
    status = os.system("systemctl is-active --quiet myservice")
    return status == 0

while True:
    if not check_service():
        print("Service is down! Restarting...")
        os.system("systemctl restart myservice")
    time.sleep(60)

這段腳本每分鐘檢查一次服務狀態,發現未啟動時自動重啟。

自動化對 SRE 的價值#

  • 節省時間與人力:把重複工作從人手中拿走
  • 減少人為錯誤:手動操作越多,出錯機率越高
  • 加速錯誤修復:自動告警與自我修復可在使用者察覺前完成補救
  • 強化系統表現:把調整流量、擴充資源等動作內建進系統行為

可自動化的領域#

  • 手動重複任務:每日抓報表、清理資源、健康檢查等
  • 告警與監控自動化:高衝擊告警直接通知對應團隊;流量增減自動觸發擴縮
  • 事件管理自動化:自動接收、關聯告警、通知團隊
  • 其他:安全漏洞掃描、日誌掃描、權限管理、持續健康檢查

自動化帶來的系統效益#

  • 自動化(Automation)本身:節省成本、縮減擴編需求
  • 擴充性(Scalability):自動依負載擴縮
  • 可靠性(Reliability):自我修復、自動重啟服務
  • 可用性(Availability):自動將流量導到健康伺服器

推動自動化的流程建議#

  • 持續找出可自動化的點,例如自動事件管理、自動告警、自我修復、自動擴充

  • 用指標導向決策:

    假如某項手動任務一年只做 2 次、每次 30 分鐘,但自動化要花 1 個月人時,那不該自動化——成本高於收益。

  • 把待辦手動任務分類後再選工具

  • 評估工具時列出需求清單、比對功能、確認可客製

  • 分析成本(開源 vs 訂閱、一次性 vs 年費);若購工具比僱用工程師寫程式還貴,請考慮後者

  • 識別自動化類別後再選工具,常見組合:

    • 監控 → Prometheus + Grafana(具自動化客製能力)
    • 事件管理 → ServiceNow(自動通知)
    • 配置管理 → Ansible(自動建基礎設施)
  • 設置回饋迴路:與 SRE、DevOps、開發、測試、業務固定 review,找出可自動化的痛點

事件管理就是自動化價值的最佳例證:自動建單、確認、指派優先級與分類,可省下 80% 工程師時間,讓他們專注繞過問題、降低使用者衝擊。