Affidabilità in Automazione di Azure

Automazione di Azure è un servizio che esegue attività di gestione per conto dell'utente. È possibile definire script, denominati runbook, da eseguire e Automazione di Azure fornisce l'infrastruttura per eseguire tali script. Questo articolo è incentrato sull'automazione dei processi, che è la funzionalità di base del servizio. I ruoli di lavoro ibridi per runbook, eseguiti nell'infrastruttura gestita dal cliente, non rientrano nell'ambito di questo articolo.

Quando si usa Azure, l'affidabilità è una responsabilità condivisa. Microsoft offre una gamma di funzionalità per supportare la resilienza e il ripristino. L'utente è responsabile della comprensione del funzionamento di tali funzionalità all'interno di tutti i servizi usati e della selezione delle funzionalità necessarie per soddisfare gli obiettivi aziendali e gli obiettivi di tempo di attività.

Questo articolo descrive come rendere Automazione di Azure resiliente a varie potenziali interruzioni e problemi, tra cui errori temporanei, interruzioni della zona di disponibilità, interruzioni dell'area e manutenzione del servizio. Vengono inoltre descritte le opzioni di backup e ripristino e le informazioni chiave sul contratto di servizio Automazione di Azure.

Raccomandazioni per la distribuzione di produzione per l'affidabilità

Per i carichi di lavoro di produzione che usano l'automazione dei processi, seguire queste raccomandazioni:

  • Gestire gli errori temporanei che si verificano quando i runbook interagiscono con Azure servizi e API aggiungendo la logica di ripetizione dei tentativi appropriata agli script.

  • Progettate i runbook in modo che siano tolleranti alle interruzioni. Usare i checkpoint per mantenere lo stato di avanzamento tra i riavvii del processo e, se è necessario archiviare lo stato, usare l'archiviazione esterna.

Panoramica dell'architettura di affidabilità

Questa sezione descrive alcuni degli aspetti importanti del funzionamento del servizio più rilevanti dal punto di vista dell'affidabilità. La sezione presenta l'architettura logica, che include alcune delle risorse e delle funzionalità distribuite e usate. Illustra anche l'architettura fisica, che fornisce informazioni dettagliate sul funzionamento del servizio sotto le quinte.

Architettura logica

Quando si distribuisce Automazione di Azure, si crea un account di automazione, ovvero un contenitore logico per le risorse che eseguono l'automazione.

  • Runbooks, che rappresentano il lavoro da eseguire. I runbook di testo sono script scritti in PowerShell o Python. I runbook grafici vengono creati con un editor grafico.
  • Risorse condivise dai runbook, inclusi moduli, connessioni, credenziali, certificati e variabili.
  • Risorse che avviano l'esecuzione del runbook, incluse le pianificazioni e i watcher.

Per altre informazioni su queste risorse, vedere Esecuzione di runbook in Automazione di Azure.

Questo articolo illustra l'affidabilità e la resilienza di queste funzionalità, che fanno parte dell'automazione dei processi in Automazione di Azure.

Architettura fisica

I runbook vengono eseguiti sull'infrastruttura di elaborazione. Esistono due modelli di distribuzione per l'automazione dei processi:

  • Processi cloud (gestiti da Microsoft): per impostazione predefinita, i runbook vengono eseguiti nell'infrastruttura cloud Microsoft fornita. Microsoft è responsabile della disponibilità elevata e della gestione di questa infrastruttura. Quando si invia un processo del runbook, Automazione di Azure alloca un processo cloud dal pool di risorse di calcolo disponibili, esegue il runbook e quindi restituisce la risorsa al pool.

    I processi cloud potrebbero talvolta essere interrotti durante l'esecuzione. Progettare i runbook presupponendo che un processo possa essere riavviato in un'infrastruttura diversa e che tutti i dati scritti nell'archiviazione temporanea nell'istanza precedente non siano più accessibili.

  • Ruoli di lavoro ibridi per runbook: Facoltativamente, è possibile configurare la propria infrastruttura di calcolo (macchine virtuali in Azure, altri cloud o locali) per eseguire runbook. Quando si usano i worker ibridi per runbook, è necessario configurarli in modo che soddisfino i requisiti di affidabilità. Gli Hybrid Runbook Worker non rientrano nell'ambito del presente articolo.

