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 grandi volumi.
Questo documento è rivolto a sviluppatori, architetti o responsabili decisionali che cercano un servizio gestito per la gestione dei carichi di lavoro di messaggistica e di streaming di dati.
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 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 mondiale che utilizza l'infrastruttura di Google Cloud . Si adatta automaticamente al carico di lavoro, quindi non devi preoccuparti di gestire l'infrastruttura. Pub/Sub regola dinamicamente la capacità per singoli argomenti e iscrizioni. I publisher e gli abbonati possono eseguire lo scaling in modo indipendente, non solo tra argomenti e abbonamenti diversi, ma anche all'interno degli stessi.
Pub/Sub sposta inoltre i dati senza problemi tra più regioni. Ciò significa che i publisher e gli abbonati possono collegarsi alla regione più vicina e il servizio si occupa del resto.
Managed Service per Apache Kafka può anche gestire grandi volumi di dati. Tuttavia, devi gestire le dimensioni del cluster e configurare diverse altre proprietà in base alle esigenze di scalabilità dei tuoi argomenti. È importante considerare il numero di partizioni da assegnare agli argomenti. Troppe partizioni possono far sprecare risorse. Un numero troppo ridotto di partizioni può sovraccaricare i broker nel cluster Kafka. Devi anche considerare il numero di repliche da configurare per ogni partizione, a seconda dei requisiti di latenza e fan-out dei consumatori.
Poiché un deployment di Kafka è associato a una regione specifica, se sposti i dati tra regioni, lo spostamento deve avvenire al di fuori del servizio. Garantire il corretto funzionamento del trasferimento dei dati e soddisfare le esigenze degli argomenti nel tuo cluster Kafka contribuisce al tuo lavoro operativo.
Portabilità di Managed Service per Apache Kafka
Sebbene l'autoscaling e la distribuzione globale dei dati di Pub/Sub semplifichino le operazioni, le API Apache Kafka sono molto più ampiamente adottate.
Se prevedi di utilizzare sistemi di messaggistica indipendenti in diversi ambienti on-premise o di fornitori di servizi cloud, il servizio gestito 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.
Sebbene tu possa certamente utilizzare Pub/Sub come sistema di messaggistica centralizzato in tutti i tuoi ambienti, è importante ricordare che si tratta di un servizio distinto con la 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.
Il servizio più adatto a te
Se è fondamentale un'esperienza coerente in ambienti diversi, scegli Managed Service per Apache Kafka. Se ti concentri su una configurazione minima per scalare i carichi di lavoro o il trasferimento di dati tra regioni, Pub/Sub offre un vantaggio convincente.
Scegli Pub/Sub se i seguenti fattori descrivono i tuoi requisiti:
Dai la priorità alla semplicità operativa in 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 variabili. Pub/Sub funziona bene 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 per i messaggi inutilizzati (DLQ) integrate e il supporto per l'elaborazione dei messaggi fuori sequenza, consente al sistema di rimanere operativo anche in caso di messaggi problematici.
Hai bisogno di aggregare i dati tra regioni.
Devi avere la possibilità di scalare in modo indipendente i publisher e gli abbonati.
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 carichi di lavoro Kafka esistenti di cui vuoi eseguire la migrazione su Google Cloud. Per ulteriori informazioni, consulta Scegliere in base alla configurazione Kafka esistente.
Il volume di traffico è costante e presenta poche variazioni.
Sei disposto a gestire la gestione della capacità.
Hai bisogno di ordinare i messaggi a una velocità effettiva elevata per chiave.
Vuoi utilizzare il pattern di origine evento con un log eventi come fonte attendibile.
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 utilizzi già Kafka e vuoi riscrivere le tue applicazioni per usufruire dei vantaggi di un servizio globale altamente scalabile e con il ridimensionamento automatico, Pub/Sub è un buon consiglio. Per eseguire la migrazione da Kafka a Pub/Sub, consulta Eseguire la migrazione da Kafka a Pub/Sub.
Per i nuovi carichi di lavoro o gli utenti che non hanno mai utilizzato lo streaming su Google Cloud, si consiglia Pub/Sub per la sua facilità d'uso. Se vuoi trasferire 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 il servizio gestito Google 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à su diversi fornitori 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 questi 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 | Maggiore facilità di configurazione e gestione | Richiede un maggiore impegno operativo |
Modello di costo | Pay-per-use | Pagamento per capacità per l'elaborazione Pagamento per utilizzo per networking e spazio di archiviazione. |
Elaborazione "exactly-once" | Supporta l'invio singolo simultaneo e una semantica di conferma forte. | Supporta gli effetti collaterali esattamente una volta quando si legge da un argomento e si scrive in un altro. |
Scalabilità | Scalabilità automatica senza interruzioni da KB a GB al secondo per argomento, che funziona anche per i carichi di lavoro imprevedibili. | Richiede la configurazione manuale |
Consegna ordinata | Offre l'ordinamento all'interno delle chiavi. Velocità effettiva di 1 MB/s per chiave di ordinamento granulare |
Ordina le offerte 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 dell'ordine di 100 millisecondi | In genere, dell'ordine di 10 millisecondi per gli abbonati che si comportano correttamente. |
Compatibilità con Kafka open source per il lift and shift | No | Sì |
Sicurezza e Identity and Access Management | Sì | Sì |
Configurazione automatica della rete | Sì | Sì |
Multi-cloud: identico su tutti i cloud | No | Sì |
SLA sul tempo di attività | Sì | Sì |
SLA 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 frequenza dei messaggi in entrata e alla domanda degli abbonati. | Il servizio gestisce l'infrastruttura di base, come VM e 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 dello schema | Sì | Con un registry dello schema fornito dall'utente |
Compatibile con ks qIDB, KSQL | No | Sì |
Supporto per i connettori OSS | Sì per i connettori Kafka e Flink | No |
Integrazione con data lake e data warehouse | Sì | Sì |