Condividi tramite


Affidabilità in Analisi di flusso di Azure

Analisi di flusso di Azure è un servizio altamente resiliente che elabora e analizza i dati di streaming da più origini contemporaneamente. Analisi di flusso fornisce le informazioni che è possibile usare per creare pipeline di elaborazione di eventi complesse usando query simili a SQL.

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 Analisi di flusso è resiliente ai potenziali problemi, ad esempio errori temporanei e interruzioni della zona di disponibilità. Fornisce indicazioni su come proteggere le attività mission-critical da interruzioni regionali e manutenzioni di servizio. Vengono inoltre evidenziate informazioni chiave sul contratto di servizio di Analisi di flusso.

Importante

Il miglioramento della resilienza di Analisi di flusso può avere un effetto limitato se gli altri componenti non sono ugualmente resilienti. Prendere in considerazione l'affidabilità delle origini dati, inclusi input e output. A seconda dei requisiti di resilienza, potrebbe essere necessario apportare modifiche alla configurazione in più aree.

Raccomandazioni per la distribuzione di produzione

Per garantire un'elevata affidabilità negli ambienti di produzione che usano Analisi di flusso, è consigliabile eseguire le azioni seguenti:

  • Usare le aree che supportano le zone di disponibilità. Distribuire i processi di streaming e altre risorse nelle aree che supportano le zone di disponibilità.
  • Distribuire capacità sufficiente. Impostare le unità di streaming in base alla velocità effettiva prevista e alla capacità aggiuntiva per gestire i carichi di picco. Aggiungere un buffer sopra i requisiti di base per gestire gli aumenti improvvisi.
  • Monitorare la salute. Implementare il monitoraggio completo usando le metriche e i log di diagnostica di Azure Monitor per tenere traccia dell'integrità del processo, degli eventi di input e di output e dell'utilizzo delle risorse. Configurare avvisi per metriche critiche, ad esempio ritardo limite ed errori di runtime per rilevare i problemi prima che influiscano sull'elaborazione dei dati. Per altre informazioni, vedere Monitorare Analisi di flusso.
  • Implementare la ridondanza in più aree per i carichi di lavoro mission-critical. Distribuire processi di Analisi di flusso identici in più aree. Replicare le configurazioni e garantire il routing dei dati appropriato per ottenere la resilienza a livello di area. Anche se Analisi di flusso non fornisce la replica nativa in più aree, questo approccio consente il failover e la continuità. Per altre informazioni, vedere Soluzioni personalizzate in più aree per la resilienza.

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

Un job è l'unità fondamentale in Stream Analytics che consente di definire ed eseguire la logica di elaborazione del flusso di dati. Un lavoro consiste nei seguenti componenti principali:

  • Input che leggono i dati in streaming da origini dati come Azure Event Hubs, Azure IoT Hub o Azure Storage.
  • Query che elabora e trasforma i dati.
  • Output che scrivono continuamente i risultati in destinazioni diverse, ad esempio Database SQL di Azure, Azure Data Lake Storage, Azure Cosmos DB e Power BI.

Per altre informazioni, vedere Modello di risorse di Analisi di flusso.

Architettura fisica

