Failover per la continuità aziendale e il ripristino di emergenza

Per ottimizzare il tempo di attività, pianificare in anticipo la continuità aziendale e prepararsi al ripristino di emergenza con Azure Machine Learning.

Microsoft si impegna per fare in modo che i servizi di Azure siano sempre disponibili. Tuttavia, potrebbero verificarsi interruzioni del servizio non pianificate. È consigliabile disporre di un piano di ripristino di emergenza per la gestione delle interruzioni del servizio a livello di area. In questo articolo vengono illustrate le operazioni seguenti:

  • Pianificare una distribuzione a più aree di Azure Machine Learning e le risorse associate.
  • Possibilità di recuperare log, notebook, immagini Docker e altri metadati.
  • Progettare per la disponibilità elevata della soluzione.
  • Avviare un failover in un'altra area.

Importante

Azure Machine Learning non offre alcun failover automatico o ripristino di emergenza. Il backup e il ripristino dei metadati dell'area di lavoro, ad esempio la cronologia di esecuzione, non sono disponibili.

Nel caso in cui l'area di lavoro o i componenti corrispondenti siano stati eliminati accidentalmente, questo articolo offre anche opzioni di ripristino attualmente supportate.

Informazioni sui servizi di Azure per Azure Machine Learning

Azure Machine Learning dipende da più servizi di Azure. È stato effettuato il provisioning di alcuni di questi servizi nella sottoscrizione. L'utente è responsabile della configurazione a disponibilità elevata di questi servizi. Altri servizi vengono creati in una sottoscrizione Microsoft e gestiti da Microsoft.

I servizi di Azure includono:

  • Infrastruttura di Azure Machine Learning: un ambiente gestito da Microsoft per l'area di lavoro di Azure Machine Learning.

  • Risorse associate: risorse sottoposte a provisioning nella sottoscrizione durante la creazione dell'area di lavoro di Azure Machine Learning. Queste risorse includono Archiviazione di Azure, Azure Key Vault, Registro Azure Container e Application Insights.

    • L'archiviazione predefinita include dati come modello, dati di log di training e riferimenti agli asset di dati.
    • Key Vault dispone di credenziali per Archiviazione di Azure, Registro Container e archivi dati.
    • Registro Container ha un'immagine Docker per ambienti di training e inferenza.
    • Application Insights è per il monitoraggio di Azure Machine Learning.
  • Risorse di calcolo: risorse create dopo la distribuzione dell'area di lavoro. Ad esempio, è possibile creare un'istanza di calcolo o un cluster di calcolo per eseguire il training di un modello di Machine Learning.

    • Istanza di calcolo e cluster di calcolo: ambienti di sviluppo di modelli gestiti da Microsoft.
    • Altre risorse: risorse di calcolo Microsoft che è possibile collegare ad Azure Machine Learning, ad esempio il servizio Azure Kubernetes, Azure Databricks, Istanze di Azure Container e Azure HDInsight. Si è responsabili della configurazione delle impostazioni di disponibilità elevata per queste risorse.
  • Altri archivi dati: Azure Machine Learning può montare altri archivi dati, ad esempio Archiviazione di Azure e Azure Data Lake Archiviazione per i dati di training. Il provisioning di questi archivi dati viene eseguito all'interno della sottoscrizione. L'utente è responsabile della configurazione delle impostazioni di disponibilità elevata. Per visualizzare altre opzioni dell'archivio dati, vedere Creare archivi dati.

La tabella seguente illustra i servizi di Azure gestiti da Microsoft e gestiti dall'utente. Indica anche i servizi a disponibilità elevata per impostazione predefinita.

Servizio Gestito da Disponibilità elevata per impostazione predefinita
Infrastruttura di Azure Machine Learning Microsoft
Risorse associate
Archiviazione di Azure Te
Key Vault Te
Registro Container Te
Application Insights Te N/D
Risorse di calcolo
Istanza di calcolo Microsoft
Cluster di elaborazione Microsoft
Altre risorse di calcolo, ad esempio il servizio Azure Kubernetes,
Azure Databricks, Istanze di Container, HDInsight
Te
Altri archivi dati, ad esempio Archiviazione di Azure, database SQL,
Database di Azure per PostgreSQL, Database di Azure per MySQL,
Azure Databricks File System
Te