Resilienza a errori temporanei

Gli errori temporanei sono errori brevi e intermittenti nei componenti. Si verificano spesso in un ambiente distribuito come il cloud e fanno parte delle normali operazioni. Gli errori temporanei si correggono dopo un breve periodo di tempo. È importante che le applicazioni possano gestire gli errori temporanei, in genere ritentando le richieste interessate.

Tutte le applicazioni ospitate nel cloud devono seguire le indicazioni sulla gestione degli errori temporanei di Azure quando comunicano con qualsiasi API, database e altri componenti ospitati nel cloud. Per altre informazioni, vedere Raccomandazioni per la gestione degli errori temporanei.

Si è responsabili della stesura di runbook che gestiscono gli errori transitori nei servizi e nelle API con cui interagiscono. Nei runbook testuali, implementare la logica di ripetizione dei tentativi mediante cicli e gestione degli errori. Per indicazioni ed esempi, vedere Gestire gli errori temporanei in uno script dipendente dal tempo. Per i runbook grafici, configurare il comportamento dei tentativi per le attività nel flusso di lavoro. Per informazioni dettagliate sulla configurazione, vedere Attività di ripetizione dei tentativi nei runbook grafici.

La manutenzione dell'infrastruttura o altri eventi della piattaforma possono interrompere i processi di runbook. Progetta i runbook per gestire queste interruzioni:

  • Implementa punti di controllo. Nei runbook del flusso di lavoro di PowerShell, usate i checkpoint per salvare l'avanzamento nei punti chiave del flusso di lavoro. Se un processo viene interrotto e riavviato, può riprendere dall'ultimo checkpoint anziché ripartire da zero. Per ulteriori informazioni, vedi Usare i checkpoint in un flusso di lavoro.

  • Capire i limiti dei processi. I job cloud hanno limiti di equa condivisione sulla durata di esecuzione. Per informazioni dettagliate sui limiti di esecuzione dei processi e su come vengono applicati, vedere Esecuzione di runbook.

  • Archiviare lo stato permanente esternamente. I processi non mantengono lo stato tra le esecuzioni. Se un processo viene interrotto e riavviato in un'altra istanza, qualsiasi elemento scritto nell'archivio temporaneo dalla prima esecuzione potrebbe andare perso. Se è necessario rendere persistenti i dati tra le esecuzioni del processo, archiviarlo in una risorsa di archiviazione esterna, ad esempio Archiviazione BLOB di Azure o un database.

Resilienza ai guasti delle zone di disponibilità

Le zone di disponibilità sono gruppi di data center separati fisicamente all'interno di un'area di Azure. In caso di guasto in una zona, i servizi possono passare a una delle zone restanti.

Nelle aree supportate, gli account di automazione e i processi cloud sono con ridondanza della zona, ovvero il servizio distribuisce le risorse tra più zone di disponibilità. Microsoft abilita automaticamente la ridondanza della zona e non richiede alcuna configurazione.

Diagramma che mostra un account di Automazione, che è automaticamente resiliente alla zona, inclusi runbook resilienti alla zona e altre risorse.

Requirements

Supporto per l'area: quando si distribuisce un account di automazione in una delle aree seguenti, viene eseguito automaticamente con ridondanza della zona:

Americas Europe Medio Oriente Africa Asia Pacifico
Brazil South France Central Israel Central Sudafrica settentrionale Australia East
Canada Central Germania centro-occidentale Qatar Central Central India
Central US Italy North Cina settentrionale 3
East US North Europe East Asia
Stati Uniti orientali 2 Norway East Japan East
Stati Uniti centro-meridionali Poland Central Korea Central
Governo degli Stati Uniti Virginia Sweden Central Southeast Asia
West US 2 (Regione Ovest degli Stati Uniti 2) UK South
Stati Uniti occidentali 3 West Europe

