Scegliere Cloud Managed Service per Apache Kafka o Pub/Sub

Questo documento ti guida nella scelta tra Pub/Sub e Google Cloud Managed Service per Apache Kafka. Sia Pub/Sub sia Managed Service per Apache Kafka sono servizi di messaggistica gestiti e scalabili orizzontalmente in grado di gestire carichi di lavoro di volumi elevati.

Questo documento è destinato a sviluppatori, architetti o responsabili delle decisioni che cercano un servizio gestito per la gestione dei carichi di lavoro di messaggistica e dati di streaming.

Esistono diverse opzioni per eseguire Apache Kafka, tra cui servizi partner e software open source autogestito. Questo documento non tratta queste opzioni.

Per una panoramica dei concetti di Pub/Sub, consulta Panoramica del servizio Pub/Sub.

Per una panoramica dei concetti di Managed Service per Apache Kafka, consulta Panoramica di Managed Service per Apache Kafka.

Facilità operativa rispetto alla portabilità

La scelta tra Pub/Sub e Managed Service per Apache Kafka è un compromesso tra semplicità operativa e portabilità.

Semplicità operativa di Pub/Sub

Pub/Sub è un servizio completamente gestito, serverless e distribuito a livello globale che utilizza l'infrastruttura Google Cloud . Esegue automaticamente la scalabilità per gestire il tuo workload, quindi non devi preoccuparti della gestione <x0A>dell'infrastruttura. Pub/Sub regola dinamicamente la capacità per singoli argomenti e sottoscrizioni. Publisher e sottoscrittori possono scalare in modo indipendente, non solo in argomenti e sottoscrizioni diversi, ma anche all'interno degli stessi.

Pub/Sub sposta senza problemi i dati in più regioni. Ciò significa che publisher e abbonati possono connettersi alla regione più vicina e il servizio gestisce il resto.

Managed Service per Apache Kafka può gestire anche grandi volumi di dati. Tuttavia, devi gestire le dimensioni del cluster e configurare diverse altre proprietà in base alle esigenze di scalabilità degli argomenti. Ancora più importante, devi considerare il numero di partizioni da assegnare agli argomenti. Un numero eccessivo di partizioni può sprecare risorse. Un numero troppo basso di partizioni può sovraccaricare i broker nel cluster Kafka. Devi anche considerare il numero di repliche da configurare per partizione a seconda dei requisiti di latenza e di fan-out dei consumer.

Poiché un deployment Kafka è associato a una regione specifica, se sposti i dati tra le regioni, questo spostamento deve avvenire al di fuori del servizio. Garantire la continuità del movimento dei dati e soddisfare le esigenze degli argomenti nel cluster Kafka si aggiunge al tuo lavoro operativo.

Portabilità di Managed Service per Apache Kafka

Sebbene la scalabilità automatica e la distribuzione globale dei dati di Pub/Sub ne semplifichino l'utilizzo, le API Apache Kafka sono adottate in modo molto più ampio.

Se prevedi di utilizzare sistemi di messaggistica indipendenti in diversi ambienti on-premise o provider di servizi cloud, Managed Service for Apache Kafka può offrirti un'esperienza più coerente nelle tue applicazioni. Questo perché puoi standardizzare Kafka e utilizzare la stessa API per comunicare con il servizio Kafka in ogni ambiente.

Anche se puoi utilizzare Pub/Sub come sistema di messaggistica centrale in tutti i tuoi ambienti, è importante ricordare che si tratta di un servizio distinto con una propria API. Se devi interagire con un sistema di messaggistica per un ambiente specifico, l'utilizzo di Managed Service per Apache Kafka potrebbe offrire un'esperienza di sviluppo più unificata.

Quale servizio è più adatto a te

Se un'esperienza coerente in ambienti diversi è fondamentale, scegli Managed Service per Apache Kafka. Se ti concentri sulla configurazione minima per scalare i workload o spostare i dati tra regioni, Pub/Sub offre un vantaggio interessante.

Scegli Pub/Sub se i seguenti fattori descrivono i tuoi requisiti:

  • Dai la priorità alla semplicità operativa all'interno di Google Cloud.

  • Hai bisogno di una soluzione scalabile e serverless con una gestione dell'overhead minima.

  • Le dimensioni dei carichi di lavoro sono imprevedibili o cambiano. Pub/Sub funziona alla grande anche quando il throughput del carico di lavoro è stabile.

  • Hai bisogno del monitoraggio dell'elaborazione per messaggio per ridurre al minimo gli effetti della pipeline dovuti a singoli messaggi errati. Pub/Sub, con le sue code di messaggi non recapitabili (DLQ) integrate e il supporto per l'elaborazione dei messaggi fuori ordine, consente al tuo sistema di rimanere operativo anche quando incontra messaggi problematici.

  • Hai bisogno dell'aggregazione dei dati tra regioni.

  • Hai bisogno di una scalabilità indipendente di publisher e sottoscrittori.