Nella parte restante di questo articolo vengono descritte le azioni da eseguire per rendere ognuno di questi servizi a disponibilità elevata.

Eseguire la pianificazione per la distribuzione in più aree

Una distribuzione a più aree si basa sulla creazione di Azure Machine Learning e di altre risorse (infrastruttura) in due aree di Azure. Se si verifica un'interruzione a livello di area, è possibile passare all'altra area. Quando si pianifica la posizione in cui distribuire le risorse, prendere in considerazione:

  • Disponibilità a livello di area: se possibile, usare un'area nella stessa area geografica, non necessariamente quella più vicina. Per verificare la disponibilità a livello di area per Azure Machine Learning, vedere Prodotti Azure per area.

  • Aree abbinate di Azure: le aree abbinate coordinano gli aggiornamenti della piattaforma e assegnano priorità alle attività di ripristino dove necessario. Tuttavia, non tutte le aree supportano aree abbinate. Per altre informazioni, vedere Aree abbinate di Azure.

  • Disponibilità del servizio: decidere se le risorse usate dalla soluzione devono essere hot/hot (accesso frequente/accesso frequente), hot/warm (accesso frequente/accesso a frequenza media) o hot/cold (accesso frequente/accesso saltuario).

    • Accesso frequente/accesso frequente: entrambe le aree sono attive contemporaneamente, con un'area pronta per iniziare immediatamente l'uso.
    • Accesso frequente/accesso a frequenza media: l'area primaria è attiva, l'area secondaria ha delle risorse critiche (ad esempio, modelli distribuiti) pronte per l'avvio. Le risorse non critiche devono essere distribuite manualmente nell'area secondaria.
    • Accesso frequente/accesso sporadico: l'area primaria è attiva, l'area secondaria include Azure Machine Learning e altre risorse distribuite, insieme ai dati necessari. È necessario distribuire manualmente risorse come modelli, distribuzioni di modelli o pipeline.

Suggerimento

A seconda dei requisiti aziendali, è possibile decidere di gestire diverse risorse di Azure Machine Learning in modo diverso. Ad esempio, è possibile usare l’accesso frequente/frequente per i modelli distribuiti (inferenza) e ad accesso frequente/sporadico per gli esperimenti (training).

Azure Machine Learning si basa su altri servizi. Alcuni servizi possono essere configurati per la replica in altre aree. Altri utenti devono essere creati manualmente in più aree. La tabella seguente fornisce un elenco di servizi, responsabili della replica e una panoramica della configurazione:

Servizio di Azure Con replica geografica da Impostazione
Area di lavoro di Machine Learning Te Creare un'area di lavoro nelle aree selezionate.
Ambiente di calcolo di Machine Learning Te Creare le risorse di calcolo nelle aree selezionate. Per le risorse di calcolo che possono essere ridimensionate in modo dinamico, assicurarsi che entrambe le aree forniscano una quota di calcolo sufficiente per le proprie esigenze.
Registro di sistema di Machine Learning Te Creare il Registro di sistema in più aree.
Key Vault Microsoft Usare la stessa istanza di Key Vault con l'area di lavoro e le risorse di Azure Machine Learning in entrambe le aree. Key Vault esegue automaticamente il failover in un'area secondaria. Per altre informazioni, vedere Disponibilità e ridondanza in Azure Key Vault.
Registro Container Microsoft Configurare l'istanza di Registro Container per replicare geograficamente i registri nell'area abbinata per Azure Machine Learning. Usare la stessa istanza per entrambe le istanze dell'area di lavoro. Per altre informazioni, vedere Replica geografica in Registro Azure Container.
Account di archiviazione Te Azure Machine Learning non supporta il failover predefinito dell'account di archiviazione usando l'archiviazione con ridondanza geografica,archiviazione con ridondanza geografica della zona (GZRS), l'archiviazione con ridondanza geografica e accesso in lettura (RA-GRS) o l'archiviazione con ridondanza geografica della zona (RA-GZRS). Creare un account di archiviazione separato per l'archiviazione predefinita di ogni area di lavoro.
Creare account di archiviazione o servizi separati per altre risorse di archiviazione dati. Per altre informazioni, vedere Ridondanza di Archiviazione di Azure.
Application Insights Te Creare Application Insights per l'area di lavoro in entrambe le aree. Per modificare il periodo di conservazione dei dati e i dettagli, vedere Raccolta, conservazione e archiviazione dei dati in Application Insights.

