僅為個人知識總結與記錄
Site Reliability Engineer:站點可靠性工程(SRE = 軟件工程師 + 運維專家 + 可靠性專家)
相對傳統的運維工程師,SER 注重開發,效率,追求自動化。對于 SRE 工程師,追究的就是利用或者使用開發工具,來降低開發或者運維的手動處理任務的時間。
一. SRE的核心職責與目標
1. 確保系統的可靠性
這是首要目標。通過設計、構建工具和流程來最大化服務的可用性(Uptime)、性能、延遲和容錯能力。
2. 自動化運維任務
SRE厭惡重復性手工操作。他們會編寫代碼(通常是Python、Go等)來自動化部署、配置管理、監控告警響應、故障恢復等任務,消除“Toil”(枯燥、重復、手動、戰術性、無持久價值的工作)。
3. 容量規劃與管理
預測系統未來的資源需求(計算、存儲、網絡),確保在業務增長時系統能平滑擴展,同時優化資源利用率,控制成本。
4. 監控與可觀測性
- 監控: 建立全面的監控系統(Metrics、Logs、Traces),實時了解系統健康狀態。
- 告警: 設計精準、可操作的告警策略,避免告警疲勞。
- 可觀測性: 深入理解系統內部狀態,快速定位和診斷復雜問題。
5. 應急響應與事后復盤
- On-Call: 參與輪值待命,快速響應和處理線上故障。
- 故障處理: 領導或參與故障排查、恢復和根因分析。
- 事后復盤: 組織并撰寫事后報告,坦誠分析故障原因,制定切實可行的改進措施(Action Items),并跟蹤落實,防止同類故障再次發生。強調“不指責文化”。
6. 性能優化
識別系統瓶頸(應用、數據庫、網絡、基礎設施等),進行優化以提升效率和用戶體驗。
7. 變更管理
8. 定義和跟蹤SLO/SLI/SLA:
- SLI: 服務等級指標(量化衡量服務可靠性的指標,如請求延遲、錯誤率)。
- SLO: 服務等級目標(SLI應達到的目標值或范圍)。
- SLA: 服務等級協議(對客戶承諾的SLO,通常帶有業務層面的后果)。
9. 平衡可靠性與創新速度
SRE的關鍵哲學之一是管理“錯誤預算”。如果服務可靠性(滿足SLO)很高,說明有“預算”可以承受一定的風險,可以允許開發團隊進行更激進的發布或變更,推動創新。反之,如果預算耗盡,則需要優先提升可靠性。
二. SRE工程師的核心技能棧
三. SRE 的地位
1. 支撐業務增長
2. 提升研發效率
3. 控制成本
4. 數據驅動決策
5. 促進DevOps文化
附錄:
-
SRE和運維的區別是什么?
-
什么是站點可靠性工程 (SRE)