Scegli Managed Service per Apache Kafka se i seguenti fattori descrivono i tuoi requisiti:

  • La portabilità tra più provider cloud o ambienti on-premise è fondamentale.

  • Hai workload Kafka esistenti di cui vuoi eseguire la migrazione a Google Cloud. Per saperne di più, consulta la sezione Scegliere in base alla configurazione Kafka esistente.

  • Il volume di traffico è costante e non presenta molte variazioni.

  • Sei disposto a gestire la gestione della capacità.

  • Hai bisogno dell'ordinamento dei messaggi con una velocità effettiva elevata per chiave.

  • Vuoi utilizzare il pattern di event sourcing con un log degli eventi come fonte di verità.

Scegli in base alla configurazione Kafka esistente

Se utilizzi già Kafka e cerchi una soluzione gestita, sicura e affidabile su Google Cloud, Managed Service per Apache Kafka è la scelta consigliata.

Se esegui già Kafka e vuoi riscrivere le tue applicazioni per usufruire dei vantaggi di un servizio globale altamente scalabile e con scalabilità automatica, Pub/Sub è una buona scelta. Per eseguire la migrazione da Kafka a Pub/Sub, consulta la sezione Eseguire la migrazione da Kafka a Pub/Sub.

Per i nuovi carichi di lavoro o gli utenti che non hanno familiarità con lo streaming su Google Cloud, Pub/Sub è consigliato per la sua facilità d'uso. Se vuoi spostare i tuoi carichi di lavoro Kafka esistenti sul cloud con modifiche minime al codice, Managed Service per Apache Kafka è la scelta ideale.

Integrazione con i prodotti cloud

Sia Google Managed Service per Apache Kafka sia Pub/Sub si integrano con vari servizi Google Cloud come Dataflow, BigQuery, Cloud Storage e altri.

Se hai bisogno di una strategia multi-cloud e dai la priorità alla portabilità tra diversi provider cloud, Managed Service per Apache Kafka offre una maggiore flessibilità. Questo perché Kafka si integra con una gamma più ampia di sistemi esterni a Google Cloud rispetto a Pub/Sub.

Confronto delle funzioni

Se i criteri decisionali di alto livello nelle sezioni precedenti non ti aiutano, puoi fare una scelta in base al supporto di funzionalità specifiche. Per un confronto dettagliato tra i due prodotti, consulta la tabella seguente.

Funzionalità Pub/Sub Managed Service per Apache Kafka
Facilità di utilizzo Più facile da configurare e gestire Richiede un maggiore impegno operativo
Modello di costi Pagamento in base al consumo Pagamento in base alla capacità di calcolo

Pagamento a consumo per networking e spazio di archiviazione.

Elaborazione "exactly-once" Supporta la consegna simultanea singola e una semantica di riconoscimento efficace. Supporta effetti collaterali esattamente una volta durante la lettura da un argomento e la scrittura in un altro.
Scalabilità Scalabilità automatica senza interruzioni da KB a GB al secondo per argomento che funziona anche per carichi di lavoro imprevedibili. Richiede la configurazione manuale
Consegna ordinata

Offre l'ordinamento all'interno delle chiavi.

Throughput di 1 MBps per chiave di ordinamento granulare

Offre l'ordinamento all'interno delle partizioni.

Ordinamento per partizione fino alla capacità di velocità effettiva di una partizione.
Conservazione dei dati 31 giorni Conservazione indefinita
Latenza end-to-end Latenza end-to-end in genere nell'ordine di 100 millisecondi In genere, nell'ordine di 10 millisecondi per gli abbonati che si comportano bene.
Compatibilità con Kafka open source per il lift and shift No
Identity and Access Management e sicurezza
Configurazione automatica della rete
Multi-cloud: identico in tutti i cloud No
SLA di uptime
SLA del piano dati Al momento no.
Logging e monitoraggio
Ribilanciamento delle partizioni tra i broker Non applicabile
Capacità automatica Pub/Sub regola dinamicamente la capacità in base alla frequenza dei messaggi in entrata e alla domanda dei sottoscrittori. Il servizio gestisce l'infrastruttura sottostante, come VM e spazio di archiviazione. Puoi controllare aspetti come il numero di partizioni e il fattore di replica.
Gestione automatica dello spazio di archiviazione
Upgrade software automatici
Assistenza clienti
Servizio Kafka Connect Non applicabile Con i servizi Connect forniti dall'utente
Supporto degli schemi Con il registro di schema fornito dall'utente
Compatibile con ks qIDB, KSQL No
Supporto per i connettori OSS Sì, per i connettori Kafka e Flink No
Integrazione con Data Lake e Data Warehouse