Condividi tramite


Affidabilità in Azure Databricks

Azure Databricks è una piattaforma di intelligenza artificiale e dati basata su Apache Spark collaborativa ottimizzata per Microsoft Azure. Offre un ambiente unificato per i carichi di lavoro di Big Data e intelligenza artificiale e combina il meglio di Databricks e Azure per semplificare la progettazione dei dati, l'analisi scientifica dei dati e l'apprendimento automatico.

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 in che modo Azure Databricks mantiene la resilienza in caso di potenziali interruzioni e problemi e come configurare la resilienza per soddisfare i requisiti. Le linee guida riguardano gli errori temporanei, le interruzioni della zona di disponibilità, le interruzioni dell'area e la manutenzione del servizio. Questo articolo descrive anche come usare i backup per il ripristino da altri problemi ed evidenzia le informazioni chiave sul contratto di servizio di Azure Databricks.

Raccomandazioni per la distribuzione di produzione

Per informazioni su come distribuire Azure Databricks per supportare i requisiti di affidabilità della soluzione e su come l'affidabilità influisce su altri aspetti dell'architettura, vedere Procedure consigliate per l'architettura per Azure Databricks.

Panoramica dell'architettura di affidabilità

È necessario comprendere l'affidabilità di ogni componente primario in Azure Databricks:

  • Il piano di controllo è una raccolta di servizi senza stato che gestisce i metadati dell'area di lavoro, l'accesso utente, la pianificazione dei processi e la gestione del cluster. Questi servizi sono supportati da database replicati tra zone di disponibilità in aree supportate.

  • La radice di Databricks File System (DBFS) è un account di archiviazione di cui Azure Databricks esegue automaticamente il provisioning quando si crea un'area di lavoro di Azure Databricks nell'account cloud. Se possibile, è consigliabile non archiviare i dati nella radice DBFS e disabilitare questo account di archiviazione.

  • L'archiviazione di Unity Catalog include uno o più account di archiviazione che archiviano i dati di Unity Catalog nell'account cloud. Per altre informazioni, vedere Panoramica di Unity Catalog.

  • Il piano di calcolo esegue carichi di lavoro di elaborazione dati usando cluster di macchine virtuali. Il piano di calcolo gestisce gli errori temporanei e sostituisce automaticamente i nodi non riusciti senza l'intervento dell'utente. È possibile scegliere tra più tipi di risorse di calcolo. Per altre informazioni, vedere Calcolo.

    La disponibilità dell'area di lavoro dipende dalla disponibilità del piano di controllo, ma i cluster di calcolo possono continuare a elaborare i processi anche durante le interruzioni del piano di controllo.

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.

È possibile controllare i retry per le attività all'interno dei Lakeflow Jobs per facilitare il recupero da errori transitori.

Per le applicazioni eseguite in Azure Databricks, implementare la logica di ripetizione dei tentativi con backoff esponenziale quando ci si connette a servizi esterni o servizi di Azure, ad esempio Archiviazione, Database SQL di Azure o Hub eventi di Azure. Databricks Runtime include resilienza predefinita per molti servizi di Azure, ma il codice dell'applicazione deve gestire errori temporanei specifici del servizio.

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.

Azure Databricks supporta la ridondanza della zona per ogni componente:

  • Piano di controllo: Nelle aree che supportano le zone di disponibilità, il piano di controllo viene eseguito in più zone di disponibilità. Il piano di controllo gestisce automaticamente gli errori della zona, con un impatto minimo e nessun intervento dell'utente richiesto.

    I dati dell'area di lavoro del piano di controllo vengono archiviati nei database. Nelle aree che supportano le zone di disponibilità, i database vengono replicati in più zone dell'area. Anche gli account di archiviazione che servono le immagini di Databricks Runtime sono ridondanti all'interno dell'area. Tutte le aree hanno account di archiviazione secondari usati quando l'account di archiviazione primario è inattivo.

  • Radice DBFS: Nelle regioni che supportano le zone di disponibilità, è possibile configurare l'account di archiviazione per la radice DBFS in modo da utilizzare l'archiviazione a ridondanza di zona. Nelle aree abbinate che supportano le zone di disponibilità, è possibile usare facoltativamente l'archiviazione con ridondanza geografica della zona (GRZS).

  • Piano di calcolo: Databricks supporta la distribuzione automatica della zona per le risorse di calcolo, il che significa che le risorse vengono distribuite tra più zone di disponibilità. Questa distribuzione aiuta i carichi di lavoro di produzione a ottenere resilienza alle interruzioni di zona.

    Quando si usa il calcolo serverless, non si selezionano in modo esplicito le zone per il calcolo. Databricks gestisce la selezione della zona delle macchine virtuali e la sostituzione delle macchine virtuali che potrebbero essere perse a causa di interruzioni della zona.

