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

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

結論

我們在本文件中建立了 12 個高可用性規則。

  • 規則 1 — 較少的故障頻率 (較長的 MTBF)、更短的故障偵測時間 (縮短 MTTD),以及更短的修復時間 (縮短 MTTR) 是用來改善分散式系統可用性的三個因素。

  • 規則 2 — 工作負載中的軟體可用性是工作負載整體可用性的重要因素,而且應與其他元件相同。

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

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

  • 規則 5 — 使用備用來增加工作負載中相依性的可用性。

  • 規則 6 — 備用的成本效率有一個上限。利用所需的最少備用裝置來達到所需的可用性。

  • 規則 7 — 請勿依賴資料平面中的控制平面,尤其是在復原期間。

  • 規則 8 — 鬆散耦合依賴關係,以便儘管依賴性受損,您的工作負載仍可以正確運行,盡可能。

  • 規則 9 — 觀察性和儀器儀表對於減少 MTTD 和 MTTR 至關重要。

  • 規則 10 — 專注於緩解影響,而不是解決問題。以最快的路徑回到正常操作。

  • 規則 11 — 故障隔離可減少影響範圍,並透過降低整體故障率來增加工作負載的 MTBF。

  • 規則 12 — 讓操作員輕鬆做正確的事情。

透過減少 MTTD 和 MTTR,以及增加 MTBF 來改善工作負載可用性。總之,我們討論了以下方法,以提高涵蓋技術、人員和流程的可用性。

  • MTTD

    • 透過主動監控您的客戶體驗指標來減少 MTTD。

    • 利用精細的運作狀態檢查,快速進行容錯移轉。

  • MTTR

    • 監視影響範圍和作業健康狀態指標。

    • 按照 1 /重新啟動、2/ 重新開機、3 /重新映像/重新部署和 4 /取代以減少 MTTR。

    • 通過了解影響範圍繞失敗的路由。

    • 透過虛擬機器或實體主機,利用重新啟動時間較快的服務,例如容器和無伺服器功能。

    • 盡可能自動復原失敗的部署。

    • 建立診斷操作和重新啟動程序的手冊和操作工具。

  • MTBF

    • 通過嚴格的測試,在軟件發布到生產之前消除錯誤和缺陷。

    • 實施混亂工程和故障注入。

    • 利用相依性中的適當數量備用來容忍失敗。

    • 透過故障容器將故障期間的影響範圍降至最低。

    • 實作部署和變更的標準。

    • 設計簡單、直觀、一致且記錄良好的操作員介面。

    • 設定卓越營運目標。

    • 當可用性是工作負載的關鍵維度時,有利於發行新功能的穩定性。

    • 透過節流或負載脫落或兩者實作使用配額,以避免過載。

請記住,我們永遠不會完全成功地防止失敗。專注於具有最佳故障隔離的軟體設計,這些隔離會限制影響範圍和大小,最理想地將影響保持在「停機時間」閾值以下,並投資於非常快速、非常可靠的偵測和緩解措施。現代分散式系統仍然需要將故障視為不可避免的情況,並在各個層面進行設計,以實現高可用