Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Stream Analytics è un servizio altamente resiliente che elabora e analizza flussi di dati da più origini contemporaneamente. Analisi di flusso fornisce le informazioni che consentono di creare pipeline di elaborazione di eventi complesse con 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, inclusi errori temporanei e interruzioni della zona di disponibilità. Vengono inoltre fornite indicazioni su come proteggere le operazioni critiche in caso di interruzioni regionali e manutenzione dei servizi, mettendo in evidenza alcune informazioni chiave sul contratto di servizio di Stream Analytics (SLA).
Importante
Il miglioramento della resilienza di Analisi di flusso può avere un impatto 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 con Analisi di flusso, è consigliabile:
- Usare le aree con 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, con capacità aggiuntiva per la gestione dei carichi di picco e con un buffer al di sopra dei requisiti di base in caso di aumenti improvvisi.
- Monitorare l'integrità: Implementare un monitoraggio completo usando le metriche e i log di diagnostica di Monitoraggio di Azure per tenere traccia dell'integrità dei processi, degli eventi di input/output e dell'utilizzo delle risorse. Configurare gli avvisi per metriche critiche, come il ritardo del watermark ed errori di runtime, per rilevare i problemi prima che influenzino l'elaborazione dei dati. Per altre informazioni, vedere Monitorare Analisi di flusso di Azure.
- Implementare la ridondanza in più aree per carichi di lavoro cruciali: Distribuire processi di Analisi di flusso identici in più aree con configurazioni sincronizzate e routing dei dati appropriato per ottenere 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 processo di lavoro è l'unità fondamentale in Stream Analytics che consente di definire ed eseguire la logica di elaborazione del flusso. Un lavoro consiste nei seguenti componenti principali:
- Input che leggono i dati in streaming da origini dati, ad esempio Azure Event Hubs, Azure IoT Hub o Azure Storage.
- Query che elabora e trasforma i dati.
- Output che scrivono continuamente i risultati in varie destinazioni, ad esempio il database SQL di Azure, Azure Data Lake Storage, Azure Cosmos DB, Power BI e altro ancora.
Per altre informazioni sui processi di Analisi di flusso e sul modello di risorse, vedere Modello di risorse di Analisi di flusso di Azure.
Architettura fisica
Analisi di flusso consente di ottenere un'affidabilità elevata 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 un funzionamento affidabile dei processi:
Nodi di lavoro. Processi di Analisi di flusso in macchine virtuali (VM) denominati nodi di lavoro eseguiti all'interno di un cluster. Quando si usano gli SKU Standard o StandardV2, i processi vengono eseguiti in cluster condivisi. Quando si usa lo SKU dedicato , i processi vengono eseguiti nel proprio cluster dedicato.
Poiché la piattaforma gestisce automaticamente la creazione del nodo di lavoro, il posizionamento dei processi tra nodi di lavoro, il monitoraggio dell'integrità e la sostituzione dei nodi di lavoro non integri, non vengono visualizzate o gestite direttamente le macchine virtuali.
Unità di streaming. Mentre la piattaforma gestisce i nodi di lavoro e la distribuzione dei processi tra i nodi di lavoro, si assume la responsabilità dell'allocazione delle unità di streaming (SU) ai processi. 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. Per altre informazioni, vedere Comprendere e regolare le unità di streaming di Analisi di flusso.
Checkpoint. Analisi di flusso mantiene lo stato del processo tramite il checkpoint regolare dello stato. I checkpoint consentono il ripristino rapido con una rielaborazione minima dei dati in caso di errori, anche per i processi che usano la logica di query con stato.
Quando si verificano errori di elaborazione, Analisi di flusso viene riavviato automaticamente dall'ultimo checkpoint e rielabora automaticamente 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 esattamente una volta dipende dalle funzionalità della destinazione di output. Per ulteriori informazioni, vedere Concetti relativi ai checkpoint e al replay nei processi di Azure Stream Analytics.
Annotazioni
Con Analisi di flusso di Azure in IoT Edge è possibile eseguire processi nella propria infrastruttura. Quando si usa Analisi di flusso in IoT Edge, si è responsabili della configurazione per soddisfare i requisiti di affidabilità. Analisi di flusso in IoT Edge non rientra nell'ambito di questo articolo.
Resilienza ai guasti transitori
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.
Analisi di Flusso gestisce automaticamente molti errori temporanei per l'inserimento di dati dagli input e la scrittura di dati negli output tramite meccanismi di retry integrati. Dopo il riavvio di un nodo di lavoro o la riassegnazione del processo, il processo usa i checkpoint per riprodurre tutti gli eventi che non sono stati completamente elaborati e continua l'elaborazione fino a raggiungere il flusso di input corrente.
È consigliabile configurare i criteri di errore di output. Tuttavia, questi criteri si applicano solo agli errori di conversione dei dati e non influiscono sul comportamento per la gestione degli 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 è automaticamente a ridondanza di 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 sia resiliente a un set elevato di errori, incluse interruzioni irreversibili del data center, senza modifiche alla logica dell'applicazione.
Quando si crea un processo Stream Analytics in un'area abilitata per la zona, il servizio distribuisce le risorse di calcolo del processo nelle diverse zone di disponibilità.
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:
La ridondanza della zona si applica a tutte le funzionalità di Analisi di flusso, tra cui l'elaborazione delle query, il checkpoint e le operazioni di gestione dei processi. Stream Analytics replica automaticamente i dati dello stato e del checkpoint del processo tra zone di disponibilità, impedendo la perdita di dati e consentendo tempi di inattività quasi nulli durante i guasti 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 Aree di Azure con zone di disponibilità.
- SKUs: La ridondanza della zona è disponibile in tutti gli SKU di Analisi di flusso.
Costo
La ridondanza di zona in Stream Analytics non comporta costi aggiuntivi. Si paga la stessa tariffa per le unità di streaming, indipendentemente dal fatto che il processo venga eseguito in una configurazione con ridondanza della zona o meno. Per informazioni, vedere Prezzi di Analisi di flusso di Azure.
Configurare il supporto delle zone di disponibilità
Creare un processo di Analisi di flusso con ridondanza zonale. La ridondanza della zona viene abilitata automaticamente quando si crea un processo di Analisi di flusso in un'area supportata. Non è richiesta alcuna configurazione.
Per istruzioni sulla distribuzione, vedere Avvio rapido: Creare un processo di Analisi di flusso usando il portale di Azure e Avvio rapido: Creare un cluster di Analisi di flusso di Azure dedicato usando il portale di Azure.
Abilitare la ridondanza zonale. Tutti i processi e i cluster dedicati hanno automaticamente ridondanza di zona nelle regioni con zone di disponibilità. Non è necessario abilitare la ridondanza zonale.
Disabilitare la ridondanza della zona. La ridondanza della zona non può essere disabilitata.
Comportamento quando tutte le zone sono integre
Questa sezione descrive cosa aspettarsi quando si configurano processi di Analisi di flusso con il supporto della zona di disponibilità e tutte le zone di disponibilità sono operative.
Routing del traffico tra zone. Stream Analytics esegue ogni processo nei nodi di lavoro. I dati di streaming in ingresso possono essere elaborati dai ruoli di lavoro in qualsiasi zona. Il servizio usa il bilanciamento del carico interno per distribuire le attività di elaborazione tra le zone.
Replica dei dati tra zone. Analisi di flusso replica lo stato del lavoro e i dati del checkpoint in modo sincrono tra le zone di disponibilità. Man mano che il processo elabora gli eventi e aggiorna il loro stato, Stream Analytics scrive tali 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 si configurano processi di Analisi di flusso con il supporto della zona di disponibilità e si verifica un'interruzione della 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. Analisi di Flusso contrassegna i lavoratori nella zona guasta come non integri e i processi in corso su tali lavoratori vengono automaticamente ridistribuiti ai lavoratori nelle zone integre rimanenti. 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à risorse di Azure per monitorare l'integrità di una singola risorsa ed è possibile configurare gli avvisi di Integrità risorse per notificare i problemi. È anche 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 i problemi.
Richieste attive: i processi in esecuzione vengono trasferiti a un altro processore in una zona di disponibilità attiva.
Analisi di flusso usa il checkpoint per mantenere lo stato di elaborazione. Durante un guasto di zona, gli eventi in corso elaborati dai processori nella zona guasta vengono automaticamente rielaborati dall'ultimo checkpoint da parte dei processori nelle zone funzionanti.
Perdita di dati prevista: il sistema di checkpoint del processo garantisce alcuna perdita di dati.
Tempo di inattività previsto: i processi in corso riprendono automaticamente dopo che la piattaforma li sposta su un processore sano.
Reindirizzamento del traffico: il servizio reindirizza automaticamente tutti i nuovi dati di input ai lavoratori in zone integre. Le connessioni esistenti dalle sorgenti di input vengono ristabilite con 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 si esegue alcuna azione per il ripristino della zona, perché la piattaforma gestisce tutti gli aspetti delle operazioni di ripristino della zona, tra cui la sincronizzazione dello stato e la ridistribuzione del carico di lavoro.
Verifica dei guasti di zona
Poiché la piattaforma Stream Analytics gestisce il routing del traffico, il failover e il ripristino della zona, non è necessario avviare o convalidare i processi di guasto della zona 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. In questo caso, si è responsabili della distribuzione e della gestione dei processi e della configurazione delle strategie di routing e sincronizzazione dei dati appropriate. I processi di Analisi di flusso sono due entità separate. È responsabilità dell'applicazione inviare i dati di input sia agli input regionali sia a riconciliare gli output regionali. Per altre informazioni su questo approccio, vedere Ottenere la ridondanza geografica per i job di Stream Analytics.
Backup e ripristino
Stream Analytics non dispone di una funzionalità predefinita di backup e ripristino.
Tuttavia, se si vuole 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 o in un'altra area di Azure. Per informazioni su come copiare, eseguire il backup e spostare i processi di Analisi di flusso, vedere Copiare, eseguire il backup e spostare i processi di Analisi di flusso di Azure.
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. Di conseguenza, Stream Analytics può ricevere aggiornamenti del servizio distribuiti su base settimanale (o anche più frequentemente). Il servizio Analisi di flusso garantisce che qualsiasi nuovo aggiornamento superi rigorosi processi interni per avere la massima qualità.
Considerare i punti seguenti per garantire che le attività siano resilienti a operazioni di manutenzione del servizio:
Configurare i processi in modo che siano resilienti alle riproduzioni: I checkpoint vengono in genere usati per ripristinare i dati dopo la manutenzione del servizio. Tuttavia, occasionalmente è necessario usare una tecnica di ripristino anziché un checkpoint. Per ulteriori dettagli e per sapere come configurare le origini dati di input affinché le ri-esecuzioni non causino risultati errati o parziali nell'output, consultare Ripristino del processo da un aggiornamento del servizio.
Valutare la possibilità di ridurre il rischio di bug distribuendo processi identici: Il servizio cerca in modo proattivo molti segnali dopo la distribuzione in ogni batch per ottenere maggiore attendibilità che non siano stati introdotti bug. Tuttavia, indipendentemente dalla quantità di test eseguita, esiste comunque un rischio che un processo in esecuzione esistente possa interrompersi a causa dell'introduzione di un problema introdotto dalla manutenzione. Se si eseguono processi cruciali, è consigliabile adottare misure per evitare questo rischio.
È possibile ridurre il rischio di un bug che interessa il carico di lavoro distribuendo processi identici in due aree di Azure. È quindi consigliabile monitorare questi processi per ricevere notifiche quando si verifica un evento imprevisto. Se uno di questi processi termina con uno Stato di errore dopo un aggiornamento del servizio Analisi di flusso, è necessario:
- 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. La distribuzione di un aggiornamento a Analisi di flusso non viene eseguita contemporaneamente in un set di aree abbinate. Di conseguenza, vi è un divario di tempo sufficiente tra gli aggiornamenti per identificare potenziali problemi e risolverli.
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.
Analisi di flusso offre contratti di servizio di disponibilità separati per le chiamate API destinate alla gestione dei processi e per le operazioni sui processi.