Service Connector 的高可用性

Service Connector 可以為你在 Azure 中運行的所有類型應用程式提供高可用性支援。 本文介紹了服務連接器的高可用性功能,如可用性區域、區域冗餘、災難復原及跨區域故障轉移。

Service Connector 的高可用性架構目標是確保服務連線至少能在 99.9% 上線並運作。 這種高可用性意味著您不必擔心維護作業與停電對服務連線的影響。

可用性區域

服務連接器支援 Azure 可用性區域,以協助您實現業務關鍵工作負載的復原能力和可靠性。 你可以在多個區域的可用性區域間分發 Azure 運算服務。 服務連接器是這些計算服務的延伸資源提供者。

Microsoft 負責為您的服務連線設定可用性區域和災害復原。 當你在啟用可用性區域的運算服務中建立服務連線時,Azure 會自動為你的服務連線設定對應的可用性區域。

區域備援

Service Connector 是一個 Azure 擴充資源提供者,擴展了 Azure App Service、Azure Spring Apps 和 Azure Container Apps。 當你使用 Service Connector 在這些運算服務中建立新的服務連線時,Azure 會將連線資源作為頂層父計算服務的一部分配置。

要啟用服務連線的區域冗餘,必須啟用運算服務的區域冗餘。 你的服務連線也會自動變成區域冗餘。

例如,如果你有一個啟用區域冗餘的應用程式服務,且有三個實例,平台會自動將你的應用程式服務實例分散到所選區域的三個區域。 當你使用 Service Connector 在此應用程式服務中建立服務連線時,服務連線資源也會自動在所選區域的三個對應區域建立。

網絡流量會路由至所有可用的連線資源。 當區域關閉時,平台會偵測遺失的執行個體,自動嘗試尋找新的替代執行個體,並視需要分散流量。

若要使用 Service Connector 建立區域冗餘服務連線,請參見 建立區域冗餘服務連線

備註

為了建立、更新、驗證及列出服務連線,Service Connector 會呼叫計算服務與目標服務的 API。 由於服務連接器依賴計算服務和目標服務的回應,如果在區域故障情境中無法連接到目標服務,向服務連接器的請求可能無法成功。 此限制適用於 App Service、Azure Container Apps 及 Azure Spring Apps。

災難復原與韌性

災難復原是在發生災難性損失後還原應用功能的過程。 災難復原的目標是將單一元件失效的影響降到最低,而非試圖完全防止故障。

Service Connector 負責儲存與運算的 業務持續性與災難復原(BCDR )。 目標是讓任何區域的儲存或運算問題對業務影響降至最低。 在發生災害時,服務連接器會容錯移轉至配對的區域。 一旦服務連接器團隊識別並宣告故障,客戶就不需要再做任何事。

復原時間目標(RTO) 表示從影響服務連接器的停電開始到恢復至完全可用之間的時間。 復原點目標(RPO) 表示從影響服務連接器的停電開始到最後一次正確恢復操作之間的時間。 預期和最大 RPO 為 24 小時,RTO 為 24 小時。

資料層設計在災難發生時優先考量可用性而非延遲。 若區域中斷,Service Connector 會嘗試從其配對區域回應終端用戶請求。

在災難發生時,針對服務連接器的操作可能在故障轉移發生前就失敗。 故障轉移後,從客戶角度看,所有資料和操作均如常服務。 資料會被恢復,客戶也不需要採取任何行動。

在容錯移轉動作期間,服務連接器會處理可用區域的 DNS 重新對應。 Service Connector 大約一小時內會更換 DNS。 執行手動容錯移轉需要更多時間。 由於 Service Connector 是建立在其他 Azure 服務上的資源提供者,實際所需時間取決於底層服務的故障轉移時間。

災害復原區域支援

Service Connector 目前支援下列區域配對。 在主要區域發生中斷時,故障轉移到次要區域會自動開始。

