為何 SDLC 已含可靠性,仍需要獨立 SRE#

在 SDLC 中每個階段都已強調可靠性:

  • 設計團隊把擴充性與韌性納入架構
  • 開發團隊遵循最佳實踐
  • 測試團隊用端到端測試案例提升覆蓋

那為什麼還需要 SRE?因為 SRE 站在最後階段,能看到「整體」的可靠性:

  • 360 度視角觀察產品從交付前到上線後
  • 整合來自多服務、多依賴系統、實際使用者負載的訊號
  • 觀察到單一團隊看不到的整體現象(外部整合、第三方依賴、混沌情境)

設計、開發、測試各自負責「自家可靠性」;SRE 負責「合併後的可靠性」。

案例:阻擋潛在的可靠性問題#

開發團隊完成新功能、QA 通過測試。SRE 用工具進行擴充性驗證時發現某情境失敗,於是把程式碼退回設計與測試。這就是 SRE 在守住「最後一道可靠性閘門」的具體展現。

SRE 必備技能組合#

軟體編碼#

  • 不限語言,需具備寫工具與修補非功能性 bug 的能力
  • 熱門語言:Python、Go、Java

自動化/腳本撰寫#

  • 把重複手動工作自動化
  • 熱門語言:Python、Linux/Unix Shell、PowerShell(Windows)
  • 「Coding 蓋大樓、Scripting 鋪小路」是常見比喻

ITIL 知識#

  • 了解 IT 基礎建設庫(Information Technology Infrastructure Library, ITIL)流程
  • 兩大重點:
    • Release & change management:合作審查並落實變更
    • Incident management:管理工單、優先排序、嚴重度與處理流程

CI/CD 管線設計#

  • 雖多由 DevOps 主導,SRE 也常需建構或重用管線
  • 工具:Jenkins、Ansible、Terraform

雲端運算#

  • 熟悉至少一個雲端平台(AWS、Azure、GCP)
  • 了解雲端原生應用的部署與監控
  • 能在雲上建立管線、儀表板

資料庫管理#

  • 同時涉及關聯與非關聯式資料庫
  • 常見:Couchbase、MongoDB、Apache Cassandra、Oracle NoSQL(NoSQL);Oracle、Postgres、DB2、MySQL(RDBMS)

分散式基礎設施#

  • 高可用必備分散式架構
  • 與雲端、作業系統知識重疊

系統管理#

  • 安裝、配置、安全、監控
  • 對 OS、網路、版本管理有基本掌握

工具熟悉度#

  • 監控:Grafana、Prometheus、AppDynamics、DataDog、Dynatrace、Splunk、Nagios、New Relic
  • 日誌:Splunk、FluentD、Logstash、SumoLogic、SolarWinds
  • 版控:GitHub、GitLab、Bitbucket、Azure DevOps、SourceForge

軟性能力#

  • 溝通:跨團隊協作、把技術翻譯成商業語言
  • 解決問題:每天都會碰上的核心能力

不必擁有清單上每一項技能。50% 涵蓋率就足以入門 SRE,剩下的可在團隊中互補與成長。

SRE 的常見入門背景#

  • 軟體開發者、軟體測試者
  • DevOps、系統管理員
  • 基礎設施工程師、production 支援工程師、架構師

入門條件#

對開發、雲端、作業系統有基本理解,就能踏入 SRE 領域。後續可以依專案需求補強更深的技能。