Requisiti

Per usare il supporto della zona di disponibilità in Azure Databricks, sono necessari i requisiti seguenti:

  • Supporto per l'area: Il supporto della zona di disponibilità di Azure Databricks è disponibile in tutte le aree di Azure che supportano Azure Databricks e forniscono zone di disponibilità. Per un elenco di aree che supportano Azure Databricks, vedere Prodotti disponibili in base all'area. Per un elenco completo delle aree che supportano le zone di disponibilità, vedere Aree di Azure che supportano le zone di disponibilità.

  • Replica di archiviazione: configurare gli account di archiviazione dell'area di lavoro per l'uso dell'archiviazione con ridondanza della zona (ZRS) o dell'archiviazione con ridondanza geografica della zona (GZRS) (laddove disponibile).

  • Capacità di calcolo: Assicurarsi che la capacità di calcolo sufficiente esista in più zone nell'area di destinazione. Azure Databricks distribuisce automaticamente i nodi del cluster tra le zone, ma è necessario verificare che i tipi di istanza selezionati siano disponibili in tutte le zone di destinazione.

Considerazioni

Azure Databricks distribuisce automaticamente i nodi del cluster tra le zone di disponibilità. La distribuzione dipende dalla capacità disponibile in ogni zona. Durante periodi di domanda elevata, i nodi di un cluster potrebbero concentrarsi in meno zone. Quando si usa il calcolo serverless, Azure Databricks gestisce la selezione della zona delle macchine virtuali e la sostituzione delle macchine virtuali che potrebbero essere perse a causa di interruzioni della zona.

Costo

La distribuzione della zona non influisce sui costi di calcolo perché si paga per lo stesso numero di macchine virtuali indipendentemente dal posizionamento della zona di disponibilità. Per altre informazioni, vedere Prezzi di calcolo di Azure Databricks.

La ridondanza di default per l'account di archiviazione gestito (o radice DBFS) è l'archiviazione con ridondanza geografica (GRS). Il passaggio a ZRS o GZRS potrebbe influire sui costi di archiviazione. Per altre informazioni, vedere Prezzi di Archiviazione BLOB di Azure.

Configurare il supporto delle zone di disponibilità

  • Piano di controllo: Il piano di controllo supporta automaticamente la ridondanza della zona nelle aree con zone di disponibilità. Non è necessario configurare nulla.

  • Radice DBFS: È possibile configurare la ridondanza della zona per l'archiviazione radice DBFS quando si crea una nuova area di lavoro o si modifica un'area di lavoro esistente:

    • Creare una nuova area di lavoro con l'archiviazione radice DBFS con ridondanza della zona: quando si crea una nuova area di lavoro di Azure Databricks, è possibile configurare facoltativamente l'account di archiviazione associato per utilizzare ZRS (archiviazione con ridondanza della zona) o GZRS (archiviazione con ridondanza geografica della zona) anziché l'archiviazione con ridondanza geografica (GRS) predefinita. Per maggiori informazioni, consultare Modificare le opzioni di ridondanza di archiviazione nell'area di lavoro.

    • Abilitare la ridondanza zonale nell'archiviazione principale DBFS: Per le aree di lavoro esistenti, è possibile modificare la configurazione di ridondanza dell'account di archiviazione dell'area di lavoro impostandola su ZRS (Archiviazione con Ridondanza Zonale) o GZRS (Archiviazione con Ridondanza Geografica Zonale). Per altre informazioni su come abilitare la ridondanza della zona, vedere Modificare le impostazioni di replica per un account di archiviazione.

  • Piano di calcolo: I nodi del cluster vengono distribuiti automaticamente tra le zone di disponibilità. Non è necessaria alcuna configurazione del cliente per la distribuzione della zona.

