雲計算時代,各大雲服務提供商都發布有自己服務的sla條款,比如amazon的ec2和s3服務都有相應的sla條款。這些大公司的sla看上去如此的高達上,一般是怎麼定義出來的呢?本文就嘗試從技術角度解剖一下sla的制定過程。
說sla不能不提slo,這個是眾所周知的,但是還有乙個概念知道的人就不多了,那就是sli(service level indicator),定義乙個可執行的sla,好的slo和sli是必不可少的。
再有就是sli/slo/sla都是和服務聯絡在一起的,脫離了服務這三個概念就沒有什麼意義了。
什麼是服務?
簡單說就是一切提供給客戶的有用功能都可以稱為服務。
服務一般會由服務提供者提供,提供這個有用功能的組織被稱為服務提供者,通常是人加上軟體,軟體的執行需要計算資源,為了能對外提供有用的功能軟體可能會有對其他軟體系統的依賴。
客戶是使用服務提供者提供的服務的人或公司。
sli是經過仔細定義的測量指標,它根據不同系統特點確定要測量什麼,sli的確定是乙個非常複雜的過程。
sli的確定需要回答以下幾個問題:
要測量的指標是什麼?
測量時的系統狀態?
如何彙總處理測量的指標?
測量指標能否準確描述服務質量?
測量指標的可靠度(trustworthy)?
可用性
質量 內部指標
因素人
下面通過乙個例子來說明一下:hotmail的downtime sli
slo(服務等級目標)指定了服務所提供功能的一種期望狀態。slo裡面應該包含什麼呢?所有能夠描述服務應該提供什麼樣功能的資訊。
服務提供者用它來指定系統的預期狀態;開發人員編寫**來實現;客戶依賴於slo進行商業判斷。slo裡沒有提到,如果目標達不到會怎麼樣。
slo是用sli來描述的,一般描述為:
比如以下slo:
設定slo時的幾個最佳實踐:
如果service是第一次設定slo,可以遵循以下原則
改進slo
保持一定的安全緩衝
不要超額完成
設定slo時的目標依賴於系統的不同狀態(conditions),根據不同狀態設定不同的slo:總slo = service1.slo1 weight1 + service2.slo2 weight2 + …
為什麼要有slo,設定slo的好處是什麼呢?
slo設好了,怎麼保證能夠達到目標呢?
需要乙個控制系統來:
該控制系統需要重複的執行以上動作,以形成乙個標準的反饋環路,不斷的衡量和改進slo/服務本身。
我們討論了目標以及目標是怎麼測量的,還討論了控制機制來達到設定的目標,但是如果因為某些原因,設定的目標達不到該怎麼辦呢?
也許是因為大量的新增負載;也許是因為底層依賴不能達到標稱的slo而影響上次服務的slo。這就需要sla出場了。
sla是乙個涉及2方的合約,雙方必須都要同意並遵守這個合約。當需要對外提供服務時,sla是非常重要的乙個服務質量訊號,需要產品和法務部門的同時介入。
sla用乙個簡單的公式來描述就是:sla = slo + 後果
對動作的具體實施
sla是乙個很好的工具,可以用來幫助合理配置資源。乙個有明確sla的服務最理想的執行狀態是:增加額外資源來改進系統所帶來的收益小於把該資源投給其他服務所帶來的收益。
乙個簡單的例子就是某服務可用性從99.9%提高到99.99%所需要的資源和帶來的收益之比,是決定該服務是否應該提供4個9的重要依據。
深度剖析什麼是 SLI SLO和SLA?
雲計算時代,各大雲服務提供商都發布有自己服務的sla條款,比如amazon的ec2和s3服務都有相應的sla條款。這些大公司的sla看上去如此的高達上,一般是怎麼定義出來的呢?本文就嘗試從技術角度解剖一下sla的制定過程。說sla不能不提slo,這個是眾所周知的,但是還有乙個概念知道的人就不多了,那...
什麼是深度學習?
讓我們先從深度學習的定義入手,然後順便理一下深度學習 機器學習以及ai之間的一些聯絡 深度學習是指多層的人工神經網路 和訓練它的方法。一層神經網路 會把大量矩陣數字作為輸入,通過非線性啟用方法取權重,再產生另乙個資料 三者聯絡如下 機器學習 抵達ai目標的一條路徑 深度學習是機器學習 研究中的乙個新...
深度學習 什麼是marginalization
中經常看到這樣的描述 谷歌翻譯顯示這個詞的意思是 邊緣化 那麼在數學中,邊緣化到底代表什麼操作呢?首先,邊緣化是概率論中的乙個概念,它要求對乙個變數的可能值求和,以確定另乙個變數的邊緣貢獻。這個定義可能聽起來有點抽象,讓我們用乙個例子來說明這一點。假設我們對天氣如何影響英國人的幸福這一話題感興趣。我...