商務持續性和災害復原的容錯移轉

為了充分發揮您的執行時間,請事先規劃以維護商務持續性,並使用 Azure Machine Learning 做好災害復原的準備。

Microsoft 致力於確保 Azure 服務皆能持續可用。 不過,可能會發生非計劃性服務中斷。 建議您備妥災害復原計畫,以處理區域服務中斷問題。 在本文中,您將學會如何:

  • 規劃 Azure Machine Learning 和相關聯資源的多區域部署。
  • 盡可能提升記錄、筆記本、Docker 映像和其他中繼資料的復原機率。
  • 設計解決方案的高可用性。
  • 啟動容錯移轉至另一個區域。

重要

Azure Machine Learning 本身未提供自動容錯移轉或災害復原。 無法備份和還原執行歷程記錄等工作區中繼資料。

若您不小心刪除了工作區或對應的元件,這篇文章也會提供目前支援的復原選項。

瞭解適用於 Azure Machine Learning 的 Azure 服務

Azure Machine Learning 相依於多項 Azure 服務, 其中部分服務佈建在您的訂閱中, 您必須負責這些服務的高可用性設定。 其他服務於 Microsoft 訂閱中建立,並由 Microsoft 管理。

Azure 服務包括:

  • Azure Machine Learning 基礎結構:適用於 Azure Machine Learning 工作區的 Microsoft 管理環境。

  • 相關聯的資源:Azure Machine Learning 工作區建立期間佈建在您訂閱中的資源。 這些資源包括 Azure 儲存體、Azure Key Vault、Azure Container Registry 和 Application Insights。

    • 默認記憶體具有模型、定型記錄數據和數據資產參考等數據。
    • Key Vault 具有 Azure 儲存體、Container Registry 和資料存放區的認證。
    • Container Registry 具有用於定型和推斷環境的 Docker 映像。
    • Application Insights 用於監視 Azure Machine Learning。
  • 計算資源:您在工作區部署之後建立的資源。 例如,您可能會建立計算執行個體或計算叢集定型機器學習模型。

    • 計算執行個體和計算叢集:Microsoft 管理的模型開發環境。
    • 其他資源:您可以附加至 Azure Machine Learning 的 Microsoft 計算資源,例如 Azure Kubernetes Service (AKS)、Azure Databricks、Azure 容器執行個體和 Azure HDInsight。 您必須負責設定這些資源的高可用性設定。
  • 其他數據存放區:Azure 機器學習 可以掛接其他數據存放區,例如 Azure 儲存體 和 Azure Data Lake 儲存體 來定型數據。 這些資料存放區會佈建在您的訂閱內。 您必須負責設定其高可用性設定。 若要查看其他數據存放區選項,請參閱 建立數據存放區

下表顯示 Microsoft 管理的 Azure 服務,以及由您管理的服務。 其也會指出預設為高可用性的服務。

服務 管理者 預設為高可用性
Azure Machine Learning 基礎結構 Microsoft
相關聯的資源
Azure 儲存體
Key Vault
Container Registry
Application Insights NA
計算資源
計算執行個體 Microsoft
計算叢集 Microsoft
其他計算資源,例如 AKS、
Azure Databricks、容器執行個體、HDInsight
其他資料存放區,例如 Azure 儲存體、SQL Database、
適用於 PostgreSQL 的 Azure 資料庫、適用於 MySQL 的 Azure 資料庫、
Azure Databricks File System

本文的其餘部分,將說明讓這些每一項服務都具有高度可用性所需採取的動作。

規劃多重區域部署

多重區域部署仰賴在兩個 Azure 區域中建立 Azure Machine Learning 及其他資源 (基礎結構)。 若發生區域性中斷,您可以切換到另一個區域。 規劃部署資源的位置時,請考慮:

  • 區域可用性:可能的話,請使用相同地理區域中的區域,不一定是最接近的區域。 如要檢查 Azure Machine Learning 的區域可用性,請參閱依區域的 Azure 產品

  • Azure 配對區域:已配對區域會協同進行平台更新,並優先處理需要進行的復原工作。 不過,並非所有區域都支援配對的區域。 如需詳細資訊,請參閱 Azure 配對區域

  • 服務可用性:決定解決方案所使用的資源應為經常性存取層/經常性存取、經常性存取層/暖存取層或經常性存取層/冷存取層。

    • 經常性存取層/經常性存取層:兩個區域同時為作用中,其中一個區域準備好立即開始使用。
    • 經常性存取層/暖存取層:主要區域處於作用中,次要區域具有重要資源 (例如已部署的模型) 且準備開始使用。 非重要的資源必須手動部署在次要區域中。
    • 經常性存取層/冷存取層:主要區域處於作用中,次要區域已部署 Azure Machine Learning 和其他資源,以及所需的資料。 模型、模型部署或管線等資源需要手動部署。