Comportamento quando tutte le zone sono integre

Questa sezione descrive cosa aspettarsi quando un'area di lavoro è configurata con il supporto della zona di disponibilità e tutte le zone di disponibilità sono operative.

  • Replica dei dati tra zone: La replica dei dati per l'archiviazione dello spazio di lavoro si verifica in modo sincrono tra le zone quando la radice di DBFS usa un account con ZRS o GZRS. Questo approccio garantisce una coerenza assoluta con un impatto minimo sulle prestazioni.

  • Routing del traffico tra zone: Azure Databricks distribuisce automaticamente i nodi del cluster tra zone durante la creazione del cluster. Il servizio bilancia il carico di calcolo tra zone mantenendo la località dei dati per ottenere prestazioni ottimali.

Comportamento durante un errore di zona

Questa sezione descrive cosa aspettarsi quando un'area di lavoro è configurata con il supporto della zona di disponibilità ed è presente un'interruzione della zona di disponibilità.

  • Rilevamento e risposta: Microsoft rileva automaticamente gli errori della zona e avvia le procedure di risposta. Non è necessario eseguire alcuna azione per il failover a livello di zona.

  • Notifica: Microsoft non invia automaticamente una notifica quando una zona è inattiva. È tuttavia possibile usare la pagina di stato di Azure Databricks per visualizzare una panoramica di tutti i servizi di Azure Databricks di base. È anche possibile sottoscrivere gli aggiornamenti dello stato sui singoli componenti del servizio e ricevere un avviso quando lo stato del servizio sottoscritto viene modificato.

  • Richieste attive: L'esecuzione di cluster potrebbe perdere nodi nella zona interessata. Gestione cluster richiede automaticamente nodi sostitutivi dalle zone rimanenti. Se il nodo driver viene perso, il cluster e il processo si riavviano completamente.

  • Perdita di dati prevista:

    • Piano di controllo: Non si prevede alcuna perdita di dati durante un'interruzione della zona.

    • Radice DBFS: i dati dell'area di lavoro rimangono disponibili se si utilizzano configurazioni dell'archiviazione con ridondanza della zona (ZRS) o dell'archiviazione con ridondanza geografica della zona (GZRS).

    • Piano di calcolo: I dati memorizzati nella cache nelle macchine virtuali sono temporanei. Tutti i dati persi dalle macchine virtuali durante un errore di zona vengono recuperati dall'archiviazione. Se il nodo driver viene perso, il processo viene riavviato e ricompila i risultati.

  • Tempo di inattività previsto:

    • Piano di controllo: Il piano di controllo di Databricks esegue il failover automatico in zone integre entro circa 15 minuti.

    • Radice DBFS: non si prevedono tempi di inattività per gli account di archiviazione che usano l'archiviazione con ridondanza della zona (ZRS) o l'archiviazione con ridondanza geografica della zona (GZRS).

    • Piano di calcolo: Se i nodi vengono persi perché le macchine virtuali si trovano nella zona di disponibilità interessata, Gestione cluster di Azure richiede nodi sostitutivi dal provider di calcolo di Azure. Se le zone integre rimanenti hanno capacità sufficiente per soddisfare la richiesta, il provider di calcolo esegue il pull dei nodi dalle zone integre per sostituire i nodi persi. Questo processo può richiedere alcuni minuti.

      Se il nodo driver viene perso a causa dell'errore di zona, l'intero cluster viene riavviato, causando tempi di ripristino più lunghi rispetto alla perdita dei nodi di lavoro. Pianifica questo comportamento nelle strategie di pianificazione e monitoraggio delle attività.

      È possibile usare pool di istanze o serverless per ridurre questo tempo.

  • Reindirizzamento del traffico:

    • Piano di controllo: Il piano di controllo di Databricks esegue il failover automatico in zone integre entro circa 15 minuti.

    • Radice DBFS: l'archiviazione di Azure reindirizza automaticamente le richieste ai cluster di archiviazione nelle zone integre.

    • Piano di calcolo: Il gestore del cluster passa automaticamente ai nodi in zone funzionanti.

