SLA、SLO 和 SLI
SLA、SLI 和 SLO 是 SRE 工程實踐里非常核心的概念,但是大家在同時提到這些概念的時候,經常容易混淆。
長篇大論的文章反而容易使人更加疑惑,還不如畫一張示意圖說明一下,幫助大家一次性徹底梳理清楚這些不可以含糊不清的核心概念。說明一下,下圖假設所討論的 SLA 個數為 1,使用了軟件工程中 ER 圖的表達方式,但也有所變化。
一圖講清 SLA、SLO、SLI
本文不講 why,只是幫助大家梳理清楚這些概念在以上人機系統中的相互關系。雖然不想做名詞解釋。但是為了方便起見,整理一個術語清單。
- SLA = Service Level Agreement = 服務質量/水平協議
- SLO = Service Level Objective = 服務質量/水平目標
- SLI = Services Level Indicator = 服務質量/水平指標
下面用人、事、物的邏輯進行闡釋。
人和事
用從上到下,從左到右的順序。
客戶 - 每 1 個客戶在使用產品服務時,都顯性或隱性的基于某 1 個 SLA,SLA 和客戶之間是一種 1 對 1 的文檔關系,這份協議文檔就顯性或者隱性的存在于系統中。客戶使用 1 種,或者 n 種連接方式訪問產品服務的 1 個或者 n 個應用系統。
銷售 - SLA 本身是所銷售產品服務的一部分,它規定了承諾給客戶的產品功用和質量。基于 SLA,客戶可以選擇用付費或者免費的方式使用產品。1 個/份 SLA 的銷售工作可以由 1 到 n 位銷售完成。銷售和客戶都幻想著幾乎完美的 SLA,這樣代表企業利益的銷售,以及產品的客戶就都可以達到雙贏的局面,皆大歡喜。
產品 - 通過與銷售的間接互動,或者直接的客戶調研,產品經理能夠確定應用系統所應該具有的功能和發展方向。
SRE - SRE 和產品共同制定了每個 SLA 相關應用系統的 SLO,SLO 定量的定義了每 1 個應用系統所應該具備的服務質量,1 個應用系統的 SLO 被該產品服務的 SLO 文檔定義,在該文檔中 SLO 被映射到 1 個或者 n 個 SLI,每個 SLI 都需要用監控工具持續采集數據,通常它們的數值單位各不相同。所有 SLO 都是用百分比數值形式表達的,例如:99.99% 的成功率,90% 的請求延遲 < 400 毫秒等。SRE 和產品經理/專家還應該共同關注運行應用系統的基礎設施層,確保基礎設施的可用性和容量足以滿足目標數量的用戶訪問,而且還要考慮和設計底層資源的容災和跨區多活等復雜場景。
開發/運維 - 重要但暫不做討論。
事
用從下往上的順序。
IaaS 云服務 - 也可以是其它類型的可以供應用系統運行的環境。這里存在著 1 到 n 種子服務。它和上層的 n 個應用系統通常是 n 對 n 的關系。
應用系統 - 1 個到 n 個應用系統構成了 1 個產品服務(內含SLA),在和客戶的互動中實現著產品服務的業務價值。
文檔 - 以網頁或者紙張的形式向用戶描述了某個應用服務所提供的服務內容和質量信息。向用戶提供這個文檔并不是強制、顯性和必須的。
結束
請根據以上解釋,結合你的實際工作場景,想象并描繪一下 SLA 、SLO 和 SLI 在你周圍的人事物中關系網。在SRE 的工作實踐中,定義 SLO,并梳理 SLI,將量化以后的目標和說明文檔化,并讓各個干系人認同并簽署,是一項基礎的起步工作。
?
總結
以上是生活随笔為你收集整理的SLA、SLO 和 SLI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你有没有感觉到自己的记忆力下降的很厉害
- 下一篇: 日本好的机器学习,深度学习相关书籍推荐