提示

視您的商務需求而定,您可能會決定以不同的方式處理不同的 Azure Machine Learning 資源。 例如,您可能會想要對已部署的模型使用經常性存取層/經常性存取層 (推斷),並針對實驗使用經常性存取層/冷存取層 (定型)。

Azure Machine Learning 是以其他服務為基礎。 某些服務可設定為複寫至其他區域。 其他服務則須由您在多個區域中手動建立。 下表提供服務清單、複寫負責者,以及設定的概觀:

Azure 服務 異地複寫者 組態
Machine Learning 工作區 在選取的區域中建立工作區。
Machine Learning Compute 在選取的區域中建立計算資源。 針對可動態調整的計算資源,請確定這兩個區域都能為您的需求提供足夠的計算配額。
機器學習 登錄 在多個區域中建立登錄。
金鑰保存庫 Microsoft 使用相同的 Key Vault 執行個體,搭配 Azure Machine Learning 工作區和這兩個區域中的資源。 Key Vault 會自動容錯移轉至次要區域。 如需詳細資訊,請參閱 Azure Key Vault 可用性與備援
Container Registry Microsoft 設定 Container Registry 執行個體,以將登錄異地複寫至配對區域進行 Azure Machine Learning。 這兩個工作區執行個體皆使用相同的執行個體。 如需詳細資訊,請參閱 Azure Container Registry 中的異地複寫
儲存體帳戶 Azure 機器學習 不支援使用異地備援記憶體 (GRS)、異地區域備援記憶體 (GZRS)、讀取許可權異地備援記憶體 (RA-GRS) 或讀取許可權異地區域備援記憶體 (RA-GZRS) 進行預設記憶體帳戶故障轉移。 針對每個工作區的預設儲存體,建立個別的儲存體帳戶。
為其他資料儲存體建立個別的儲存體帳戶或服務。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。
Application Insights 在兩個區域中建立工作區的 Application Insights。 如要調整資料保留期間和詳細資訊,請參閱 Application Insights 中的資料收集、保留和儲存

如要在次要區域中啟用快速復原並重新啟動,建議使用下列開發做法:

  • 使用 Azure Resource Manager 範本。 範本是「基礎結構即程式碼」,可讓您快速地在這兩個區域中部署服務。
  • 為了避免兩個區域之間的漂移,請更新您的持續整合和部署管線,以部署至這兩個區域。
  • 將部署自動化時,請包含工作區附加計算資源 (例如 Azure Kubernetes Service) 的設定。
  • 為這兩個區域中的使用者建立角色指派。
  • 建立兩個區域的網路資源,例如 Azure 虛擬網路和私人端點。 請確定使用者可以存取這兩個網路環境。 例如,兩個虛擬網路的 VPN 和 DNS 設定。

計算和資料服務

視您的需求而定,您可能會有更多 Azure 機器學習 所使用的計算或數據服務。 例如,您可以使用 Azure Kubernetes Services 或 Azure SQL 資料庫。 使用下列資訊,瞭解如何設定這些服務以取得高可用性。

計算資源

資料服務

提示

若您提供自己的客戶自控金鑰來部署 Azure Machine Learning 工作區,則也會在您的訂閱中佈建 Azure Cosmos DB。 此時,您需要負責設定其高可用性設定。 請參閱 Azure Cosmos DB 的高可用性

高可用性設計

可用性區域

某些 Azure 服務支援可用性區域。 對於支援可用性區域的區域,如果某個區域停止任何工作負載暫停,且應該儲存數據。 不過,在區域重新上線之前,無法重新整理數據。

如需詳細資訊,請參閱可用性區域服務和地區支援

將重要元件部署至多個區域

判斷您要目標的商務持續性層級。 解決方案元件之間的層級可能會有所不同。 例如,您可能想要有生產管線或模型部署的經常性/經常性設定,以及測試的經常性/冷。

管理隔離儲存區上的定型資料

藉由讓您的資料儲存體與工作區用於記錄的預設儲存體隔離,您可以:

  • 將與資料存放區相同的儲存體執行個體附加至主要和次要工作區。
  • 利用資料儲存體帳戶的異地複寫,讓您的執行時間發揮最大效益。

以程式碼的形式管理機器學習資產

注意

無法備份和還原執行歷程記錄、模型、環境等工作區中繼資料。 使用 YAML 規格將資產和設定指定為程式碼,可協助您在發生災害時重新建立所有工作區的資產。