Ripristino della zona

Quando la zona di disponibilità non riuscita viene ripristinata, Azure Databricks riprende automaticamente le normali operazioni in tutte le zone. Il gestore del cluster potrebbe ribilanciare la distribuzione dei nodi durante le successive creazioni di nodi, ma i nodi esistenti continuano a funzionare nelle zone correnti fino a quando non vengono terminati.

Non è necessario eseguire alcuna azione per le operazioni di failback. La distribuzione della zona normale riprende per le nuove distribuzioni di cluster.

Verifica dei guasti di zona

Azure Databricks è un servizio gestito in cui Microsoft gestisce automaticamente il failover di zona ed esegue regolarmente test di indisponibilità della zona. Non è necessario testare gli scenari di errore della zona per il servizio in sé.

Per le applicazioni eseguite in Azure Databricks, testare la resilienza dei processi simulando gli errori dei nodi del driver e monitorando il comportamento di riavvio del cluster. Verificare che i processi di elaborazione dati possano gestire i riavvii del cluster e riprendere dai checkpoint appropriati.

Resilienza agli errori a livello di area

Azure Databricks è un servizio a singola area. Se la regione non è disponibile, anche il tuo ambiente di lavoro non lo è. Se sono necessarie distribuzioni in più aree, vedere Ripristino di emergenza di Azure Databricks.

Soluzioni personalizzate in più aree per la resilienza

Azure Databricks non offre funzionalità predefinite in più aree. Per una protezione completa in più aree dei carichi di lavoro di analisi, è necessario implementare un approccio personalizzato.

Le soluzioni tipiche in più aree includono due o più aree di lavoro. È possibile scegliere tra diverse strategie, tra cui architetture attive-passive e attive-attive.

Per scegliere un'architettura, considerare i fattori seguenti:

  • Criticità del carico di lavoro per l'azienda
  • Durata potenziale di un'interruzione (ore o possibilmente un giorno intero)
  • Il lavoro richiesto per rendere completamente operativa l'area di lavoro
  • Lo sforzo necessario per ripristinare o eseguire il failback nell'area primaria

Per i carichi di lavoro che richiedono la protezione in più aree, vedere Ripristino di emergenza di Azure Databricks.

Backup e ripristino

Azure Databricks esegue automaticamente il backup dei database come parte delle operazioni gestite del servizio. Questo processo include il contenuto del notebook, le definizioni dei processi, le configurazioni del cluster e le impostazioni di controllo di accesso.

Annotazioni

Se si verifica un errore di zona, Azure Databricks non prevede alcuna perdita di dati.

È consigliabile archiviare i dati nell'archiviazione di Unity Catalog. È possibile replicare i dati tramite la replica di archiviazione o la clonazione differenziale.

Le funzionalità di backup e ripristino a livello di area di lavoro non sono disponibili direttamente. Pianificare le procedure di ricreazione dell'area di lavoro che includono il ripristino di configurazioni, utenti e controlli di accesso dai processi di sincronizzazione.

Resilienza alla manutenzione del servizio

Azure Databricks esegue la manutenzione automatica della piattaforma per applicare gli aggiornamenti della sicurezza, distribuire nuove funzionalità e migliorare l'affidabilità del servizio. È possibile configurare le finestre di manutenzione per il cluster per ridurre la probabilità di manutenzione che influisce sui carichi di lavoro di produzione. Per altre informazioni, vedere Aggiornamento automatico del cluster.

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 altre informazioni, vedere Contratti di servizio per Servizi online.