兩種方法論的核心訴求#

  • DevOps 強調敏捷:把開發、建置、測試、部署整合成連貫流程,把任務切成更小的單元以加速交付
  • SRE 強調韌性與可靠性:協助開發團隊設計「在壓力下也順暢運作」的系統

DevOps 從部署視角融合開發與運維;SRE 從運維視角融合開發與運維。兩者目標相同,切角不同。

DevOps 的核心原則#

  • 協作(Collaboration):用自動化打通開發與運維的穀倉
  • 抓失敗(Catch failures):自動化 CI/CD 提早攔住缺陷
  • 不犧牲速度的變更控管:把變更切成小批次,逐步部署、快速 review
  • 自動化(Automation):在管線中內建檢核與測試
  • 量測(Measurement):以錯誤率、建置失敗、變更失敗率等指標衡量
  • 回饋迴路(Feedback loop):與開發雙向交換,持續改善

SRE 的核心原則#

  • 協作(Collaboration):把運維情境帶到開發前線,提供 production 視角
  • 抓失敗(Catch failures):建構儀表板與告警;把資訊回送開發
  • 自動化(Automation):減少 toil、自動切換、建立 RCA 迴路
  • 量測(Measurement):SLA、SLO、SLI 是核心指標
  • 回饋迴路(Feedback loop):把 production 經驗回饋設計,並向 DevOps 回饋管線改進需求

Figure 7.4: Core values of SRE and DevOps

DevOps vs. SRE 主要差異#

面向DevOpsSRE
角色提供建置/測試/部署平台提供回饋給開發、測試,掌管運維
重點加速建置與部署維持系統可用性、聚焦終端使用者
指標變更前置時間、部署頻率、復原時間、變更失敗率SLO、SLI、SLA、MTTD、MTTR
工單內部開發工單客戶導向事件

DevOps 的最佳實踐#

  • 採用敏捷方法論,CI/CD 整合建置、測試、部署
  • 在多階段持續監控
  • 建立跨開發、測試、SRE 的雙向回饋
  • 強化協作打破穀倉
  • 自動化測試並把基礎設施部署一同管線化

SRE 的最佳實踐#

  • 自動化所有手動工作(incident、RCA、change management)
  • 定義量測系統表現的指標
  • 透過儀表板與告警做主被動監控
  • 與開發、產品團隊深度協作
  • 建構非功能性需求所需的工具與能力(engineering)

兩個方法論在組織內常彼此重疊。重點不在「哪個更好」,而在「我們的應用是否同時擁有兩種視角」——速度與可靠性。

Figure 7.5: DevOps and SRE