Azure Machine Learning 中的作業是由作業規格所定義。 此規格包含工作區實例層級上管理的輸入成品相依性,包括環境和計算。 針對多重區域作業提交和部署,建議您採用下列做法:

  • 在本機管理您的程式碼基底 (由 Git 存放庫提供支援)。

    • 從 Azure Machine Learning 工作室匯出重要的筆記本。
    • 將以工作室撰寫的管線匯出為程式碼。
  • 以程式碼形式管理設定。

    • 避免對工作區執行硬式編碼參考。 相反地,使用 組態檔 設定工作區實例的參考,並使用 MLClient.from_config() 初始化工作區。
    • 若您使用自訂 Docker 映像,請使用 Dockerfile。

起始容錯移轉

在容錯移轉工作區中繼續工作

當主要工作區變成無法使用時,您可以切換次要工作區以繼續進行實驗和開發。 如果中斷,Azure 機器學習 不會自動將作業提交至次要工作區。 更新您的程式碼設定,以指向新的工作區資源。 建議您避免硬式編碼工作區參考。 在變更工作區時,請改用工作區設定檔將手動的使用者步驟降至最低。 同時請務必將任何自動化 (例如持續整合和部署管線) 更新至新的工作區。

Azure 機器學習 無法同步處理或復原工作區實例之間的成品或元數據。 視應用程式部署策略而定,您可能需要在故障轉移工作區中移動成品或重新建立實驗輸入,例如數據資產,才能繼續提交作業。 若您已設定主要工作區和次要工作區資源來共用已啟用異地複寫的相關聯資源,則可能會有一些物件可直接用於容錯移轉工作區。 例如,若這兩個工作區共用相同的 docker 影像、已設定資料存放區,以及 Azure Key Vault 資源。 下圖顯示兩個工作區共用相同影像 (1)、資料存放區 (2) 和 Key Vault (3) 的設定。

配對區域之間的故障轉移圖表。

注意

發生服務中斷時,任何執行中的作業都不會自動轉換至次要工作區。 在中斷問題解決之後,主要工作區中的作業也不太可能成功地繼續並順利完成。 取而代之的是,在中斷問題解決之後,必須在次要工作區或主要工作區重新提交這些作業。

在工作區間移動成品

根據您的復原方法,您可能需要在工作區之間複製成品,才能繼續您的工作。 目前,工作區之間的成品可攜性有限。 建議您盡可能以程式碼的形式來管理成品,以便在容錯移轉執行個體中重新建立這些成品。

您可以使用機器學習的 Azure CLI 延伸模組,在工作區之間匯出和匯入下列成品:

成品 匯出 匯入
模型 az ml model download --name {NAME} --version {VERSION} az ml model create
環境 az ml environment share --name my-environment --version {VERSION} --resource-group {RESOURCE_GROUP} --workspace-name {WORKSPACE} --share-with-name {NEW_NAME_IN_REGISTRY} --share-with-version {NEW_VERSION_IN_REGISTRY} --registry-name {REGISTRY_NAME} az ml environment create
Azure Machine Learning 作業 az ml job download -n {NAME} -g {RESOURCE_GROUP} -w {WORKSPACE_NAME} az ml job create -f {FILE} -g {RESOURCE_GROUP} -w {WORKSPACE_NAME}
資料資產 az ml data share --name {DATA_NAME} --version {VERSION} --resource-group {RESOURCE_GROUP} --workspace-name {WORKSPACE} --share-with-name {NEW_NAME_IN_REGISTRy} --share-with-version {NEW_VERSION_IN_REGISTRY} --registry-name {REGISTRY_NAME} az ml data create -f {FILE} -g {RESOURCE_GROUP} --registry-name {REGISTRY_NAME}

提示

  • 作業輸出會儲存在與工作區相關的預設儲存體帳戶中。 雖然在服務中斷的情況下,作業輸出可能會無法從工作室 UI 存取,但您可以透過儲存體帳戶直接存取資料。 如需使用 blob 中儲存資料的詳細資訊,請參閱使用 Azure CLI 建立、下載及列出 blob

復原選項

工作區刪除

如果意外刪除了工作區,您或許可以進行復原。 如需復原步驟,請參閱使用虛刪除復原意外刪除後的工作區資料

即使您的工作區無法復原,您仍然可以遵循下列步驟,從工作區相關聯的 Azure 儲存器資源擷取筆記本:

  • Azure 入口網站 中,流覽至連結至已刪除 Azure 機器學習 工作區的記憶體帳戶。
  • 在左側的 [資料儲存體] 區段中,選取 [檔案共用]
  • 您的筆記本位於名稱包含您的工作區 ID 的檔案共用上。

下一步

如想了解 Azure Machine Learning 的可重複基礎結構部署,請使用 Azure Resource Manager 範本