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 | 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 di uptime | 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 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 | Sì | Sì |
| Upgrade 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 per i connettori OSS | Sì, per i connettori Kafka e Flink | No |
| Integrazione con Data Lake e Data Warehouse | Sì | Sì |