Primary Secondary
東美國 2 早期更新存取計畫(EUAP) 美國東部
美國中西部 美國中西部 2
西歐 北歐
北歐 西歐
美國東部 美國西部 2
美國西部 2 美國東部

跨區域容錯移轉

Microsoft 負責處理跨區域容錯移轉。 故障轉移過程不需要更改客戶的應用程式或運算服務設定。 Service Connector 使用主動-被動叢集組態,並具備自動容錯移轉功能。 災難復原後,客戶可完整使用 Service Connector 的功能。

Service Connector 每 10 分鐘進行一次健康檢查,區域故障轉移則由 Service Connector 後端偵測與處理。 每隔 10 分鐘執行一次的健康檢查,透過在每個由服務連接器支援的運算服務中建立、驗證和更新與目標服務的連線,以模擬使用者行為。

Microsoft 會在以下任一條件下開始分析並啟動服務連接器故障轉移:

  • 服務健康檢查連續三次失敗。
  • 依賴服務連接器的服務宣告停機。
  • 客戶回報區域故障。

對服務連線的請求會在容錯移轉期間受到影響。 容錯移轉完成後,服務連線資料會被還原。 您可以檢查 Azure 狀態頁面 ,以檢查所有 Azure 服務的狀態。

建立區域冗餘服務連線

你可以透過 Azure CLI 或 Azure 入口網站,建立一個區域冗餘服務連線到你選擇的目標資源。 你用同樣的流程來為 Azure Spring Apps 和 Azure Container Apps 的計算服務建立區域冗餘連線。

下列步驟會建立區域備援的服務連線,連至適用於 Azure App Service 的 Azure 儲存體 Blob。 要為 App Service 的服務連線啟用區域冗餘,首先需建立一個具有區域冗餘的 App Service。 因為你為你的應用程式服務啟用區域冗餘,服務連線也是區域冗餘。

這很重要

區域冗餘僅支援 App Service 的 PremiumV2-PremiumV4 及 Isolated SKU 層級。 基本版和免費 SKU 層級不支援區域冗餘。 如需詳細資訊,請參閱 Azure App 服務 中的可靠性。

下列步驟會在現有的資源群組 (稱為 MyResourceGroup) 中為稱為 MyPlan 的 PremiumV3 App Service 方案建立區域備援的服務連線。 此範例會建立與 Azure 儲存體 Blob 的服務連線。 若要建立與其他目標資源的網頁應用服務連線,請參見 az webapp connection create

  1. 建立 App Service 計畫並包含參數 --zone-redundant 。 你也可以選擇加入 --number-of-workers 參數來指定容量。 欲了解更多資訊,請參閱 如何部署區域冗餘的應用程式服務

    az appservice plan create --resource-group MyResourceGroup --name MyPlan --sku P1V3 --zone-redundant --number-of-workers 6
    
  2. 在 App Service 方案中建立一個網頁應用程式。 新的網頁應用程式名稱必須在 Azure 中全域唯一。 在接下來的程式碼中,請將 <unique_app_name> 佔位符替換為您全域唯一的網頁應用程式名稱。

    az webapp create --name <unique_app_name> --plan MyPlan --resource-group MyResourceGroup
    
  3. 使用系統指派身份授權建立服務連線至現有的 Azure Storage Blob。 在以下程式碼中,將<unique_app_name><storage_account_resource_group><storage_account_name>佔位符替換為您的資源值。 更多資訊請參見 az webapp connection create storage-blob

    az webapp connection create storage-blob \
      --resource-group MyResourceGroup -name <unique_app_name> \
      --target-resource-group <storage_account_resource_group> \
      --account <storage_account_name> --system-identity
    

小提示

建議為目標服務啟用區域備援。 在區域故障的情況下,連線流量會自動轉移到其他區域。 然而,建立、驗證及更新連線依賴目標服務管理 API。 若目標服務不支援或啟用區域冗餘,這些操作就會失敗。