Analisi di flusso consente di ottenere un'elevata affidabilità applicando più livelli di resilienza per attenuare i problemi nell'infrastruttura sottostante e nelle origini dati di input e output. I componenti seguenti consentono di garantire che i processi vengano eseguiti in modo affidabile:

  • Nodi di lavoro: I processi di Analisi di flusso vengono eseguiti all'interno di un cluster. Le macchine virtuali all'interno del cluster sono note come nodi di lavoro. Quando si usano gli SKU Standard o Standard V2, i processi vengono eseguiti in cluster condivisi. Quando si usa lo SKU dedicato, i processi vengono eseguiti nel proprio cluster dedicato.

    La piattaforma gestisce automaticamente la creazione dei nodi di lavoro, il posizionamento dei processi tra i nodi di lavoro, il monitoraggio dell'integrità e la sostituzione dei nodi di lavoro non integri, in modo da non visualizzare o gestire direttamente le macchine virtuali.

  • SUs: Le SUs rappresentano le risorse di calcolo che eseguono un'attività. Maggiore è il numero di SU, maggiore è la quantità di risorse di calcolo allocate per il processo. La piattaforma gestisce i nodi di lavoro e la distribuzione dei processi tra di essi, ma l'utente è responsabile dell'allocazione delle unità di streaming ai processi. Per ulteriori informazioni, vedere Comprendere e regolare le SU di Stream Analytics.

  • Checkpoint: Analisi di flusso gestisce lo stato dei processi attraverso checkpoint dello stato regolari. I checkpoint permettono di ripristinare rapidamente i processi non riusciti con una rielaborazione minima dei dati, persino per i lavori che usano una logica di query con stato.

    Quando si verificano errori di elaborazione, Analisi di flusso viene riavviato automaticamente dall'ultimo checkpoint e rielabora gli eventi che hanno esito negativo durante l'elaborazione. Questa garanzia si applica a tutte le funzioni predefinite e alle funzioni definite dall'utente all'interno del processo. Tuttavia, ottenere una consegna end-to-end con garanzia di esattamente una volta dipende dalle funzionalità della destinazione di output. Per ulteriori informazioni, vedere Concetti di checkpoint e riproduzione nei processi di Stream Analytics.

Annotazioni

Usando Analisi di flusso in IoT Edge, è possibile eseguire processi nella propria infrastruttura. Quando si usa Analisi di flusso in IoT Edge, si è responsabili della configurazione al fine di soddisfare i requisiti di affidabilità. Analisi di flusso in IoT Edge non rientra nell'ambito di questo 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.

Stream Analytics gestisce automaticamente molti errori temporanei quando inserisce dati dagli input e scrive i dati negli output utilizzando i meccanismi di ripetizione predefiniti. Dopo il riavvio di un nodo di lavoro o la riassegnazione, il processo usa i checkpoint per riprodurre gli eventi che non sono stati completamente elaborati, dopodiché continua l'elaborazione finché non raggiunge il flusso di input corrente.

È consigliabile configurare i criteri di errore di output. Ma questi criteri si applicano solo agli errori di conversione dei dati e non cambiano il modo in cui Analisi di flusso gestisce gli errori temporanei.

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.

Analisi di flusso prevede automaticamente la ridondanza della zona nelle aree che supportano le zone di disponibilità, il che significa che i processi usano più zone di disponibilità. La ridondanza della zona garantisce che il processo rimanga resiliente a un'ampia gamma di errori, incluse interruzioni irreversibili del data center, senza modifiche alla logica dell'applicazione.

Quando si crea un processo di Analisi di flusso in un'area abilitata per la zona, il servizio distribuisce le risorse di calcolo del processo in più zone di disponibilità.

Diagramma che mostra un processo di Analisi di flusso con ridondanza della zona.

Questo modello di distribuzione con ridondanza della zona garantisce che i processi di streaming continuino a elaborare i dati anche se un'intera zona di disponibilità non è più disponibile. Ad esempio, il diagramma seguente mostra come i processi continuano a essere eseguiti se la zona 3 riscontra un'interruzione.

Diagramma che mostra un processo di Analisi di flusso con ridondanza della zona che continua a essere eseguito quando una zona è inattiva.

La ridondanza della zona si applica a tutte le funzionalità di Analisi di flusso, incluse l'elaborazione delle query, il checkpoint e le attività di gestione dei processi. Analisi di flusso replica automaticamente i dati sui checkpoint e sullo stato del processo tra zone di disponibilità, impedendo così la perdita di dati e riducendo i tempi di inattività durante gli errori della zona.

