可用性與相依性 - 可用性和超越:了解和提高分佈式系統的彈性 AWS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

可用性與相依性

在上一節中,我們提到硬體、軟體和潛在的其他分散式系統都是您工作負載的元件。我們稱這些元件相依性為您的工作負載所依賴的項目來提供其功能。有一些性依賴關係,這是您的工作負載無法在沒有的情況下運行的東西,以及不可用性可能在一段時間內被忽視或容忍的相依性。硬式相依性會直接影響工作負載的可用性。

我們可能想要嘗試計算工作負載的理論上最大可用性。這是所有相依性 (包括軟體本身) 的可用性產品 (α n 是單一子系統的可用性),因為每個子系統都必須可以運作。

方程的圖片。A = α 1 X α 2 X... X α n 下標資料 >

公式 4-理論上的最大可用性

這些計算中使用的可用性數字通常與 SLA 或服務等級目標 (SLO) 等項目相關聯。SLA 定義了客戶將獲得的預期服務等級、測量服務的指標,以及如果未達到服務水平的補救或罰款(通常是金錢)。

使用上面的公式,我們可以得出結論,純粹的數學上,工作負載不能超過其任何依賴關係。但實際上,我們通常看到的是情況並非如此。使用具有 99.99% 可用性 SLA 的兩個或三個相依性建置的工作負載本身仍可達到 99.99% 或更高的可用性。

這是因為正如我們在上一節中概述的那樣,這些可用性數字是估計值。他們估計或預測故障發生的頻率以及修復的速度。它們不是停機時間的保證。相依性通常超過其規定的可用性 SLA 或 SLO。

相依性也可能具有較高的內部可用性目標,這些目標是針對效能,而不是公開 SLA 中提供的數字。當未知或不可知的情況發生時,這提供了一定程度的降低風險,以滿足 SLA。

最後,您的工作負載可能具有其 SLA 無法知道或不提供 SLA 或 SLO 的相依性。例如,全球網際網路路由是許多工作負載的共同依存性,但很難知道您的全球流量正在使用哪個網際網路服務提供者、它們是否具有 SLA,以及它們在提供商之間的一致性很難。

這一切告訴我們的是,計算最大理論可用性只會產生粗略的數量級計算,但本身可能不準確或提供有意義的見解。數學確實告訴我們的是,您的工作負載所依賴的東西越少會降低整體失敗的可能性。少於一個乘以在一起的數字越少,結果越大。

規則 3

減少相依性可能會對可用性產生積極影響。

數學還有助於通知依賴關係選擇過程。選取程序會影響您設計工作負載的方式、如何利用相依性中的備援來提高其可用性,以及您是否將這些相依性視為軟體或硬體。應仔細選擇可能對工作負載造成影響的依賴關係。下一條規則提供有關如何執行此操作的指導。

規則 4

一般而言,請選取可用性目標等於或大於工作負載目標的相依性。