Home >> Blog >> 什麼是 SRE - site reliability engineering 站點可靠性工程?
什麼是 SRE - site reliability engineering 站點可靠性工程?
概述
站點可靠性工程 (SRE) 是一種用於 IT 運營的軟體工程方法。SRE 團隊使用軟體作為管理系統、解決問題和自動化操作任務的工具。
SRE 將過去由運營團隊完成的任務(通常是手動完成)交給工程師或運營團隊,他們使用軟體和自動化來解決問題和管理生產系統。
在創建可擴展且高度可靠的軟體系統時,SRE 是一種有價值的實踐。它有助於通過代碼管理大型系統,這對於管理數千或數十萬台機器的系統管理員 (sysadmins) 而言更具可擴展性和可持續性。
站點可靠性工程的概念來自 Google 工程團隊,歸功於 Ben Treynor Sloss。
SRE 幫助團隊在發布新功能和確保用戶可靠性之間找到平衡。
在這種情況下,標準化和自動化是 SRE 模型的兩個重要組成部分。在這裡,現場可靠性工程師尋求增強和自動化操作任務。
通過這些方式,SRE 有助於提高當今的系統可靠性——並且隨著時間的推移而發展。
SRE 支持將其 IT 運營從傳統方法轉移到雲原生方法的團隊。
站點可靠性工程師做什麼的?
站點可靠性工程師是一個獨特的角色,需要具有系統管理員背景、具有額外運營經驗的軟體開發人員或具有軟體開發技能的 IT 運營角色。
SRE 團隊負責如何部署、配置和監控代碼,以及生產中服務的可用性、延遲、變更管理、應急響應和容量管理。
SRE 團隊通過使用服務水平協議 (SLA) 來確定新功能的推出,通過服務水平指標 (SLI) 和服務水平目標 (SLO) 定義系統所需的可靠性。
SLI 衡量所提供服務水平的特定方面。關鍵 SLI 包括請求延遲、可用性、錯誤率和系統吞吐量。SLO 基於基於 SLI 的指定服務級別的目標值或範圍。
所需系統可靠性的 SLO 然後基於確定為可接受的停機時間。此停機時間級別稱為錯誤預算——錯誤和中斷的最大允許閾值。
使用 SRE,不需要 100% 的可靠性——失敗是計劃好的和預期的。
一旦建立,開發團隊就能夠在發布新功能時“花費”錯誤預算。使用 SLO 和錯誤預算,團隊然後根據可用的錯誤預算確定產品或服務是否可以啟動。
如果服務在錯誤預算範圍內運行,則開發團隊可以隨時啟動,但如果系統當前有太多錯誤或停機時間超過錯誤預算允許的時間,則在錯誤解決之前不會進行新的啟動在預算之內。
開發團隊進行自動化操作測試以證明可靠性。
現場可靠性工程師將他們的時間分配給運營任務和項目工作。根據 Google 的 SRE 最佳實踐,站點可靠性工程師最多只能將 50% 的時間花在操作上——並且應該對其進行監控以確保他們不會超時。
他們剩下的時間應該花在開發任務上,比如創建新功能、擴展系統和實現自動化。
過多的運營工作和表現不佳的服務可以被重定向回開發團隊,這樣站點可靠性工程師就不會在應用程序或服務的運營上花費太多時間。
自動化是現場可靠性工程師角色的重要組成部分。如果他們反复處理一個問題,那麼他們很可能會自動化解決方案。
保持運營和開發工作之間的平衡是 SRE 的關鍵組成部分。
DevOps 與 SRE
DevOps是一種文化、自動化和平台設計方法,旨在通過快速、高質量的服務交付來提高業務價值和響應能力。SRE 可以被認為是 DevOps 的一種實現。
與 DevOps 一樣,SRE 是關於團隊文化和關係的。SRE 和 DevOps 都致力於彌合開發和運營團隊之間的差距,以更快地交付服務。
DevOps 和 SRE 實踐都可以實現更快的應用程序開發生命週期、改進的服務質量和可靠性以及減少每個應用程序開發的 IT 時間。
但是,SRE 與 DevOps 不同,因為它依賴於開發團隊中的站點可靠性工程師,他們也有運營背景來解決通信和工作流問題。
站點可靠性工程師角色本身通過要求職責重疊,結合了開發團隊和運營團隊的技能。
SRE 可以幫助 DevOps 團隊,這些團隊的開發人員被運維任務壓得喘不過氣來,需要具有更專業運維技能的人。
在編碼和構建新功能時,DevOps 專注於有效地通過開發管道,而 SRE 則專注於平衡站點可靠性和創建新功能。
在這裡,基於容器技術、Kubernetes 和微服務的現代應用平台對於DevOps 實踐至關重要,有助於提供安全和創新的軟體服務。
支持 SRE 的技術
SRE 依賴於在應用程序的整個生命週期中自動執行日常操作任務和標準化。 紅帽® Ansible® 自動化平台是一個全面的集成平台,可幫助 SRE 團隊實現速度、協作和增長的自動化,為企業的技術、運營和財務職能提供安全和支持。
具體來說,Ansible 自動化平台提供:
- 用於實例、路由、負載平衡、防火牆等的雲端和本地基礎架構編排。
- 基礎架構優化,包括適當大小的雲資源以及根據需要添加或刪除中央處理器 (CPU) 和隨機存取存儲器 (RAM) 等資源。
- 雲操作,包括具有持續集成和持續交付 (CI/CD) 管道的應用程序部署、操作系統修補和維護。
- 業務連續性,包括從雲端移動和復制資源、創建和管理備份策略以及管理中斷和故障。
SRE 還依賴於為雲原生開發風格設計的基礎。 Linux® 容器支持用於開發、交付、集成和自動化的統一環境。
Kubernetes是自動化 Linux 容器操作的現代方式。Kubernetes 幫助團隊更有效地管理跨公共、私有或混合雲運行 Linux 容器的集群。
作為支持 SRE 計劃的企業就緒型 Kubernetes 平台,紅帽® OpenShift®可幫助團隊實施文化和流程轉型,實現 IT 基礎架構現代化,並使組織能夠更好地為客戶服務並實現業務目標。