Requisiti

  • Supporto per le regioni: La ridondanza della zona per le risorse di Stream Analytics è supportata in qualsiasi regione che supporta le zone di disponibilità. Per l'elenco completo delle aree che supportano le zone di disponibilità, vedere l'elenco delle aree di Azure.
  • Requisiti dello SKU: La ridondanza di zona è disponibile in tutti gli SKU di Stream Analytics.

Costo

La ridondanza delle zone in Stream Analytics non comporta costi aggiuntivi. Si paga la stessa tariffa per le SU, indipendentemente dal fatto che il processo venga eseguito in una configurazione con ridondanza di zona o in una configurazione senza ridondanza di zona. Per altre informazioni, vedere Prezzi di Analisi di flusso.

Configurare il supporto delle zone di disponibilità

Comportamento quando tutte le zone sono integre

Questa sezione descrive cosa aspettarsi quando i processi di Analisi di flusso prevedono la ridondanza della zona e tutte le zone di disponibilità sono operative.

  • Routing del traffico tra zone: Analisi di flusso esegue ogni processo nei nodi di lavoro. I lavoratori in ogni zona possono elaborare i dati di streaming in ingresso. Il servizio usa il bilanciamento del carico interno per distribuire le attività di elaborazione tra le zone.

  • Replica dei dati tra zone: Stream Analytics replica lo stato dell'attività e i dati del checkpoint in modo sincrono tra le zone di disponibilità. Man mano che il processo elabora gli eventi e aggiorna il relativo stato, Analisi di flusso scrive queste modifiche in più zone di disponibilità prima di riconoscerle. Questa replica sincrona garantisce una perdita di dati pari a zero anche se un'intera zona non è più disponibile. Il processo di replica è trasparente per l'applicazione e non influisce sulla latenza di elaborazione in condizioni normali.

Comportamento durante un errore di zona

Questa sezione descrive cosa aspettarsi quando i processi di Analisi di flusso prevedono la ridondanza della zona e si verifica un'interruzione a livello di zona di disponibilità.

  • Rilevamento e risposta: La piattaforma di Analisi di flusso è responsabile del rilevamento di un errore in una zona di disponibilità e della risposta. Stream Analytics contrassegna i lavoratori nella zona fallita come non funzionanti e ridistribuisce automaticamente le attività ai lavoratori nelle zone integre rimanenti. Non è necessario eseguire alcuna operazione per avviare un failover di zona.
  • Richieste attive: Analisi di flusso sposta i processi in esecuzione in un altro nodo di lavoro in una zona di disponibilità integra.

    Analisi di flusso usa il checkpoint per mantenere lo stato di elaborazione. Durante un guasto di zona, i lavoratori nelle zone integre rielaborano automaticamente i lavori in esecuzione nella zona guasta dall'ultimo checkpoint.

  • Perdita di dati prevista: il sistema di checkpoint del processo esclude qualsiasi perdita di dati.

  • Tempi di inattività previsti: i processi in corso riprendono automaticamente dopo che la piattaforma li sposta in un nodo di lavoro integro.

  • Reindirizzamento del traffico: Il servizio reindirizza automaticamente tutti i nuovi dati di input ai lavoratori nelle zone integre. Le connessioni esistenti dalle fonti di input vengono ristabilite tra i lavoratori nelle zone operative. Le connessioni di output vengono ristabilite in modo analogo, garantendo un flusso di dati continuo attraverso la pipeline di streaming.

Ripristino della zona

Quando la zona di disponibilità non riuscita viene ripristinata, Stream Analytics la reintegra automaticamente nel pool di elaborazione attivo. Le attività iniziano a usare l'infrastruttura ripristinata.

Non prendi nessuna azione per il ripristino della zona. La piattaforma gestisce tutte le attività di ripristino della zona, inclusa la replica dello stato e la ridistribuzione del carico di lavoro.

Verifica dei guasti di zona

Poiché la piattaforma Analisi di flusso gestisce il routing del traffico, il failover e il ripristino della zona, non è necessario avviare o convalidare i processi di errore delle zone di disponibilità.

Resilienza agli errori a livello di area

