概述
站點可靠性工程(SRE)是 IT 運維的軟件工程方案。SRE 團隊使用軟件作為工具,來管理系統(tǒng)、解決問題并實現(xiàn)運維任務自動化。
SRE 執(zhí)行的任務以前通常由運維團隊手動執(zhí)行,或者交給使用軟件和自動化來解決問題和管理生產(chǎn)系統(tǒng)的工程師或運維團隊執(zhí)行。?
在創(chuàng)建可擴展和高度可靠的軟件系統(tǒng)時,SRE 是寶貴的實踐。它可幫助您通過代碼管理大型系統(tǒng),對于管理成千上萬臺機器的系統(tǒng)管理員(sysadmin)來說,代碼更具可擴展性和可持續(xù)性。?
站點可靠性工程的概念由 Google 工程團隊的 Ben Treynor Sloss 第一個提出。?
SRE 可以幫助團隊在發(fā)布新功能和確保用戶可靠性之間找到平衡。
在這種背景下,標準化和自動化是 SRE 模型的兩大重要部分。在這里,站點可靠性工程師尋求增強和自動化運維任務。
通過這些方式,SRE 有助于提高當今的系統(tǒng)可靠性,并且隨著時間的推移不斷提高。?
SRE 支持團隊從傳統(tǒng) IT 運維方案遷移至云原生方案。
站點可靠性工程師的工作是什么?
站點可靠性工程師是一個獨特的崗位,要么必須具有系統(tǒng)管理員背景、或有運維經(jīng)驗的軟件開發(fā)人員;要么必須是有軟件開發(fā)技能的 IT 運維人員。?
SRE 團隊負責部署、配置和監(jiān)控代碼,以及生產(chǎn)服務的可用性、延遲、變更管理、應急響應和容量管理。
SRE 團隊根據(jù)服務水平協(xié)議(SLA)確定新功能的推出,并利用服務水平指標(SLI)和服務水平目標(SLO)定義系統(tǒng)所需的可靠性。?
SLI 測量所提供服務水平的特定方面。關鍵 SLI 包括請求延遲性、可用性、錯誤率和系統(tǒng)吞吐量。SLO 基于根據(jù) SLI 而指定的服務水平的目標值或范圍。
然后,根據(jù)確定可接受的停機時間,確定所需系統(tǒng)可靠性的 SLO。這個停機時間稱為誤差量,即出錯和中斷的最大允許閾值。?
SRE 并不是要實現(xiàn) 100% 可靠性,而是針對故障做好計劃并妥善應對。
一旦建立,開發(fā)團隊就可以在發(fā)布新功能時允許出現(xiàn)這一定量的誤差。利用 SLO 和誤差量,團隊隨后可確定產(chǎn)品或服務是否能夠在可用誤差量的基礎上啟動。
如果某個服務在運行時處于誤差量以內,則開發(fā)團隊可在任何時間發(fā)布它,但是,如果系統(tǒng)當前有太多錯誤或停機時間超過誤差量的允許范圍,則必須使錯誤數(shù)減少至誤差量以內后才能發(fā)布。???
開發(fā)團隊可執(zhí)行自動化運維測試以驗證可靠性。?
站點可靠性工程師的時間要均衡分配給運維任務和項目工作。根據(jù) Google 的 SRE 最佳實踐,站點可靠性工程師最多只能將一半的時間花在運維上,所以應該監(jiān)控確保不會超過這個時間。??
他們剩余的時間應專注于開發(fā)任務上,比如創(chuàng)建新功能,擴展系統(tǒng),以及實施自動化。
額外的運維工作和表現(xiàn)欠佳的服務應重新指定給開發(fā)團隊,這樣站點可靠性工程師就不用將太多時間花在應用或服務的運維上。?
自動化是站點可靠性工程師的重要工作部分。如果他們一直在反復處理同一個問題,就會努力實現(xiàn)解決方案自動化。?
保持運維和開發(fā)工作之間的平衡是 SRE 的重要組成部分。?
DevOps 和SRE
DevOps?是指對企業(yè)文化、業(yè)務自動化和平臺設計等方面進行全方位變革,從而實現(xiàn)迅捷、優(yōu)質的服務交付,提升企業(yè)價值和響應能力。SRE 可視為 DevOps 的實施。
和 DevOps 一樣,SRE 也與團隊文化和關系密切相連。SRE 和 DevOps 都致力于搭建開發(fā)團隊和運維團隊之間的互通橋梁,以便加快交付服務。?
DevOps 和 SRE 實踐都可以實現(xiàn)更快的應用開發(fā)生命周期、改進的服務質量和可靠性,以及縮短的 IT 應用開發(fā)時間等優(yōu)勢。
然而,SRE 與 DevOps 有所不同,因為它依賴于開發(fā)團隊中的站點可靠性工程師,這些工程師也要有解決通信和工作流程問題的運維背景。
站點可靠性工程師本身要求職責重疊,兼具開發(fā)團隊和運維團隊的技能。?
DevOps 團隊的開發(fā)人員常常疲于處理運維任務,需要擁有更專業(yè)運維技能,而 SRE 就能派上用場。?
在編碼和構建新功能時,DevOps 專注于有效通過開發(fā)流程,而 SRE 專注于通過創(chuàng)建新功能來平衡站點可靠性。?
在這里,基于容器技術、Kubernetes 和微服務的現(xiàn)代化應用平臺是落實 DevOps 實踐的關鍵所在,可幫助企業(yè)交付安全的創(chuàng)新軟件服務。
支持 SRE 的技術
SRE 要在應用的整個生命周期中確保日常運維任務的自動化和標準化。?紅帽? Ansible? 自動化平臺是一個全面的集成平臺,可幫助 SRE 團隊實現(xiàn)速度、協(xié)作和增長的自動化,從而為企業(yè)的技術、運維和財務職能提供安全性和支持。
具體而言,Ansible? 自動化平臺可提供:?
云和本地基礎架構編排,可用于實例、路由、負載平衡、防火墻等。?
基礎架構優(yōu)化,包括大小適當?shù)脑瀑Y源,以及根據(jù)需要添加或刪除中央處理器(CPU)和隨機存取存儲器(RAM)等資源。?
云運維,包括具有持續(xù)集成和持續(xù)交付(CI/CD)管道的應用部署、操作系統(tǒng)修補和維護。
業(yè)務連續(xù)性,包括從云中移動和復制資源,創(chuàng)建和管理備份策略,以及管理中斷和故障。
原文鏈接:https://www.redhat.com/zh/topics/devops/what-is-sre#%E6%94%AF%E6%8C%81-sre-%E7%9A%84%E6%8A%80%E6%9C%AF