Per abilitare il ripristino rapido e il riavvio nell'area secondaria, è consigliabile seguire le procedure di sviluppo seguenti:

  • Usare i modelli di Azure Resource Manager. I modelli sono "infrastruttura come codice" e consentono di distribuire rapidamente i servizi in entrambe le aree.
  • Per evitare deviazioni tra le due aree, aggiornare le pipeline di integrazione continua e distribuzione per la distribuzione in entrambe le aree.
  • Quando si automatizzano le distribuzioni, includere la configurazione delle risorse di calcolo associate all'area di lavoro, ad esempio il servizio Azure Kubernetes.
  • Creare assegnazioni di ruolo per gli utenti in entrambe le aree.
  • Creare risorse di rete, ad esempio reti virtuali di Azure ed endpoint privati per entrambe le aree. Assicurarsi che gli utenti abbiano accesso a entrambi gli ambienti di rete. Ad esempio, configurazioni VPN e DNS per entrambe le reti virtuali.

Servizi di calcolo e dati

A seconda delle esigenze, potrebbero essere disponibili più servizi di calcolo o dati usati da Azure Machine Learning. Ad esempio, è possibile usare servizio Azure Kubernetes o database SQL di Azure. Usare le informazioni seguenti per informazioni su come configurare questi servizi per la disponibilità elevata.

Risorse di calcolo

Servizi dati

Suggerimento

Se si specifica una chiave gestita dal cliente per distribuire un'area di lavoro di Azure Machine Learning, viene effettuato anche il provisioning di Azure Cosmos DB all'interno della sottoscrizione. In tal caso, si è responsabili della configurazione delle impostazioni di disponibilità elevata. Vedere Disponibilità elevata con Azure Cosmos DB.

Progettare la disponibilità elevata

Zone di disponibilità

Alcuni servizi di Azure supportano le zone di disponibilità. Per le aree che supportano le zone di disponibilità, in caso di arresto di qualsiasi carico di lavoro, i dati e i dati devono essere salvati. Tuttavia, i dati non sono disponibili per l'aggiornamento fino a quando la zona non torna online.

Per altre informazioni, consultare Servizio di zona di disponibilità e supporto regionale.

Distribuire componenti critici in più aree

Determinare il livello di continuità aziendale che si sta cercando. Il livello può variare tra i componenti della soluzione. Ad esempio, potrebbe essere necessario avere una configurazione ad accesso frequente/frequente per pipeline di produzione o distribuzioni di modelli e accesso frequente/sporadico per la sperimentazione.

Gestire i dati di training nell'archiviazione isolata

Mantenendo l'archiviazione dei dati isolata dall'archiviazione predefinita usata dall'area di lavoro per i log, è possibile:

  • Collegare le stesse istanze di archiviazione degli archivi dati alle aree di lavoro primarie e secondarie.
  • Usare la replica geografica per gli account di archiviazione dati e ottimizzare il tempo di attività.

Gestire gli asset di Machine Learning come codice

Nota

Il backup e il ripristino dei metadati dell'area di lavoro, ad esempio cronologia di esecuzione, modelli e ambienti non sono disponibili. Se si specificano asset e configurazioni come codice usando specifiche YAML, sarà possibile ricreare gli asset tra le aree di lavoro in caso di emergenza.

I processi in Azure Machine Learning sono definiti da una specifica del processo. Questa specifica include dipendenze da elementi di input gestiti a livello di istanza dell'area di lavoro, inclusi ambienti e risorse di calcolo. Per l'invio e le distribuzioni di processi in più aree, è consigliabile seguire queste procedure:

  • Gestire la codebase in locale, supportata da un repository Git.

    • Esportare notebook importanti da Azure Machine Learning Studio.
    • Esportare le pipeline create in Studio come codice.
  • Gestire le configurazioni come codice.

    • Evitare riferimenti hardcoded all'area di lavoro. Configurare invece un riferimento all'istanza dell'area di lavoro usando un file di configurazione e usare MLClient.from_config() per inizializzare l'area di lavoro.
    • Usare un Dockerfile se si usano immagini Docker personalizzate.

Avviare un failover

Continuare a lavorare nell'area di lavoro di failover