Per l'elenco corrente delle aree supportate, vedere Supporto delle zone di disponibilità per Automazione di Azure.

Cost

Non sono previsti costi aggiuntivi per la ridondanza della zona. Per l'automazione dei processi, la fatturazione si basa sul periodo di tempo in cui vengono eseguiti i processi e i watcher. Per altre informazioni, vedere prezzi Automazione di Azure.

Configurare il supporto delle zone di disponibilità

Quando si crea un account di automazione in un'area supportata, questo è automaticamente a ridondanza di zona. Non è possibile disabilitare la ridondanza di zona. Per altre informazioni, vedere Supporto delle zone di disponibilità per Automazione di Azure.

Comportamento quando tutte le zone sono integre

Questa sezione descrive cosa accade quando l'account di automazione è a ridondanza di zona e tutte le zone di disponibilità nell'area geografica sono operative.

  • Operazione tra zone: Le operazioni di gestione degli account di Automazione e i processi cloud vengono distribuiti automaticamente tra le zone di disponibilità nell'area. Una richiesta o un processo può essere gestito da qualsiasi istanza in qualsiasi zona di disponibilità.

  • Replica dei dati tra zone: La configurazione dell'account di Automazione, gli script del runbook e altre risorse distribuite nell'account di automazione vengono replicate in modo sincrono in più zone di disponibilità.

Comportamento durante un errore di zona

Questa sezione descrive che cosa aspettarsi quando l'account di automazione è configurato con ridondanza della zona e si verifica un'interruzione in una delle zone di disponibilità dell'area geografica.

  • Rilevamento e risposta: La piattaforma Automazione di Azure è responsabile del rilevamento di un errore in una zona di disponibilità. Non è necessario eseguire alcuna operazione per avviare un failover di zona.
  • Notifica: Microsoft non invia automaticamente una notifica quando una zona è inattiva. È tuttavia possibile usare Integrità dei servizi di Azure per comprendere l'integrità complessiva del servizio, inclusi eventuali errori di zona, ed è possibile configurare gli avvisi di integrità dei servizi per notificare eventuali problemi.
  • Richieste attive: qualsiasi esecuzione di processi in corso nella zona non funzionante potrebbe essere interrotta. Automazione di Azure avvia automaticamente una nuova esecuzione di un processo usando l'infrastruttura in zone integre. Progettare i runbook in modo che siano resilienti agli errori temporanei e alle interruzioni in modo che possano essere riavviati in modo sicuro.

  • Perdita di dati prevista: Le esecuzioni dei processi non conservano lo stato, quindi non è previsto che un guasto della zona provochi una perdita di dati nei processi in corso. Se un processo deve archiviare i dati che possono essere usati per il ripristino da interruzioni, ad esempio i checkpoint, archiviare tali informazioni in un servizio di archiviazione cloud persistente, ad esempio Archiviazione di Azure o un database.

    La configurazione dell'account di automazione e i dati del runbook vengono replicati tra le zone e rimangono accessibili anche nel caso in cui una zona non sia disponibile.

  • Tempo di inattività previsto: durante un'interruzione della zona, l'account di Automazione potrebbe riscontrare una breve interruzione mentre il servizio rileva l'errore e ridistribuisce il carico di lavoro in zone integre.

  • Ridistribuzione: Il servizio ribilancia automaticamente la capacità tra le zone integre rimanenti. Le nuove esecuzioni di processi, i watcher e le pianificazioni continuano a essere eseguiti nell'infrastruttura situata in zone integre. Il ripristino non dipende dal ritorno in servizio della zona guasta.

Ripristino della zona

