《深度剖析什么是 SLI、SLO和SLA?》要點:
本文介紹了深度剖析什么是 SLI、SLO和SLA?,希望對您有用。如果有疑問,可以聯(lián)系我們。
SLO和SLA是大家常見的兩個名詞:服務(wù)等級目標(biāo)和服務(wù)等級協(xié)議.
云計算時代,各大云服務(wù)提供商都發(fā)布有自己服務(wù)的SLA條款,比如Amazon的EC2和S3服務(wù)都有相應(yīng)的SLA條款.這些大公司的SLA看上去如此的高達(dá)上,一般是怎么定義出來的呢?本文就嘗試從技術(shù)角度解剖一下SLA的制定過程.
說SLA不能不提SLO,這個是眾所周知的,但是還有一個概念知道的人就不多了,那就是SLI(Service Level Indicator),定義一個可執(zhí)行的SLA,好的SLO和SLI是必不可少的.
再有就是SLI/SLO/SLA都是和服務(wù)聯(lián)系在一起的,脫離了服務(wù)這三個概念就沒有什么意義了.
什么是服務(wù)?
簡單說就是一切提供給客戶的有用功能都可以稱為服務(wù).
服務(wù)一般會由服務(wù)提供者提供,提供這個有用功能的組織被稱為服務(wù)提供者,通常是人加上軟件,軟件的運(yùn)行需要計算資源,為了能對外提供有用的功能軟件可能會有對其他軟件系統(tǒng)的依賴.
客戶是使用服務(wù)提供者提供的服務(wù)的人或公司.
SLI是經(jīng)過仔細(xì)定義的測量指標(biāo),它根據(jù)不同系統(tǒng)特點確定要測量什么,SLI的確定是一個非常復(fù)雜的過程.
SLI的確定需要回答以下幾個問題:
下面通過一個例子來說明一下:hotmail的downtime SLI
SLO(服務(wù)等級目標(biāo))指定了服務(wù)所提供功能的一種期望狀態(tài).SLO里面應(yīng)該包含什么呢?所有能夠描述服務(wù)應(yīng)該提供什么樣功能的信息.
服務(wù)提供者用它來指定系統(tǒng)的預(yù)期狀態(tài);開發(fā)人員編寫代碼來實現(xiàn);客戶依賴于SLO進(jìn)行商業(yè)判斷.SLO里沒有提到,如果目標(biāo)達(dá)不到會怎么樣.
SLO是用SLI來描述的,一般描述為:
比如以下SLO:
設(shè)置SLO時的幾個最佳實踐:
如果Service是第一次設(shè)置SLO,可以遵循以下原則
設(shè)置SLO時的目標(biāo)依賴于系統(tǒng)的不同狀態(tài)(conditions),根據(jù)不同狀態(tài)設(shè)置不同的SLO:總SLO = service1.SLO1 weight1 + service2.SLO2 weight2 + …
為什么要有SLO,設(shè)置SLO的好處是什么呢?
SLO設(shè)好了,怎么保證能夠達(dá)到目標(biāo)呢?
需要一個控制系統(tǒng)來:
該控制系統(tǒng)需要重復(fù)的執(zhí)行以上動作,以形成一個標(biāo)準(zhǔn)的反饋環(huán)路,不斷的衡量和改進(jìn)SLO/服務(wù)本身.
我們討論了目標(biāo)以及目標(biāo)是怎么測量的,還討論了控制機(jī)制來達(dá)到設(shè)置的目標(biāo),但是如果因為某些原因,設(shè)置的目標(biāo)達(dá)不到該怎么辦呢?
也許是因為大量的新增負(fù)載;也許是因為底層依賴不能達(dá)到標(biāo)稱的SLO而影響上次服務(wù)的SLO.這就需要SLA出場了.
SLA是一個涉及2方的合約,雙方必須都要同意并遵守這個合約.當(dāng)需要對外提供服務(wù)時,SLA是非常重要的一個服務(wù)質(zhì)量信號,需要產(chǎn)品和法務(wù)部門的同時介入.
SLA用一個簡單的公式來描述就是: SLA = SLO + 后果
SLA是一個很好的工具,可以用來幫助合理配置資源.一個有明確SLA的服務(wù)最理想的運(yùn)行狀態(tài)是:增加額外資源來改進(jìn)系統(tǒng)所帶來的收益小于把該資源投給其他服務(wù)所帶來的收益.
一個簡單的例子就是某服務(wù)可用性從99.9%提高到99.99%所需要的資源和帶來的收益之比,是決定該服務(wù)是否應(yīng)該提供4個9的重要依據(jù).
原文作者:呂宏利
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4370.html