Quando l'area di lavoro primaria non è più disponibile, è possibile passare all'area di lavoro secondaria per continuare la sperimentazione e lo sviluppo. Azure Machine Learning non invia automaticamente processi all'area di lavoro secondaria se si verifica un'interruzione. Aggiornare la configurazione del codice in modo che punti alla nuova risorsa dell'area di lavoro. È consigliabile evitare riferimenti all'area di lavoro hardcoding. Usare invece un file di configurazione dell'area di lavoro per ridurre al minimo i passaggi utente manuali durante la modifica delle aree di lavoro. Assicurarsi di aggiornare anche qualsiasi automazione, ad esempio l'integrazione continua e le pipeline di distribuzione nella nuova area di lavoro.

Azure Machine Learning non è in grado di sincronizzare o ripristinare artefatti o metadati tra le istanze dell'area di lavoro. A seconda della strategia di distribuzione dell'applicazione, potrebbe essere necessario spostare elementi o ricreare input di sperimentazione, ad esempio asset di dati, nell'area di lavoro di failover per continuare l'invio del processo. Nel caso in cui l'area di lavoro primaria e le risorse dell'area di lavoro secondaria siano state configurate per condividere le risorse associate con la replica geografica abilitata, alcuni oggetti potrebbero essere direttamente disponibili per l'area di lavoro di failover. Ad esempio, se entrambe le aree di lavoro condividono le stesse immagini Docker, gli archivi dati configurati e le risorse di Azure Key Vault. Il diagramma seguente illustra una configurazione in cui due aree di lavoro condividono le stesse immagini (1), gli archivi dati (2) e Key Vault (3).

Diagramma del failover tra aree abbinate.

Nota

Tutti i processi in esecuzione quando si verifica un'interruzione del servizio non passano automaticamente all'area di lavoro secondaria. È anche improbabile che i processi vengano ripresi e completati correttamente nell'area di lavoro primaria dopo la risoluzione dell'interruzione. Al contrario, questi processi devono essere inviati di nuovo, nell'area di lavoro secondaria o nel database primario (una volta risolta l'interruzione).

Spostamento di elementi tra aree di lavoro

A seconda dell'approccio di ripristino, potrebbe essere necessario copiare elementi tra le aree di lavoro per continuare il lavoro. Attualmente, la portabilità degli artefatti tra aree di lavoro è limitata. È consigliabile gestire gli artefatti come codice, se possibile, in modo che possano essere ricreati nell'istanza di failover.

È possibile esportare e importare gli artefatti seguenti tra aree di lavoro usando l'estensione dell'interfaccia della riga di comando di Azure per Machine Learning:

Artefatto Esporta Importa
Modelli az ml model download --name {NAME} --version {VERSION} az ml model create
Ambienti 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
Processi di 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}
Asset di dati 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}

Suggerimento

  • Gli output dei processi vengono archiviati nell'account di archiviazione predefinito associato a un'area di lavoro. Anche se gli output del processo potrebbero diventare inaccessibili dall'interfaccia utente di Studio in caso di interruzione del servizio, è possibile accedere direttamente ai dati tramite l'account di archiviazione. Per altre informazioni sull'uso dei dati archiviati nei BLOB, vedere Creare, scaricare ed elencare BLOB con l'interfaccia della riga di comando di Azure.

Opzioni di ripristino

Eliminazione dell'area di lavoro

Se l'area di lavoro è stata eliminata accidentalmente, potrebbe essere possibile recuperarla. Per i passaggi di recupero, vedere Recuperare i dati dell'area di lavoro dopo l'eliminazione accidentale con eliminazione temporanea.

Anche se l'area di lavoro non può essere ripristinata, è comunque possibile recuperare i notebook dalla risorsa di archiviazione di Azure associata all'area di lavoro seguendo questa procedura:

  • Nella portale di Azure passare all'account di archiviazione collegato all'area di lavoro di Azure Machine Learning eliminata.
  • Nella sezione Archiviazione dati a sinistra seleziona Condivisione file.
  • I notebook si trovano tra i file condivisi con un nome che contiene l'ID dell'area di lavoro.

Passaggi successivi

Per informazioni sulle distribuzioni dell'infrastruttura ripetibili con Azure Machine Learning, usare un modello di Azure Resource Manager.