Reliability in Azure

在雲端環境中,故障是無可避免的。 硬體故障、軟體缺陷、設定錯誤、流量激增、資料中心中斷,甚至區域性中斷都可能發生。 可靠性 是指工作負載即使在故障或中斷期間,仍能持續滿足業務期望的能力。 有了正確的架構與運作,故障不必導致停機。

意外的停機時間會帶來巨大影響。 這會帶來財務成本,並損害客戶和使用者的信任。 除了這些直接影響外,可靠性不佳還會影響合規義務與競爭地位。 你的團隊花更多時間滅火,卻花在更少時間創造價值。 甚至可能觸發合約上的服務等級罰款。

Azure 提供具韌性的基礎架構與託管服務,但你的工作負載可靠性取決於你所做的設計與營運決策:如何設計架構、配置服務、管理相依性、自動化問題回應,以及測試軟體與流程。 及早設計可靠性有助於減少故障,並確保當故障發生時,工作量會以可預測且可控的方式減少,符合業務優先順序。

可靠的工作負載有兩個基本特性:

  • 它具備 韌性,能吸收環境故障與變化,同時持續以可接受的服務水準運作。
  • 同時也是 可恢復的,意味著當中斷發生時,工作負載能在設定的時間內及資料遺失限制內恢復正常運作。

您需要兩個物業都符合實際的可用性期望並維持業務連續性。

Azure 的可靠性跨越三個互聯層次:

  • 你的應用:你的架構選擇、實務與流程,包括相依管理、運行手冊、自動化與測試
  • 可靠性特點,包括:
    • 工作負載服務與設定:你如何配置執行你工作負載的 Azure 服務,以及你在這些服務中設定的可靠性能力
    • Azure 平台服務:專門支援工作負載可靠性的 Azure 服務,如負載平衡、DNS、流量路由及監控
  • 可靠性基礎:Azure 內建的韌性,如可用性區域、區域安全部署措施

這些層級協同作用,以決定整體工作負載的可靠性。 了解它們能幫助你區分 Azure 預設提供的與你需要設計、設定和操作的部分。

這個模式幫助你善用 Azure 所提供的資源,同時負責只有你能設計的部分。 本文將聚焦於 Azure 在這些層級中所提供的內容。 如需關於工作負載設計與作業層(設計彈性解決方案與架構模式)的完整指引,請參閱Azure Well-Architected框架,特別是可靠性支柱

可靠性的共同責任

Azure 的可靠性遵循共同責任模型。 Microsoft 透過 Azure 提供韌性平台。 你設計的是有韌性的工作負載。

顯示 Azure 中可靠性層次的圖表。

  • Microsoft 擁有平台基礎與平台可靠性服務。 這種所有權包括韌性基礎建設(物理冗餘、故障隔離與修復)、可用性區域、區域分布、安全部署實務,以及平台層級服務,如負載平衡、流量路由與監控。 Microsoft 負責 Azure 平台的可靠性,以及根據各服務已發布的 SLA 和文件(如可靠性指南)所定義的服務的可靠性。

  • 負責工作量的設計與營運。 你負責透過架構決策、設定選擇、營運實務與測試,將 Azure 的能力轉化為可靠的工作負載行為。

    Azure 無法知道你的可用性目標、可接受的取捨、商業情境或應用程式特定需求。 只有你能定義這些需求並據此設計。 Azure 提供功能,讓你選擇和設定它們。 例如,你為資料庫等服務設定故障轉移行為,並定義負載平衡器健康探測器,準確反映應用程式健康狀況,確保流量路由決策正確,即使在故障時也是如此。

    這很重要

    該平台提供的是基本組件,而非端對端的保證。 你的設計與操作選擇決定這些能力是否能轉化為可靠的工作負載。 關於共同責任模式的完整解析,請參見 「雲端中的共同責任」。

服務水準協議(SLA)定義了 Azure 服務間的可靠性承諾與期望。 了解 SLA 在評估服務及設計特定可用性目標時至關重要。 Azure 服務會發布 SLA 承諾,這些承諾會依設定和冗餘層級而有所不同。 你使用的其他供應商服務也可能發布SLA。 如需全面指引 SLA 如何運作及與您的工作負載可用性預期相關,請參閱服務水準協議。

Resilient foundations in Azure

Azure 在平台本身內建了多層韌性。 這些基礎提供了建立可靠工作負載的基礎能力:

  • 實體基礎設施韌性:Azure 資料中心設計有冗餘基礎設施,如電源、冷卻及網路連線。 Azure Fabric 控制器會自動隔離並管理硬體故障。 它能偵測故障並協調工作負載遷移到健康硬體,無需客戶介入。

  • 區域:Azure 在全球超過 70 個區域營運。 這種地理分布使工作負載能透過計畫的故障轉移能力,承受區域性的中斷與中斷,同時符合您的資料駐留要求。 欲了解更多資訊,請參閱 Azure 區域概覽

  • 可用區域:許多 Azure 區域在同一區域內包含物理上獨立的資料中心。 這些可用區域由高速、低延遲的網路連接。 每個區域擁有獨立的電源、冷卻與網路,以防範資料中心層級故障,同時維持許多 Azure 服務的同步複製能力。 如需詳細資訊,請參閱 什麼是可用性區域?

  • 安全部署:Azure 實施受控且錯開的平台更新與服務變更部署流程,以降低廣泛服務中斷的風險。 該平台會逐步推送更新,例如跨故障域、可用區域及區域,並在偵測到問題時具備自動回滾功能。 此方法確保平台變更不會對客戶工作負載帶來可靠性風險。

Azure 自動提供這些平台層級基礎。 它們構成了你建立可靠工作負載的基礎層。 然而,您仍必須正確配置服務,並以符合特定業務需求的方式結合這些功能。

