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 workload di dati di streaming e messaggistica.

Esistono diverse opzioni per l'esecuzione di 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 la panoramica di Managed Service per Apache Kafka.

Facilità operativa e 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 . Scala automaticamente per gestire il tuo workload, quindi non devi preoccuparti di gestire l'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 sottoscrittori 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. Troppe partizioni possono 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 fan-out dei consumer.

Poiché un deployment di Kafka è associato a una regione specificata, 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 per 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 workload sono imprevedibili o variabili. Pub/Sub funziona alla grande anche quando la velocità effettiva 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 abbonati.

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

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

  • Hai carichi di lavoro 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 un throughput elevato per chiave.

  • Vuoi utilizzare il pattern di event sourcing con un log 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 nel 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 ancora.

Se hai bisogno di una strategia multicloud e dai la priorità alla portabilità tra diversi provider di servizi cloud, Managed Service per Apache Kafka offre una maggiore flessibilità. Questo perché Kafka si integra con una gamma più ampia di sistemi al di fuori di 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 all'utilizzo Pagamento in base alla capacità di calcolo

Pagamento in base all'utilizzo 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 i workload 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 a tempo indeterminato
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 Sì
Identity and Access Management e sicurezza Sì Sì
Configurazione automatica della rete Sì Sì
Multi-cloud: identico in tutti i cloud No Sì
SLA tempo di attività Sì Sì
SLA del piano dati Sì Al momento no.
Logging e monitoraggio Sì Sì
Ribilanciamento delle partizioni tra i broker Non applicabile Sì
Capacità automatica Pub/Sub regola dinamicamente la capacità in base alla velocità dei messaggi in arrivo 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 Sì Sì
Aggiornamenti software automatici Sì Sì
Assistenza clienti Sì Sì
Servizio Kafka Connect Non applicabile Con i servizi Connect forniti dall'utente
Supporto degli schemi Sì Con il registro di schema fornito dall'utente
Compatibile con ks qIDB, KSQL No Sì
Supporto dei connettori OSS Sì, per i connettori Kafka e Flink No
Integrazione con Data Lake e Data Warehouse Sì Sì

Apache Kafka® è un marchio registrato di Apache Software Foundation o dei suoi affiliati negli Stati Uniti e/o in altri paesi.