共用方式為


Azure Health Data Services 取消識別服務的可靠性 (預覽)

本文說明取消識別服務 (預覽) 中的可靠性支援。 如需更多關於 Azure 可靠性準則的詳細概觀,請參閱 Azure 可靠性

跨區域災害復原

災害復原 (DR) 是指從重大影響事件中復原,例如自然災害或失敗的部署 (導致停機和資料遺失)。 無論原因為何,解決災害的最佳辦法是定義完善且經過測試的 DR 方案,以及主動支援 DR 的應用程式設計。 開始思考建立災害復原方案之前,請參閱設計災害復原策略的建議

Microsoft 在災害復原方面採取共同責任模型。 在共同責任模型中,Microsoft 確保基準基礎結構和平台服務可供使用。 此時,許多 Azure 服務不會自動複寫資料,或從失敗區域回復為交叉複寫到另一個已啟用的區域。 針對這些服務,您必須負責設定適用於您工作負載的災害復原計劃。 大多數在 Azure 平台即服務 (PaaS) 供應項目執行的服務,皆提供支援災害復原的功能和指導,您可以使用支援快速復原的特定服務功能來開發災害復原方案。

每個取消識別服務 (預覽) 都會部署到單一 Azure 區域。 如果整個區域無法使用,或效能大幅降低:

  • ARM 控制平面功能僅限於中斷期間的唯讀功能。 您的服務元數據(例如資源屬性)一律會依Microsoft備份在區域外部。 中斷結束后,您就可以讀取和寫入控制平面。
  • 所有數據平面要求在中斷期間都會失敗,例如取消識別或作業 API 要求。 不會遺失客戶數據,但可能會遺失作業進度元數據。 中斷結束后,您就可以讀取和寫入數據平面。

災害復原教學課程

如果整個 Azure 區域無法使用,您仍然可以確保工作負載的高可用性。 您可以在主動-主動組態中部署兩個或多個取消識別服務,並使用 Azure Front door 將流量路由傳送至這兩個區域。

使用此範例架構:

  • 相同的取消識別服務會部署在兩個不同的區域中。
  • Azure Front Door 可用來將流量路由傳送至這兩個區域。
  • 在災害期間,一個區域會脫機,而 Azure Front Door 會將流量獨佔路由傳送至另一個區域。 這類異地故障轉移期間的復原時間目標僅限於 Azure Front Door 偵測到某個服務狀況不良的時間。

RTO 和 RPO

如果您採用主動-主動設定,您應該預期復原時間目標 (RTO) 為 5 分鐘。 在任何設定中,您應該預期恢復點目標 (RPO) 為 0 分鐘 (不會遺失客戶數據)。

驗證災害復原計劃

必要條件

如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

完成本教學課程:

建立資源群組

在本教學課程中,您需要不同 Azure 區域中的兩個取消識別服務實例(預覽)。 本教學課程使用美國東部和美國西部 2 區域,但您可以選擇自己的區域。

為了簡化管理和清除作業,您在本教學課程中會針對所有資源使用單一資源群組。 請考慮針對每個區域/資源使用不同的資源群組,以在災害復原情況下進一步隔離您的資源。

執行下列命令以建立您的資源群組。

az group create --name my-deid --location eastus

建立取消識別服務 (預覽)

請遵循快速入門:部署取消識別服務 (預覽) 的步驟,以建立兩個不同的服務,一個在美國東部,另一個在美國西部 2。

請注意每個取消識別服務的服務 URL,以便在下一個步驟中部署 Azure Front Door 時定義後端位址。

建立 Azure Front Door

多區域部署都可以作為主動/主動或主動/被動設定使用。 主動-主動設定會將要求分散到多個作用中區域。 主動-被動設定會讓執行中的執行個體繼續在次要區域中執行,但除非主要區域失敗,否則不會將流量傳送至該處。 Azure Front Door 具有內建功能,可讓您啟用這些設定。 如需設計高可用性和容錯應用程式的詳細資訊,請參閱建構 Azure 應用程式以進行復原和可用性

建立 Azure Front Door 設定檔

您現在會 建立 Azure Front Door Premium ,以將流量路由傳送至您的服務。

執行 az afd profile create 建立 Azure Front Door 設定檔。

注意

如果您想要部署 Azure Front Door 標準版而非進階版,請將 --sku 參數的值取代為 Standard_AzureFrontDoor。 如果您選擇 [標準層],將無法使用 WAF 原則部署受控規則。 如需定價層的詳細比較,請參閱 Azure Front Door 層比較

az afd profile create --profile-name myfrontdoorprofile --resource-group my-deid --sku Premium_AzureFrontDoor
參數 數值 Description
profile-name myfrontdoorprofile Azure Front Door 設定檔的名稱,這是資源群組內唯一的名稱。
resource-group my-deid 包含此教學課程資源的資源群組。
sku Premium_AzureFrontDoor Azure Front Door 設定檔的定價層。

新增 Azure Front Door 端點

執行 az afd endpoint create 以在 Azure Front Door 設定檔中建立端點。 此端點會將要求路由傳送至您的服務。 完成本指南之後,您可以在配置檔中建立多個端點。

az afd endpoint create --resource-group my-deid --endpoint-name myendpoint --profile-name myfrontdoorprofile --enabled-state Enabled
參數 數值 Description
endpoint-name myendpoint 設定檔下端點的名稱,這是全域唯一的。
enabled-state Enabled 是否啟用此端點。

建立 Azure Front Door 原始群組

執行 az afd origin-group create 以建立包含您兩個取消識別服務的源群組。