Analisi di flusso distribuisce le risorse in una singola area di Azure. Se l'area non è disponibile, anche i processi (e i cluster dedicati, se applicabile) non sono disponibili.

Soluzioni personalizzate in più aree per la resilienza

Per ottenere la resilienza in più aree per i carichi di lavoro di streaming, valutare la possibilità di distribuire processi separati in più aree. Quando si adotta questo approccio, si è responsabili della distribuzione e della gestione dei processi e della configurazione delle strategie di routing e replica dei dati appropriate. I processi di Analisi di flusso sono due entità separate. È responsabilità dell'applicazione inviare dati di input a entrambi gli input a livello di area e riconciliare gli output a livello di area. Per ulteriori informazioni, vedere Ottenere la ridondanza geografica per i processi di Stream Analytics.

Backup e ripristino

Stream Analytics non dispone di una funzionalità predefinita di backup e ripristino.

Per spostare, copiare o eseguire il backup della definizione e della configurazione dei processi, è possibile usare l'estensione Analisi di flusso per Visual Studio Code per esportare un processo esistente nel cloud di Azure nel computer locale. Dopo aver salvato l'intera configurazione dei processi di Analisi di flusso in locale, è possibile distribuirla nella stessa area o in un'altra area di Azure. Per ulteriori informazioni, consultare Copiare, eseguire il backup e spostare i processi di Stream Analytics.

Resilienza alla manutenzione del servizio

Analisi di flusso esegue la manutenzione automatica della piattaforma per applicare gli aggiornamenti della sicurezza, distribuire nuove funzionalità e migliorare l'affidabilità del servizio. Potrebbe distribuire gli aggiornamenti del servizio ogni settimana o più frequentemente. Analisi di flusso testa tutti i nuovi aggiornamenti per garantire una qualità elevata.

Prendere in considerazione i seguenti punti per garantire che i processi siano resilienti alle attività di manutenzione dei servizi.

  • Configurare i processi in modo che siano resilienti alle riproduzioni. L'analisi di flusso in genere usa i checkpoint per ripristinare i dati dopo la manutenzione del servizio. Talvolta, deve usare una tecnica di riproduzione. È necessario configurare le origini dati di input in modo che le riproduzioni non causino risultati errati o parziali nell'output. Per altre informazioni, vedere Recupero del lavoro a seguito di un aggiornamento del servizio.

  • Valutare la possibilità di ridurre il rischio di bug distribuendo processi identici. Il servizio cerca in modo proattivo i segnali dopo la distribuzione in ogni batch per verificare se la distribuzione introduce bug. Tuttavia, indipendentemente dalla quantità di test, un processo in corso esistente potrebbe non riuscire quando la manutenzione presenta un problema. Se si svolgono attività essenziali, adottare misure per attenuare questo rischio.

    È possibile ridurre il rischio di un bug che interessa il carico di lavoro distribuendo processi identici in due aree di Azure. Monitorare questi processi per ricevere notifiche quando si verifica un evento imprevisto. Se uno di questi processi entra in uno stato di errore dopo un aggiornamento del servizio Analisi di flusso, eseguire le azioni seguenti:

    • Contattare il supporto tecnico di Azure per identificare la causa e risolvere il problema.
    • Effettuare il failover di tutti i consumer downstream per utilizzare l'output dell'attività funzionante.

    Quando si selezionano le aree di Azure da usare per il processo secondario, valutare se l'area ha un'area abbinata. L'elenco delle aree di Azure include le informazioni più up-to-date sulle aree associate. Analisi di flusso garantisce che l'infrastruttura in aree abbinate venga aggiornata in momenti diversi. Gli aggiornamenti di Analisi di flusso non vengono distribuiti contemporaneamente in un set di aree abbinate. Esiste un intervallo di tempo sufficiente tra gli aggiornamenti per identificare e risolvere potenziali problemi.

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.

Stream Analytics offre SLA di disponibilità separati per le chiamate API che gestiscono i processi e per le operazioni dei processi.