商務持續性和災害復原的容錯移轉
為了充分發揮您的執行時間,請事先規劃以維護商務持續性,並使用 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 Machine Learning 可裝載其他資料存放區,例如用於定型資料的 Azure 儲存體和 Azure Data Lake Storage。 這些資料存放區會佈建在您的訂閱內。 您必須負責設定其高可用性設定。 若要查看其他資料存放區選項,請參閱 建立資料存放區。
下表顯示 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 | 您 | 在選取的區域中建立計算資源。 針對可動態調整的計算資源,請確定這兩個區域都能為您的需求提供足夠的計算配額。 |
Machine Learning 登錄 | 您 | 在多個區域中建立登錄。 |
金鑰保存庫 | Microsoft | 使用相同的 Key Vault 執行個體,搭配 Azure Machine Learning 工作區和這兩個區域中的資源。 Key Vault 會自動容錯移轉至次要區域。 如需詳細資訊,請參閱 Azure Key Vault 可用性與備援。 |
Container Registry | Microsoft | 設定 Container Registry 執行個體,以將登錄異地複寫至配對區域進行 Azure Machine Learning。 這兩個工作區執行個體皆使用相同的執行個體。 如需詳細資訊,請參閱 Azure Container Registry 中的異地複寫。 |
儲存體帳戶 | 您 | Azure Machine Learning 不支援使用異地複寫儲存體 (GRS)、異地區域備援儲存體 (GZRS)、讀取權限異地備援儲存體 (RA-GRS),或讀取權限異地區域備援儲存體 (RA-GZRS) 的預設儲存體帳戶容錯移轉。 針對每個工作區的預設儲存體,建立個別的儲存體帳戶。 為其他資料儲存體建立個別的儲存體帳戶或服務。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。 |
Application Insights | 您 | 在兩個區域中建立工作區的 Application Insights。 如要調整資料保留期間和詳細資訊,請參閱 Application Insights 中的資料收集、保留和儲存。 |
如要在次要區域中啟用快速復原並重新啟動,建議使用下列開發做法:
- 使用 Azure Resource Manager 範本。 範本是「基礎結構即程式碼」,可讓您快速地在這兩個區域中部署服務。
- 為了避免兩個區域之間的漂移,請更新您的持續整合和部署管線,以部署至這兩個區域。
- 將部署自動化時,請包含工作區附加計算資源 (例如 Azure Kubernetes Service) 的設定。
- 為這兩個區域中的使用者建立角色指派。
- 建立兩個區域的網路資源,例如 Azure 虛擬網路和私人端點。 請確定使用者可以存取這兩個網路環境。 例如,兩個虛擬網路的 VPN 和 DNS 設定。
計算和資料服務
視您的需求而定,可能會有 Azure Machine Learning 所使用的更多計算或資料服務。 例如,您可以使用 Azure Kubernetes Service 或 Azure SQL Database。 使用下列資訊,瞭解如何設定這些服務以取得高可用性。
計算資源
- Azure Kubernetes Service:請參閱 Azure Kubernetes Service (AKS) 中的商務持續性和災害復原最佳做法 與建立使用可用性區域的 Azure Kubernetes Service (AKS) 叢集〉。 若使用 Azure Machine Learning 工作室、SDK 或 CLI 來建立 AKS 叢集,則不支援跨區域高可用性。
- Azure Databricks:請參閱 Azure Databricks 叢集的區域災害復原。
- 容器執行個體:協調器負責進行容錯移轉。 請參閱 Azure 容器執行個體和容器協調器。
- HDInsight:請參閱 Azure HDInsight 支援的高可用性服務。
資料服務
- Azure Blob 容器 / Azure 檔案儲存體 / Data Lake Storage Gen2:請參閱 Azure 儲存體備援。
- Data Lake Storage Gen1:請參閱 Data Lake Storage Gen1 的高可用性和災害復原指導。
提示
若您提供自己的客戶自控金鑰來部署 Azure Machine Learning 工作區,則也會在您的訂閱中佈建 Azure Cosmos DB。 此時,您需要負責設定其高可用性設定。 請參閱 Azure Cosmos DB 的高可用性。
高可用性設計
可用性區域
特定 Azure 服務可支援可用性區域。 對於支援可用性區域的區域,如果某個區域停止運作,則任何工作負載都會暫停,且資料會儲存。 不過,在區域重新上線之前,無法重新整理資料。
如需詳細資訊,請參閱可用性區域服務和地區支援。
將重要元件部署至多個區域
判斷您的目標商務持續性層級。 您解決方案的元件之間可能會有不同的層級。 例如,您可能會想要有適用於生產管線或模型部署的經常性存取層/經常性存取層設定,以及適用於實驗的經常性存取層/冷存取層設定。
管理隔離儲存區上的定型資料
藉由讓您的資料儲存體與工作區用於記錄的預設儲存體隔離,您可以:
- 將與資料存放區相同的儲存體執行個體附加至主要和次要工作區。
- 利用資料儲存體帳戶的異地複寫,讓您的執行時間發揮最大效益。
以程式碼的形式管理機器學習資產
注意
無法備份和還原執行歷程記錄、模型、環境等工作區中繼資料。 使用 YAML 規格將資產和設定指定為程式碼,可協助您在發生災害時重新建立所有工作區的資產。
Azure Machine Learning 中的作業是由作業規格所定義。 此規格包含在工作區執行個體層級上管理的輸入成品相依性,包括環境和計算。 針對多重區域作業提交和部署,建議您採用下列做法:
在本機管理您的程式碼基底 (由 Git 存放庫提供支援)。
- 從 Azure Machine Learning 工作室匯出重要的筆記本。
- 將以工作室撰寫的管線匯出為程式碼。
以程式碼形式管理設定。
- 避免對工作區執行硬式編碼參考。 請改為使用設定檔來設定工作區執行個體的參考,並使用 MLClient.from_config() 來初始化工作區。
- 若您使用自訂 Docker 映像,請使用 Dockerfile。
起始容錯移轉
在容錯移轉工作區中繼續工作
當主要工作區變成無法使用時,您可以切換次要工作區以繼續進行實驗和開發。 若發生中斷,Azure Machine Learning 不會自動將作業提交至次要工作區。 更新您的程式碼設定,以指向新的工作區資源。 建議您避免硬式編碼工作區參考。 在變更工作區時,請改用工作區設定檔將手動的使用者步驟降至最低。 同時請務必將任何自動化 (例如持續整合和部署管線) 更新至新的工作區。
Azure Machine Learning 無法在工作區執行個體之間同步或復原成品或中繼資料。 視您的應用程式部署策略而定,您可能必須移動成品或重新建立實驗輸入 (例如容錯移轉工作區中的資料資產),才能繼續作業提交。 若您已設定主要工作區和次要工作區資源來共用已啟用異地複寫的相關聯資源,則可能會有一些物件可直接用於容錯移轉工作區。 例如,若這兩個工作區共用相同的 docker 影像、已設定資料存放區,以及 Azure Key Vault 資源。 下圖顯示兩個工作區共用相同影像 (1)、資料存放區 (2) 和 Key Vault (3) 的設定。
注意
發生服務中斷時,任何執行中的作業都不會自動轉換至次要工作區。 在中斷問題解決之後,主要工作區中的作業也不太可能成功地繼續並順利完成。 取而代之的是,在中斷問題解決之後,必須在次要工作區或主要工作區重新提交這些作業。
在工作區間移動成品
根據您的復原方法,您可能需要在工作區之間複製成品,才能繼續工作。 目前,工作區之間的成品可攜性有限。 建議您盡可能以程式碼的形式來管理成品,以便在容錯移轉執行個體中重新建立這些成品。
您可以使用機器學習的 Azure CLI 延伸模組,在工作區之間匯出和匯入下列成品:
提示
- 作業輸出會儲存在與工作區相關的預設儲存體帳戶中。 雖然在服務中斷的情況下,作業輸出可能會無法從工作室 UI 存取,但您可以透過儲存體帳戶直接存取資料。 如需使用 blob 中儲存資料的詳細資訊,請參閱使用 Azure CLI 建立、下載及列出 blob。
復原選項
工作區刪除
如果意外刪除了工作區,您或許可以進行復原。 如需復原步驟,請參閱使用虛刪除復原意外刪除後的工作區資料。
即使您的工作區無法復原,您仍然可以遵循下列步驟,從工作區相關聯的 Azure 儲存體資源擷取 notebooks:
- 在 Azure 入口網站中,瀏覽至連結至已刪除 Azure Machine Learning 工作區的儲存體帳戶。
- 在左側的 [資料儲存體] 區段中,選取 [檔案共用]。
- 您的筆記本位於名稱包含您的工作區 ID 的檔案共用上。
下一步
若要了解 Azure Machine Learning 的可重複基礎結構部署,請使用 Bicep 範本或 Terraform 範本。