Quando una zona non disponibile torna operativa, Automazione di Azure la reintegra automaticamente nella rotazione tra zone. Non è necessaria alcuna azione da parte dell'utente. Il servizio monitora l'integrità della zona e ridistribuisce il carico di lavoro in tutte le zone man mano che le normali operazioni riprendono.

Verifica dei guasti di zona

Automazione di Azure gestisce il routing del traffico, il failover e il ripristino della zona per le risorse con ridondanza della zona. Non è necessario avviare nulla e non è necessario convalidare i processi di errore della zona di disponibilità. Testa i runbook per verificare che siano in grado di resistere alle interruzioni.

Resilienza agli errori a livello di area

Automazione di Azure è un servizio a singola area. Se l'area non è più disponibile, anche l'account di Automazione non è disponibile.

Soluzioni personalizzate in più aree per la resilienza

È possibile distribuire account di Automazione separati in più aree e passare da un account all'altro quando necessario. L'utente è responsabile della distribuzione degli account in ogni area, della configurazione appropriata, della distribuzione delle richieste tra gli account e della gestione del failover se un'area non è disponibile. Per informazioni dettagliate sugli approcci che è possibile considerare, vedere Ripristino di emergenza per Automazione di Azure.

Backup e ripristino

Per la maggior parte delle soluzioni, non è consigliabile basarsi esclusivamente sui backup. Usare invece le altre funzionalità descritte in questa guida per supportare i requisiti di resilienza. Tuttavia, i backup proteggono da alcuni rischi che altri approcci non comportano. Per altre informazioni, vedere Che cosa sono ridondanza, replica e backup?.

Automazione di Azure non offre una funzionalità di backup integrata per la configurazione dell'account Automation o per i contenuti del runbook. Conservare copie personalizzate all'esterno del servizio in modo da poterle ridistribuire, se necessario.

  • Usare l'infrastruttura come codice (IaC) per la configurazione dell'account di automazione. Definire gli account di automazione e le risorse correlate nei file Bicep, nei modelli arm o in Terraform. Archivia i modelli nel controllo del codice sorgente e usa la pipeline di distribuzione per ricreare l'ambiente nella stessa regione o in un'altra regione. Includere certificati, variabili, pianificazioni e riferimenti alle credenziali negli artefatti e nei processi di distribuzione. Archiviare segreti in servizi come Azure Key Vault anziché incorporare i valori direttamente nel codice del runbook.

  • Archiviare gli script di runbook nel controllo del codice di origine. Conservare il codice sorgente dei runbook PowerShell e Python in un sistema di controllo della versione come Git. Utilizza il controllo delle versioni, la gestione dei rami e la revisione delle pull request per proteggere la qualità degli script e consentire il ripristino a versioni note come valide.

  • Eseguire il backup dello stato dall'archivio dati appropriato. I processi non mantengono lo stato. Se è necessario mantenere i log dettagliati dei processi o qualsiasi altro dato generato dai runbook, archiviarlo in un altro servizio di archiviazione o database Azure e eseguirne il backup da questa posizione.

Resilienza all'eliminazione accidentale

Se si elimina accidentalmente un account di Automazione, potrebbe essere possibile ripristinarlo entro un intervallo di tempo limitato. Per altre informazioni, vedere Ripristinare un account di Automazione eliminato.

Resilienza alla manutenzione del servizio

Microsoft applica regolarmente gli aggiornamenti del servizio ed esegue altre operazioni di manutenzione. La piattaforma Azure gestisce automaticamente queste attività, garantendo che la manutenzione sia fluida e trasparente per l'utente. Non è previsto alcun tempo di inattività durante gli eventi di manutenzione, a meno che non ti sia stato comunicato tramite la manutenzione pianificata di integrità dei servizi di Azure.

Contratto di servizio

Il contratto di servizio per i servizi di Azure descrive la disponibilità prevista di ogni servizio e le condizioni che la soluzione deve soddisfare per raggiungere tale aspettativa di disponibilità. Per ulteriori informazioni, vedere Accordi sul livello di servizio (SLA) per i servizi online.