Ce document vous aide à choisir entre Pub/Sub et Google Cloud Managed Service pour Apache Kafka. Pub/Sub et Managed Service pour Apache Kafka sont des services de messagerie gérés et évolutifs horizontalement, capables de gérer des charges de travail à volume élevé.
Ce document s'adresse aux développeurs, aux architectes ou aux décideurs qui recherchent un service géré pour gérer les charges de travail de données de streaming et de messagerie.
Il existe plusieurs options pour exécuter Apache Kafka, y compris les services partenaires et les logiciels Open Source autogérés. Ces options ne sont pas abordées dans ce document.
Pour obtenir une présentation des concepts de Pub/Sub, consultez Présentation du service Pub/Sub.
Pour obtenir une présentation des concepts de Managed Service pour Apache Kafka, consultez Présentation de Managed Service pour Apache Kafka.
Facilité d'utilisation opérationnelle par rapport à la portabilité
Le choix entre Pub/Sub et Managed Service pour Apache Kafka est un compromis entre la simplicité opérationnelle et la portabilité.
Simplicité opérationnelle de Pub/Sub
Pub/Sub est un service entièrement géré, sans serveur et distribué à l'échelle mondiale qui utilise l'infrastructure Google Cloud . Il s'adapte automatiquement pour gérer votre charge de travail. Vous n'avez donc pas à vous soucier de la gestion de l'infrastructure. Pub/Sub ajuste dynamiquement la capacité des sujets et des abonnements individuels. Les éditeurs et les abonnés peuvent évoluer indépendamment, non seulement pour différents sujets et abonnements, mais aussi au sein des mêmes.
Pub/Sub transfère également les données de manière fluide entre plusieurs régions. Cela signifie que les éditeurs et les abonnés peuvent se connecter à la région la plus proche, et que le service s'occupe du reste.
Managed Service pour Apache Kafka peut également gérer de grands volumes de données. Toutefois, vous devez gérer la taille du cluster et configurer plusieurs autres propriétés en fonction des besoins de scaling de vos thèmes. Plus important encore, vous devez tenir compte du nombre de partitions à attribuer à vos thèmes. Un trop grand nombre de partitions peut gaspiller des ressources. Un nombre trop faible de partitions peut surcharger les brokers de votre cluster Kafka. Vous devez également tenir compte du nombre de répliques à configurer par partition en fonction de vos exigences en termes de latence et de fan-out des consommateurs.
Étant donné qu'un déploiement Kafka est lié à une région spécifique, si vous déplacez des données d'une région à une autre, ce déplacement doit avoir lieu en dehors du service. Assurer la continuité de l'état du transfert de données et répondre aux besoins des sujets de votre cluster Kafka ajoute du travail opérationnel.
Portabilité de Managed Service pour Apache Kafka
Bien que l'autoscaling et la distribution mondiale des données de Pub/Sub facilitent son fonctionnement, les API Apache Kafka sont beaucoup plus largement adoptées.
Si vous prévoyez d'utiliser des systèmes de messagerie indépendants dans différents environnements sur site ou de fournisseur de cloud, Managed Service pour Apache Kafka peut vous offrir une expérience plus cohérente dans vos applications. En effet, vous pouvez standardiser Kafka et utiliser la même API pour communiquer avec le service Kafka dans chaque environnement.
Bien que vous puissiez utiliser Pub/Sub comme système de messagerie centralisé dans tous vos environnements, il est important de se rappeler qu'il s'agit d'un service distinct avec sa propre API. Si vous devez interagir avec un système de messagerie pour un environnement spécifique, l'utilisation de Managed Service pour Apache Kafka peut offrir une expérience de développement plus unifiée.
Quel service vous convient le mieux ?
Si une expérience cohérente dans différents environnements est primordiale, choisissez Managed Service pour Apache Kafka. Si vous souhaitez minimiser la configuration pour mettre à l'échelle les charges de travail ou déplacer des données entre les régions, Pub/Sub offre un avantage considérable.
Choisissez Pub/Sub si les facteurs suivants décrivent vos exigences :
Vous privilégiez la simplicité opérationnelle dans Google Cloud.
Vous avez besoin d'une solution évolutive et sans serveur avec une gestion des frais généraux minimale.
La taille de vos charges de travail est imprévisible ou changeante. Pub/Sub fonctionne également très bien lorsque le débit de charge de travail est stable.
Vous avez besoin d'un suivi du traitement par message pour minimiser les effets du pipeline dus à des messages incorrects. Grâce à ses files d'attente de lettres mortes (DLQ) intégrées et à sa compatibilité avec le traitement des messages hors séquence, Pub/Sub permet à votre système de rester opérationnel même en cas de messages problématiques.
Vous avez besoin d'agréger les données entre les régions.
Vous avez besoin d'un scaling indépendant pour les éditeurs et les abonnés.
Choisissez Managed Service pour Apache Kafka si les facteurs suivants décrivent vos besoins :
La portabilité entre plusieurs fournisseurs de services cloud ou environnements sur site est essentielle.
Vous disposez de charges de travail Kafka existantes que vous souhaitez migrer versGoogle Cloud. Pour en savoir plus, consultez Choisir en fonction de la configuration Kafka existante.
Votre volume de trafic est constant et ne varie pas beaucoup.
Vous êtes prêt à gérer la capacité.
Vous avez besoin d'un tri des messages à haut débit par clé.
Vous souhaitez utiliser le modèle d'event sourcing avec un journal d'événements comme source de vérité.
Choisissez en fonction de la configuration Kafka existante.
Si vous utilisez déjà Kafka et que vous recherchez une solution gérée, sécurisée et fiable sur Google Cloud, nous vous recommandons Managed Service pour Apache Kafka.
Si vous exécutez déjà Kafka et que vous êtes prêt à réécrire vos applications pour profiter des avantages d'un service mondial, autoscalable et hautement évolutif, Pub/Sub est une bonne recommandation. Pour migrer de Kafka vers Pub/Sub, consultez Migrer de Kafka vers Pub/Sub.
Pour les nouvelles charges de travail ou les nouveaux utilisateurs du streaming sur Google Cloud, nous recommandons Pub/Sub en raison de sa facilité d'utilisation. Si vous souhaitez migrer vos charges de travail Kafka existantes vers le cloud en apportant un minimum de modifications au code, Managed Service pour Apache Kafka est le choix idéal.
Intégration aux produits Cloud
Google Managed Service pour Apache Kafka et Pub/Sub s'intègrent à divers services Google Cloud tels que Dataflow, BigQuery, Cloud Storage, etc.
Si vous avez besoin d'une stratégie multicloud et que vous privilégiez la portabilité entre différents fournisseurs de services cloud, Managed Service pour Apache Kafka offre une plus grande flexibilité. En effet, Kafka s'intègre à un plus grand nombre de systèmes en dehors de Google Cloud que Pub/Sub.
Comparatif des fonctionnalités
Si les critères de décision généraux des sections précédentes ne vous aident pas, vous pouvez faire votre choix en fonction de la compatibilité avec des fonctionnalités spécifiques. Pour une comparaison détaillée entre les deux produits, consultez le tableau ci-dessous.
| Fonctionnalité | Pub/Sub | Managed Service pour Apache Kafka |
|---|---|---|
| Simplicité d'utilisation | Plus facile à configurer et à gérer | Nécessite plus d'efforts opérationnels |
| Modèle de coûts | Payant | Paiement à la capacité pour le calcul Paiement à l'utilisation pour la mise en réseau et le stockage. |
| Traitement de type "exactement une fois" | Compatible avec la diffusion simultanée unique et la sémantique d'accusé de réception fort. | Prend en charge les effets secondaires de type "exactement une fois" lors de la lecture d'un sujet et de l'écriture dans un autre. |
| Scaling | Autoscaling fluide de Ko à Go par seconde et par thème, qui fonctionne même pour les charges de travail imprévisibles. | Nécessite une configuration manuelle |
| Livraison commandée | Permet un classement par clés. 1 Mbit/s de débit par clé de tri précise |
Permet de trier les éléments dans les partitions. Classement par partition jusqu'à la capacité de débit d'une partition. |
| Conservation des données | 31 jours | Conservation indéfinie |
| Latence de bout en bout | Latence de bout en bout généralement de l'ordre de 100 millisecondes | Généralement de l'ordre de 10 millisecondes pour les abonnés qui se comportent correctement. |
| Compatibilité avec Kafka Open Source pour le lift and shift | Non | Oui |
| Identity and Access Management et sécurité | Oui | Oui |
| Configuration automatique du réseau | Oui | Oui |
| Multicloud : identique dans tous les clouds | Non | Oui |
| SLA de disponibilité | Oui | Oui |
| SLA du plan de données | Oui | Pas pour le moment. |
| Journalisation et surveillance | Oui | Oui |
| Rééquilibrage des partitions entre les courtiers | Non applicable | Oui |
| Capacité automatique | Pub/Sub ajuste dynamiquement la capacité en fonction du taux de messages entrants et de la demande des abonnés. | Le service gère l'infrastructure sous-jacente, comme les VM et le stockage. Vous contrôlez des aspects tels que le nombre de partitions et le facteur de réplication. |
| Gestion automatique de l'espace de stockage | Oui | Oui |
| Mises à niveau logicielles automatiques | Oui | Oui |
| Service client | Oui | Oui |
| Service Kafka Connect | Non applicable | Avec les services Connect fournis par l'utilisateur |
| Compatibilité avec les schémas | Oui | Avec un registre de schémas fourni par l'utilisateur |
| Compatible avec ks qIDB, KSQL | Non | Oui |
| Compatibilité avec les connecteurs OSS | Oui pour les connecteurs Kafka et Flink | Non |
| Intégration avec un lac de données et un entrepôt de données | Oui | Oui |