

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

# 可用性與相依性
<a name="availability-with-dependencies"></a>

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

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

![\[方程的圖片。A = α 1 X α 2 X... X α n 下標資料 >\]](http://docs.aws.amazon.com/zh_tw/whitepapers/latest/availability-and-beyond-improving-resilience/images/equation4.png)


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

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

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

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

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

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

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

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

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