支援您可靠性的 Azure 服務

Azure 提供平台功能,將可靠性概念轉化為可執行的架構組件。 這些能力協同運作,以實現韌性架構,許多 Azure 服務內建這些模式的實作:

Capability Description
AI 驅動的可靠性優化 AI 驅動的可靠性優化 利用 AI 驅動的功能來評估並提升可靠性。 這些能力分析工作負載模式,識別潛在風險,並提供建議,幫助團隊從被動故障排除轉向主動可靠性管理。 這些能力能將可靠性訊號浮現並轉化為可執行的建議,幫助團隊優先排序並隨時間提升可靠性。

Azure 提供多項以 AI 驅動的可靠性服務,包括:
- Azure Resiliency capabilities
- Agents 中的韌性能力(預覽版)在 Azure Copilot
- Azure SRE Agent

這些服務會分析工作負載模式並提出改進建議,以優化整體的可靠性狀態。
負載平衡與流量管理 負載平衡與流量管理 透過在冗餘實例間路由流量並自動處理故障轉移,實現可靠性。 此能力對於在單一元件故障時維持服務可用性至關重要。

Azure 在多個層級提供負載平衡,包括:
- Azure Load Balancer for Layer-4 TCP/UDP 流量分布
- Azure 應用程式閘道 for Layer-7 HTTP 路由與應用程式感知健康檢查
- Azure Front Door for global HTTP load balancing with rapid failover
- Azure 流量管理員 for DNS based global endpoint distribution

如果你需要幫助決定要用哪種負載平衡器來滿足你的情境,請參考 負載平衡選項
備份與資料保護 備份與資料保護 防止資料遺失與損壞,並在問題發生後協助復原。

Azure 提供多項備份與復原功能,包括:
- Azure 備份 用於集中式備份,並可配置保留功能,適用於虛擬機、blob 容器、檔案及部分資料庫
- 許多 Azure 服務的原生備份與還原功能,包括大多數資料庫服務
- Bicep 及其他基礎設施作為程式碼的工具,用於設定備份、漂移保護及快速環境重建

請檢視每個 Azure 服務的可靠性指南,了解該服務所支援的備份方式。
地理複製與故障轉移 地理複製與故障轉移 透過跨區域資料複製及自動故障轉移功能,實現區域故障的復原。

Azure Site Recovery 透過自動複寫與故障轉移序列,協調虛擬機工作負載的災難復原。 許多 Azure 服務也提供內建的地理複製功能,包括:
- Azure Cosmos DB 具備原生跨區域資料複製及故障轉移功能
- Azure API 管理 with native cross-region failover capabilities

服務可靠性指南會詳細說明每個服務可用的地理複製選項。
監控與可觀察 性監測與可觀察性 提供對可靠性態勢的全面可視化,並能主動回應問題。

Azure 提供多項可觀察性服務,包括:
- Azure 監視器Application Insights 用於即時監控、警示與相依性追蹤
- Azure 監視器 中的健康模型用來監控整個工作負載的健康狀況
- Azure 服務健康狀態 提供個人化的警示與 Azure 服務問題指引,這些問題可能影響你的工作負載

這些功能結合起來,幫助您了解是否符合可靠性要求,並在問題發生時迅速回應。
可靠性測試與驗證 可靠性測試與驗證 協助驗證工作負載在故障條件下是否如預期運作,並確保你的解決方案在問題影響使用者前達到可靠性要求。

Azure 提供可靠性測試服務,包括:
- Azure Chaos Studio 用於受控錯誤注入實驗,以驗證自我修復行為及對現實世界故障的韌性
- Azure 應用程式測試 用於效能與功能測試,了解應用程式的行為,包括壓力下

Enable reliability in Azure services

該平台透過數十個 Azure 服務提供服務層的可靠性能力,每個服務都有其特定的優勢與使用案例。 每個服務的可靠性指南都詳細說明如何在不同情境下保持服務可用性,例如:

  • 暫態故障,指短暫且間歇性的故障。 服務指南提供最佳實務建議,以減少影響,例如重試並使用 Microsoft 提供的 SDK。
  • 可用性區域失效,因此服務能自動重新導向請求以維持高可用性。
  • 區域性故障,因此服務可以切換到次要區域,並在區域中斷期間繼續運作。

欲查看許多 Azure 服務的可靠性指南,請參閱「依服務分類的可靠性指南」。

設計可靠的工作負載

可靠性源自於持續的循環:定義目標、設計故障與快速復原、測試假設,並透過操作學習進行改進。 請參考 Azure Well-Architected Framework 與服務可靠性指南,了解每個服務預設提供什麼,以及哪些需要明確設定。 關於實施可靠性的結構化方法,請參見Azure Well-Architected框架可靠性成熟度模型

在設計過程中,將 基礎概念技術概念連結起來。 像 業務持續性共同責任 等基礎概念,定義了您需要達成的成果。 技術概念如 冗餘複寫備份故障轉移回備 ,定義了如何在架構與營運中實現這些成果。 服務水準協議 能幫助您了解從服務提供者那裡獲得的保證。

主權與資料駐留

設計可靠性時,應及早納入主權與資料駐留要求,因為它們會影響區域選擇、複製策略及故障轉移路徑。 即使是具備韌性的架構,若故障轉移或資料移動跨越受限制的邊界,仍可能不符合合規性要求。 欲了解更多資訊,請參閱 可靠性與主權

Azure 的可靠性是透過結合韌性平台基礎與深思熟慮的工作負載設計與營運來達成的。 透過了解 Azure 提供什麼,以及你需要在哪裡做設計和配置決策,你就能建立出即使出現故障也能持續符合業務期望的系統。