Architettura: elaborazione di eventi complessi

In questa pagina viene descritta un'architettura per l'elaborazione di eventi complessi su Google Cloud.

Puoi usare Google Cloud per creare l'infrastruttura elastica e scalabile necessaria per importare grandi quantità di dati, elaborare eventi ed eseguire regole aziendali. Qualsiasi architettura per l'elaborazione di eventi complessi deve essere in grado di importare dati da più fonti eterogenee, applicare regole aziendali complesse e eseguire azioni in uscita.

Il seguente diagramma dell'architettura mostra un sistema di questo tipo e i componenti interessati:

Architettura per un sistema di elaborazione di eventi complessi

Panoramica dell'architettura

Questa sezione fornisce dettagli sull'architettura mostrata nel diagramma. L'architettura supporta l'input streaming, che può gestire un flusso di dati continuo, e l'input batch, che gestisce i dati come blocchi di grandi dimensioni.

Input streaming

Negli scenari che richiedono un'azione immediata basata su eventi in tempo reale, generati dagli utenti o generati automaticamente, puoi utilizzare un'architettura di streaming per gestire ed elaborare gli eventi complessi.

Applicazioni

Gli eventi generati dagli utenti spesso provengono da interazioni all'interno di applicazioni ospitate on-premise o nel cloud e possono essere sotto forma di clickstream, azioni utente come l'aggiunta di articoli a un carrello degli acquisti o di una lista dei desideri o transazioni finanziarie. Gli eventi generati automaticamente possono essere sotto forma di dispositivi mobili o di altri dispositivi che segnalano la presenza, la diagnostica o tipi di dati simili. Esistono diverse piattaforme per l'hosting di applicazioni su Google Cloud:

  • App Engine è una piattaforma as a Service (PaaS) che consente di eseguire il deployment delle applicazioni direttamente in un ambiente gestito a scalabilità automatica.
  • Google Kubernetes Engine offre un controllo più granulare per le applicazioni basate su container, consentendoti di orchestrare ed eseguire il deployment dei container in modo semplice in un cluster.
  • Compute Engine fornisce macchine virtuali ad alte prestazioni per la massima flessibilità.

Trasporto

Sia che le applicazioni siano ospitate on-premise o su Google Cloud, gli eventi generati devono attraversare un livello di messaggistica a disponibilità elevata e a basso accoppiamento. Pub/Sub, un servizio di trasporto di messaggi durevole globale, supporta la connettività nativa ad altri servizi Google Cloud, rendendo il collante tra le applicazioni e l'elaborazione downstream.

Input batch

In scenari con grandi quantità di dati storici archiviati in database on-premise o cloud, puoi utilizzare un approccio di elaborazione batch orientato all'importazione e all'elaborazione di eventi complessi.

Origini dati

Le origini dati che contengono eventi da elaborare possono essere ospitate on-premise o su Google Cloud. Per le origini dati on-premise, puoi esportare i dati e copiarli successivamente in Cloud Storage per l'elaborazione downstream. Puoi accedere direttamente ai dati archiviati nei database ospitati su cloud utilizzando strumenti di elaborazione downstream e sono disponibili diverse piattaforme che puoi utilizzare per archiviare i dati degli eventi non elaborati su Google Cloud:

  • Cloud Storage fornisce spazio di archiviazione di oggetti per file fissi o dati non strutturati.
  • Cloud SQL archivia i dati relazionali.
  • Datastore è un database NoSQL che supporta gli schemi dinamici e l'indicizzazione completa dei dati.

Elaborazione e archiviazione

Elaborazione dei dati

Poiché i flussi di dati degli eventi provenienti dalle applicazioni vengono caricati tramite Pub/Sub o caricati in altre origini dati cloud, come Cloud Storage, Cloud SQL, Datastore, potrebbe essere necessario trasformare, arricchire, aggregare o applicare calcoli generici ai dati. Dataflow è progettato per eseguire queste attività su dati in modalità flusso o in batch, utilizzando un semplice modello di programmazione basato su pipeline. Dataflow esegue queste pipeline su un servizio gestito che scala in modo elastico, in base alle esigenze. Nei carichi di lavoro CEP, puoi utilizzare Dataflow per normalizzare i dati provenienti da più origini eterogenee e formattarli in una rappresentazione unica e coerente.

Archiviazione degli eventi

In questa architettura, Dataflow elabora i dati degli eventi e li normalizza in un'unica rappresentazione in serie temporale coerente, quindi archiviati in Cloud Bigtable, un servizio di database NoSQL completamente gestito. Bigtable fornisce accesso ai dati coerente, a bassa latenza e ad alta velocità effettiva, utile per l'elaborazione downstream e i carichi di lavoro analitici. Per ulteriori informazioni sull'archiviazione di dati delle serie temporali in Bigtable, consulta Progettazione dello schema Bigtable per le serie temporali.

Esecuzione regole

Alla base dei sistemi CEP ci sono le regole che devono essere eseguite negli eventi in arrivo. I motori di regole possono variare da semplici, personalizzati, lingue specifiche del dominio a complessi sistemi di gestione delle regole aziendali. Indipendentemente dalla complessità del motore di regole, può essere eseguito il deployment in modo distribuito utilizzando Dataflow o Dataproc, un servizio gestito per l'esecuzione di cluster Hadoop o Spark. Utilizzando uno di questi sistemi, puoi eseguire regole complesse su grandi quantità di eventi di serie temporali, quindi utilizzare i risultati di queste valutazioni delle regole per promuovere le azioni in uscita.

Azioni in uscita

Dopo che gli eventi in entrata sono stati elaborati dal meccanismo di esecuzione delle regole, i risultati possono essere trasformati in una serie di azioni in uscita. Queste azioni possono includere le notifiche push per i dispositivi mobili, le notifiche per altre applicazioni o l'invio di email agli utenti. Per recapitare queste azioni, puoi inviare messaggi tramite Pub/Sub ad applicazioni ospitate on-premise o su Google Cloud, in esecuzione su App Engine, GKE o Compute Engine.

Analisi

Puoi archiviare i risultati dell'esecuzione delle regole negli eventi in entrata in BigQuery per eseguire l'esplorazione e l'analisi a scopo di business intelligence o di generazione di rapporti. BigQuery è un data warehouse gestito su scala petabyte che supporta query di tipo SQL e la connettività a ulteriori strumenti di analisi analitici downstream. Per l'analisi orientata ai dati, Datalab offre potenti funzionalità di esplorazione dei dati basate sui blocchi note Jupyter. Per i casi d'uso dei rapporti o della dashboard, Google Data Studio supporta la creazione di rapporti personalizzabili e condivisibili, supportati dalle funzionalità di query e archiviazione di BigQuery.

Passaggi successivi

  • Esplora architetture di riferimento, diagrammi, tutorial e best practice su Google Cloud. Dai un'occhiata al nostro Cloud Architecture Center.