了解復原的工程

已完成

Microsoft 將復原能力定義為「商務程式或服務在面對正常作業的錯誤和挑戰時,能夠符合客戶的期望」。在 Microsoft Online Services 的規模下,復原能力對於維護 線上服務 的可用性非常重要。 因為知道以下事實,我們打造的服務都具有復原能力:

  • 硬體會故障。 假設硬碟的故障前平均時間 (MTFB) 為 100,000 小時。 對於單一硬碟,這似乎是每 11.5 年會發生一次可管理的故障。 但如果您有 10,000,000 個硬碟,這意味著約每 30 秒就會發生一次故障。 針對常見硬體元件故障的復原能力,是我們設計和建立線上服務的重要特徵。
  • 我們難免都會打錯字。 假設一般的 IT 實作人員在 100 部伺服器的系統中每天執行 100 個作業。 正確率為 99%,但這表示每天仍有一個錯誤。 擴大到 250,000 部伺服器時,就會變成每天 2500 個錯誤。
  • 軟體都會有錯誤。 必須持續部署軟體更新,讓服務保持在最新狀態。 具有復原能力的服務必須保護自己,避免受到軟體中新的和先前未發現錯誤的影響。

我們會使用 Microsoft 的超大規模雲端和採用服務自動化,讓我們的服務能夠抵禦多種失敗模式,以因應這些挑戰。

適用於復原原則的工程圖形表示法 - 主動/主動服務設計、錯誤隔離、縮短爆發半徑,以及持續改進

主動/主動服務設計

我們會盡可能確保服務在設計和部署時具有主動/主動復原能力。 這表示如果服務的重要元件故障,則相同的元件可供接管,而不會影響可用性。 主動/主動部署會取代舊的主動/被動模型,在後者中,被動元件在主動元件故障時需要一些時間才能接管工作負載,而導致暫時中斷服務可用性和資料完整性。 主動/主動服務設計代表較其他部署模型的大幅改進,並提供多種服務失敗的復原能力。

錯誤隔離

錯誤隔離透過防止某個元件中的錯誤導致其他元件跟著失敗,以改善服務復原能力。 錯誤隔離透過減少從元件故障自動復原所需的範圍,讓主動/主動服務設計更完善。 Microsoft 會持續努力減少雲端服務中容錯區域的大小,以防止失敗散佈並影響其他系統元件。

我們用於錯誤隔離的一些策略包括:

  • 在服務元件內及之間微調錯誤控制: 例如,Exchange Online 資料庫可用性群組會將服務內失敗的影響限制在特定的可用性群組。
  • 服務可用性的多通訊協定管理:例如,透過 SharePoint Online 的檔案協助工具,可以緩解對 Teams 中檔案存取帶來影響的事件。
  • 地區化與細微的系統設計:我們的服務設計將邏輯和實體服務基礎結構分成較小的單位。 這可讓我們根據事件的範圍,使用小規模和大規模服務管理適用的彈性,適當地回應事件。
  • 負載平衡和節流:我們的服務會在一般服務作業的過程中,定期在系統元件之間隨機傳輸流量和資料。 非必要的服務端流量會受到節流處理,以支援郵件傳遞等重要流量。 這可讓系統在發生元件故障或服務事件時自動排定重要服務的優先順序。

減少爆發半徑

與錯誤隔離密切相關的是事件的「發射半徑」概念。當事件發生時,發射半徑是指事件影響我們 線上服務 的廣度。 Microsoft 會持續努力減少潛在事件的爆發半徑。 當事件回應的檢討發現某類事件具有不可接受的爆發半徑時,我們會透過投資服務更新來回應,這些服務更新旨在於未來降低類似事件的影響。

持續改進

事件發生時,事件回應程序可確保每個事件都能得以解決。 我們使用標準化計量來追蹤事件對服務可用性和效能的影響。 對於客戶有顯著影響的事件需要進行事件後續審查。 系統會將事件後續審查所產生的重要發現與緩和措施張貼到服務健康情況儀表板,供受到影響的客戶檢視。

事件後續審查可協助找出復原改善之處,讓您在未來可以預防類似問題或限制這類問題的範圍。 從事件學習到的經驗會與各服務團隊分享,因此每個團隊可以在不直接經歷類似事件的情況下實施改善之處。

深入了解