az afd origin-group create --resource-group my-deid --origin-group-name myorigingroup --profile-name myfrontdoorprofile --probe-request-type GET --probe-protocol Https --probe-interval-in-seconds 60 --probe-path /health --sample-size 1 --successful-samples-required 1 --additional-latency-in-milliseconds 50 --enable-health-probe
參數 數值 Description
origin-group-name myorigingroup 原始群組的名稱。
probe-request-type GET 所發出的健康狀態探查要求類型。
probe-protocol Https 用於健康狀態探查的通訊協定。
probe-interval-in-seconds 60 健康狀態探查的間隔秒數。
probe-path /health 相對於來源的路徑,用來判斷來源的健康狀態。
sample-size 1 要針對負載平衡決策進行考量的樣本數。
successful-samples-required 1 取樣期間必須成功的樣本數。
additional-latency-in-milliseconds 50 以毫秒為單位的額外延遲,以使探查落入最低的延遲貯體。
enable-health-probe 切換以控制健康狀態探查的狀態。

將來源新增至 Azure Front Door 原始群組

執行 az afd origin create,將來源新增至原始來源群組。 針對 和 --origin-host-header 參數,請將佔位元值<service-url-east-us>取代為您的美國東部服務 URL,並省去配置 (https://)。--host-name 您應該有類似 abcdefghijk.api.eastus.deid.azure.com的值。

az afd origin create --resource-group my-deid --host-name <service-url-east-us> --profile-name myfrontdoorprofile --origin-group-name myorigingroup --origin-name deid1 --origin-host-header <service-url-east-us> --priority 1 --weight 1000 --enabled-state Enabled --https-port 443
參數 數值 Description
host-name <service-url-east-us> 主要取消識別服務的主機名。
origin-name deid1 原始的名稱。
origin-host-header <service-url-east-us> 要傳送要求至此來源的主機標頭。
priority 1 將此參數設定為 1,將所有流量導向至主要取消識別服務。
weight 1000 給定來源群組中用於負載平衡的來源權數。 必須介於 1 到 1000 之間。
enabled-state Enabled 是否啟用此原點。
https-port 443 用於來源 HTTPS 要求的連接埠。

重複此步驟,來新增第二個來源。 --host-name針對 和 --origin-host-header 參數,請將佔位元值<service-url-west-us-2>取代為您的美國西部 2 服務 URL,並省去配置 (https://)。

az afd origin create --resource-group my-deid --host-name <service-url-west-us-2> --profile-name myfrontdoorprofile --origin-group-name myorigingroup --origin-name deid2 --origin-host-header <service-url-west-us-2> --priority 1 --weight 1000 --enabled-state Enabled --https-port 443

請注意 --priority 這兩個命令中的參數。 由於這兩個來源都設定為優先順序 1,因此 Azure Front Door 會將這兩個來源視為作用中,並將流量導向這兩個區域。 如果一個來源的優先順序設定為 2,Azure Front Door 會將該來源視為次要來源,並將所有流量導向另一個來源,除非該來源停止。

新增 Azure Front Door 路由

執行 az afd route create,將您的端點對應至原始群組。 此路由會將要求從端點轉送至來源群組。

az afd route create --resource-group my-deid --profile-name myfrontdoorprofile --endpoint-name myendpoint --forwarding-protocol MatchRequest --route-name route  --origin-group myorigingroup --supported-protocols Https --link-to-default-domain Enabled 
參數 數值 Description
endpoint-name myendpoint 端點的名稱。
forwarding-protocol MatchRequest 此規則在將流量轉送至後端時所使用的通訊協定。
route-name route 路由的名稱。
supported-protocols Https 此路由支援通訊協定的清單。
link-to-default-domain Enabled 此路由是否連結至預設端點網域。

允許此步驟完成約 15 分鐘,因為此變更需要一些時間才能全域傳播。 在此期間之後,您的 Azure Front Door 將會正常運作。

測試 Front Door

建立 Azure Front Door 標準/進階版設定檔時,全域性部署組態需要幾分鐘的時間。 完成後,即可存取所建立的前端主機。

執行 az afd endpoint show 以取得 Front Door 端點的主機名稱。 看起來應該像這樣 abddefg.azurefd.net

az afd endpoint show --resource-group my-deid --profile-name myfrontdoorprofile --endpoint-name myendpoint --query "hostName"

在瀏覽器中,移至上一個命令傳回的端點主機名:<endpoint>.azurefd.net/health。 您的要求應該會自動路由傳送到美國東部的主要取消識別服務。

若要測試立即全域故障轉移:

  1. 開啟瀏覽器,移至端點主機名稱:<endpoint>.azurefd.net/health

  2. 請遵循設定 私人存取 來停用美國東部取消識別服務的公用網路存取中的步驟。

  3. 重新整理您的瀏覽器。 您應該會看到相同的信息頁面,因為流量現在已導向美國西部 2 的取消識別服務。

    提示

    您可能需要多次重新整理頁面,才能完成故障轉移。

  4. 現在,停用美國西部 2 中取消識別服務的公用網路存取。

  5. 重新整理您的瀏覽器。 此時,您應該會看到一則錯誤訊息。

  6. 為其中一個取消識別服務重新啟用公用網路存取。 重新整理瀏覽器,您應該會再次看到健康狀態。

您現在已驗證您可以透過 Azure Front Door 存取服務,以及如預期般運作的故障轉移功能。 如果您已完成故障轉移測試,請在其他服務上啟用公用網路存取。

清除資源

在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您在未來不需使用這些資源,請執行下列命令來刪除資源群組:

az group delete --name my-deid

此命令可能需要幾分鐘的時間才能完成。

起始復原

若要檢查服務的復原狀態,您可以將要求傳送至 <service-url>/health