什么是站點可靠性工程?
站點可(ke)靠(kao)性工程(cheng) (SRE) 是(shi)指使用軟(ruan)件(jian)工具自動執行(xing) IT 基礎架構任(ren)務(wu)(如系統(tong)管(guan)理和應用程(cheng)序監控)的做(zuo)法。組織使用 SRE 來確保(bao)其軟(ruan)件(jian)應用程(cheng)序在開發(fa)團(tuan)隊頻繁更(geng)(geng)新(xin)時保(bao)持可(ke)靠(kao)。SRE 特別提高了可(ke)擴(kuo)展軟(ruan)件(jian)系統(tong)的可(ke)靠(kao)性,因為(wei)使用軟(ruan)件(jian)管(guan)理大型(xing)系統(tong)比手(shou)動管(guan)理數百臺計算機更(geng)(geng)具可(ke)持續性。
為什么站點可靠性工程很重要?
站點可靠性(xing)描述了應用(yong)程序(xu)提供給(gei)最終用(yong)戶后的穩定(ding)性(xing)和服(fu)務質量。如果未(wei)發現技術問題(ti),軟(ruan)(ruan)件維(wei)護有時(shi)會影響軟(ruan)(ruan)件的可靠性(xing)。例如,當開(kai)發人員進行新(xin)的更改時(shi),可能會無意中影響現有應用(yong)程序(xu),并導致(zhi)軟(ruan)(ruan)件在某些使(shi)用(yong)案例中崩潰(kui)。
以下是站點可(ke)靠性工程 (SRE) 實踐的一些好處(chu)。
改善了
SRE 改善了(le)開發(fa)和運(yun)營(ying)團隊之間(jian)的協作(zuo)。開發(fa)人員(yuan)通常必須(xu)對應用(yong)(yong)程序進行快速更(geng)改,以發(fa)布新(xin)功能(neng)或修復(fu)關鍵錯誤(wu)。另一方面,運(yun)營(ying)團隊必須(xu)確保服務無(wu)縫交付。因(yin)此,運(yun)營(ying)團隊需要使用(yong)(yong) SRE 實踐來(lai)密(mi)切監控每一次(ci)更(geng)新(xin),并及時響應因(yin)變(bian)更(geng)而出現的任何問題。
客戶體驗增強
組織使(shi)用(yong) SRE 模型來確保軟件錯誤(wu)(wu)不會(hui)影(ying)響客(ke)戶體驗。例如,軟件團隊使(shi)用(yong) SRE 工具來實現軟件開(kai)發生命(ming)周期自動化。這樣可以(yi)減少錯誤(wu)(wu),意味著團隊可以(yi)將(jiang)新功能開(kai)發優(you)先于漏洞(dong)修復。
操作規劃得到改進
SRE 團隊接(jie)受軟件失敗的現實可能性。因此,團隊需要計(ji)劃適當的事故(gu)響應,以盡量減少停機時間對(dui)業(ye)務和最終用戶的影響。其還可以更(geng)好地估計(ji)停機成(cheng)本,并了解此類事故(gu)對(dui)業(ye)務運營的影響。
站點可靠性工程的關鍵原則有哪些?
以下是站(zhan)點可靠性工程 (SRE) 的(de)一些關鍵原則。
應用程序監控
SRE 團隊(dui)認同軟件部署過程(cheng)中(zhong)錯誤在所難免。該團隊(dui)不會努力尋找完美的解(jie)決方案,而(er)是(shi)根據服務(wu)水(shui)平協議 (SLA)、服務(wu)水(shui)平指標(biao) (SLI) 和服務(wu)水(shui)平目標(biao) (SLO) 來監控軟件性能(neng)。在生產環境(jing)中(zhong)部署應用程(cheng)序后(hou),會繼(ji)續觀察并監控性能(neng)指標(biao)。
逐步實施更改
SRE 實(shi)踐鼓勵頻繁發(fa)布較小的更(geng)改,以保持系統(tong)可靠性。SRE 自動(dong)化工具使用一致但(dan)可重復(fu)的流程來(lai)執行以下操作:
- 減少變更帶來的風險
- 提供反饋回路以測量系統性能
- 提高變更實施的速度和效率
通過自動化提高(gao)可靠性
SRE 使(shi)用的(de)策略和流(liu)程將可靠性原則(ze)嵌(qian)入到交(jiao)付管道的(de)每個步(bu)驟(zou)中。自動解決問題的(de)一些策略包括:
- 基于服務水平目標制定質量門檻,以便及早發現問題
- 使用服務水平指標自動執行構建測試
- 在軟件開發之初做出確保系統彈性的架構決策
什么是站點可靠性工程中的可觀察性?
可觀察性(xing)(xing)(xing)過程是指當軟(ruan)件(jian)為(wei)最(zui)終用(yong)戶投入使(shi)(shi)用(yong)時(shi),軟(ruan)件(jian)團(tuan)隊(dui)為(wei)不確定性(xing)(xing)(xing)所(suo)做(zuo)的(de)準備。站點可靠性(xing)(xing)(xing)工(gong)程 (SRE) 團(tuan)隊(dui)使(shi)(shi)用(yong)工(gong)具來檢測(ce)軟(ruan)件(jian)中的(de)異(yi)常行為(wei),更重要(yao)的(de)是,收集(ji)有助于(yu)開(kai)發人員了解問題原因的(de)信息。可觀察性(xing)(xing)(xing)涉及使(shi)(shi)用(yong) SRE 工(gong)具收集(ji)以(yi)下(xia)信息。
指標
指標是指反(fan)映應(ying)用(yong)程序性(xing)能或系統運(yun)行狀況的可量(liang)化值。SRE 團隊使用(yong)指標來(lai)確定軟(ruan)件是否消耗過(guo)多資源或行為異常。
日志
SRE 軟件會生成詳細的、帶有時間(jian)戳的信(xin)息(xi),稱(cheng)為日志,以響應特(te)定(ding)事(shi)件。軟件工(gong)程師使用日志來了(le)解導致(zhi)特(te)定(ding)問題的事(shi)件鏈。
軌跡
軌(gui)跡是對分布(bu)式系(xi)統中(zhong)特定函(han)數的代碼路徑的觀察。例如,訂單在購(gou)物車(che)結賬可能涉及以(yi)下步驟:
- 與數據庫核對價格
- 使用支付網關進行身份驗證
- 向供應商提交訂單
軌跡由 ID、名(ming)稱(cheng)和時間組(zu)成(cheng)。可以幫(bang)助軟(ruan)件(jian)開發人員檢測延(yan)遲問題并提(ti)高軟(ruan)件(jian)性(xing)能。
什么是站點可靠性工程中的監控?
監(jian)控是指在應用程(cheng)序中觀(guan)察預定義指標的過(guo)程(cheng)。開發人(ren)員決定哪些參數(shu)對于確定應用程(cheng)序運行(xing)狀況(kuang)至關重要,并(bing)在監(jian)控工(gong)(gong)具中進行(xing)設置。站點可(ke)靠性(xing)工(gong)(gong)程(cheng) (SRE) 團(tuan)隊(dui)收集反映(ying)系統性(xing)能的關鍵信息(xi),并(bing)在圖表中進行(xing)可(ke)視(shi)化(hua)。
在 SRE 中,軟件團隊監(jian)控這些指標,以深(shen)入了解(jie)系統(tong)可(ke)靠(kao)性。
延遲
延遲描述了應(ying)用(yong)程序響應(ying)請(qing)求時的延時。例如,網站上提(ti)交(jiao)表單需要 3 秒(miao)鐘才(cai)能將(jiang)用(yong)戶引導到確(que)認網頁(ye)。
流量
流(liu)量(liang)(liang)測量(liang)(liang)的(de)是(shi)同(tong)時(shi)訪問您的(de)服務(wu)的(de)用戶數。有助(zhu)于軟件團隊(dui)相應地(di)預算計算資源(yuan),為所有用戶保持(chi)滿意(yi)的(de)服務(wu)水平。
錯誤
錯誤是(shi)指應用程序未能(neng)按照預期執行或交付的(de)(de)情況。例(li)如,當網頁無法(fa)加載或交易未通過時,SRE 團隊會使用軟件工具(ju)自動跟蹤和響應應用程序中的(de)(de)錯誤。
飽和
飽和(he)表示應用程序的實時容(rong)量。高飽和(he)通常(chang)會導致(zhi)性能下降。站點可(ke)靠性工程師會監控飽和(he)水平,并(bing)確保(bao)其低于特定閾值。
站點可靠性工程的關鍵指標有哪些?
站(zhan)點可靠性(xing)工程 (SRE) 團隊使用(yong)以下指標衡量(liang)服務交付質量(liang)和可靠性(xing)。
服務水平目標
服務水平目(mu)標(biao)(biao) (SLO) 是具體的(de)、可(ke)量化的(de)目(mu)標(biao)(biao),您(nin)確信軟(ruan)件能夠以(yi)與其他指(zhi)標(biao)(biao)相比合理的(de)成(cheng)本實現這些目(mu)標(biao)(biao),例如:
- 正常運行時間或系統運行的時間
- 系統吞吐量
- 系統輸出
- 下載速率或應用程序加載的速度
SLO 承諾通過軟件向客(ke)戶(hu)交(jiao)付。例如,您(nin)為公司的食(shi)品配(pei)送應用(yong)程序(xu)設(she)置了 99.95% 的正常運行時(shi)間(jian) SLO。
服務水平指標
服務(wu)水平指標 (SLI) 是 SLO 定(ding)義的(de)(de)(de)指標的(de)(de)(de)實際度量(liang)。在(zai)現實生活中,您(nin)可能會(hui)得(de)到與(yu) SLO 匹配或不同(tong)的(de)(de)(de)值。例(li)如,您(nin)的(de)(de)(de)應(ying)用程序 99.92% 的(de)(de)(de)時間處(chu)于啟(qi)動和(he)運行狀態,低于承諾的(de)(de)(de) SLO。
服務水平協議
服務水(shui)平協議 (SLA) 是法(fa)律文(wen)件,說(shuo)明當一個或(huo)多個 SLO 未滿足時會發生什么。例(li)如,SLA 規定,技術(shu)團隊將在收(shou)到報(bao)告后的 24 小(xiao)時內(nei)解決客(ke)戶的問(wen)題(ti)。如果您的團隊無法(fa)在指定期限內(nei)解決問(wen)題(ti),您可能有義務向客(ke)戶退款(kuan)。
錯誤預算
誤差(cha)(cha)預算是指 SLO 的不合(he)規公(gong)差(cha)(cha)。例(li)如,SLO 中(zhong) 99.95% 的正(zheng)常運行時間(jian)(jian)意味(wei)著允(yun)許的停機(ji)時間(jian)(jian)為(wei) 0.05%。如果軟件停機(ji)時間(jian)(jian)超過(guo)錯誤預算,軟件團隊將投入(ru)所有資源和精力(li)來穩定應用程(cheng)序。
站點可靠性工程如何工作?
站點可靠性(xing)工程 (SRE) 涉及軟件團(tuan)隊中(zhong)站點可靠性(xing)工程師的參與。SRE 團(tuan)隊為 SRE 設(she)置(zhi)關鍵指標,并(bing)根據系統風(feng)險容忍度水平創建錯誤預算。如果錯誤數(shu)量較(jiao)少,開發(fa)團(tuan)隊可以發(fa)布新功能。但(dan)是(shi),如果錯誤超(chao)過了允許范圍內的錯誤預算,團(tuan)隊將暫停新的更改并(bing)解決現有問題。
例(li)如,站點可靠性工程師會(hui)使用服務來監控性能(neng)指標并檢測異常應(ying)用程序(xu)行為。如果應(ying)用程序(xu)存(cun)在問(wen)題,SRE 團隊將向軟(ruan)件工程團隊提交報告(gao)。開(kai)發(fa)人(ren)員會(hui)修復報告(gao)的案例(li)并發(fa)布更新的應(ying)用程序(xu)。
開發運維
DevOps 是一種軟(ruan)(ruan)件文化,打破了開發和運營團隊的(de)傳統(tong)界限。有了 DevOps,開發人員和運營工(gong)(gong)程師(shi)不再孤立(li)地工(gong)(gong)作。相反,他們可以使用軟(ruan)(ruan)件工(gong)(gong)具來改(gai)進(jin)協作,跟上軟(ruan)(ruan)件快速更新發布。
SRE 與 DevOps 的對比
SRE 是 DevOps 的實際實現(xian)。DevOps 為在日益縮(suo)短(duan)的開發(fa)時間中保持軟件質(zhi)量(liang)提(ti)供(gong)了哲學(xue)基礎。站(zhan)點可靠性工程為如何成功實現(xian) DevOps 提(ti)供(gong)了答案。SRE 確保了 DevOps 團(tuan)隊在速度和穩定性之間取得適當的平衡。
站點可靠性工程師的職責有哪些?
站(zhan)點可靠(kao)性(xing)(xing)工程師(shi)是(shi)(shi)指使用自動化工具監控(kong)和(he)(he)觀察生產環境(jing)中的軟件可靠(kao)性(xing)(xing)的 IT 專家。站(zhan)點可靠(kao)性(xing)(xing)工程師(shi)在發現軟件中的問題和(he)(he)編(bian)寫代碼(ma)來解決這些問題方面也(ye)很(hen)有(you)經驗。其通常是(shi)(shi)具有(you)良(liang)好編(bian)碼(ma)技能(neng)的前(qian)系統(tong)管理員(yuan)或操作工程師(shi)。以下是(shi)(shi)一(yi)些站(zhan)點可靠(kao)性(xing)(xing)職責。
運維
站點可靠性(xing)工(gong)程師將多(duo)達一半的時間用于運維工(gong)作(zuo)。這其中包括多(duo)個(ge)任務,例如:
- 緊急事故響應
- 變更管理
- IT 基礎設施管理
工程師使用 SRE 工具自動執行多項運(yun)營任務并(bing)提高(gao)團(tuan)隊效率。
系統支持
站(zhan)點(dian)(dian)可(ke)靠性工(gong)程(cheng)師與開發團(tuan)隊密切(qie)合作(zuo),以創建(jian)新(xin)功能并穩定生產系統(tong)。站(zhan)點(dian)(dian)可(ke)靠性工(gong)程(cheng)師為(wei)整個軟件團(tuan)隊創建(jian)一個 SRE 流程(cheng),并隨時支持升級問題(ti)。更重要(yao)的是,站(zhan)點(dian)(dian)可(ke)靠性團(tuan)隊會向客(ke)戶支持部門提供成文的程(cheng)序,以幫助其有效(xiao)處理投訴。
流程改進
站點可靠性工(gong)程師(shi)通(tong)過舉行(xing)事故后(hou)評審來改(gai)進軟件(jian)(jian)開發生命周期(qi)。SRE 團隊(dui)在共享(xiang)的知識庫(ku)中記錄(lu)所有軟件(jian)(jian)問(wen)題和相(xiang)應(ying)的解決(jue)方案。這有助于軟件(jian)(jian)團隊(dui)在未來有效地應(ying)對(dui)類(lei)似(si)問(wen)題。
常見的站點可靠性工程工具有哪些?
站點可靠性工(gong)程 (SRE) 團隊使(shi)用不同類型的(de)工(gong)具來促進(jin)監控、觀(guan)察和事(shi)故響應。
容器(qi)編(bian)排工具
軟(ruan)件(jian)開發人員使用容(rong)器編排工具在(zai)各種(zhong)平臺上運行容(rong)器化(hua)應(ying)(ying)用程序。容(rong)器化(hua)應(ying)(ying)用程序將其代碼(ma)文件(jian)和(he)相(xiang)關資源(yuan)存儲在(zai)稱為容(rong)器的(de)單個包中。
隨時待(dai)命管理工具
隨時待命管理工具是一(yi)種軟件(jian),允許(xu) SRE 團(tuan)隊規劃、安排(pai)和管理處理報(bao)告的軟件(jian)問題(ti)的支持(chi)人(ren)員。SRE 團(tuan)隊使用該軟件(jian)以(yi)確保始終(zhong)有一(yi)個支持(chi)團(tuan)隊待命,以(yi)便及時接收有關(guan)軟件(jian)問題(ti)的警報(bao)。
事故(gu)響(xiang)應工(gong)具
事故響(xiang)應(ying)工具可(ke)確保為(wei)檢(jian)測到的(de)軟件問題提供清晰的(de)升級途徑。SRE 團(tuan)隊(dui)使(shi)用事故響(xiang)應(ying)工具對報告案例的(de)嚴重性(xing)進行(xing)分(fen)類并(bing)及時處(chu)理(li)。這些工具還可(ke)以(yi)提供事故后分(fen)析報告,以(yi)防(fang)止類似問題再次發生。
配置管理工具
配(pei)置管理工具是指將軟(ruan)件工作(zuo)流(liu)自(zi)動(dong)化的軟(ruan)件。SRE 團隊(dui)使(shi)用這些工具來(lai)消除(chu)重復性任務,提(ti)高工作(zuo)效率。