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 tous deux des services de messagerie gérés et évolutifs horizontalement, capables de gérer des charges de travail importantes.
Ce document est destiné aux développeurs, architectes ou décideurs qui recherchent un service géré pour gérer les charges de travail de streaming de données et de messagerie.
Plusieurs options s'offrent à vous pour exécuter Apache Kafka, y compris des services partenaires et des logiciels Open Source autogérés. Ces options ne sont pas abordées dans ce document.
Pour obtenir une présentation des concepts Pub/Sub, consultez la section Présentation du service Pub/Sub.
Pour obtenir une présentation des concepts de Managed Service pour Apache Kafka, consultez la présentation de Managed Service pour Apache Kafka.
Facilité d'utilisation 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é dans le monde entier 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é pour des sujets et des abonnements individuels. Les éditeurs et les abonnés peuvent évoluer indépendamment, non seulement entre différents sujets et abonnements, mais aussi au sein des mêmes sujets et abonnements.
Pub/Sub transfère également facilement les données entre plusieurs régions. Cela signifie que les éditeurs et les abonnés peuvent se connecter à leur région la plus proche, et 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 sujets. Plus important encore, vous devez tenir compte du nombre de partitions à attribuer à vos sujets. Un trop grand nombre de partitions peut gaspiller des ressources. Un nombre insuffisant de partitions peut surcharger les brokers de votre cluster Kafka. Vous devez également tenir compte du nombre de réplicas que vous devez 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 associé à une région spécifiée, si vous déplacez des données entre des régions, ce déplacement doit se produire en dehors du service. Assurer la santé continue du transfert de données et répondre aux besoins des sujets de votre cluster Kafka ajoute à votre travail opérationnel.
Portabilité de Managed Service pour Apache Kafka
Bien que l'autoscaling et la distribution de données globale 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 chez des fournisseurs de services cloud, Managed Service for Apache Kafka peut vous offrir une expérience plus cohérente dans vos applications. En effet, vous pouvez normaliser 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 central dans tous vos environnements, il est important de garder à l'esprit 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 privilégiez une configuration minimale pour la mise à l'échelle des charges de travail ou le transfert de données interrégional, Pub/Sub offre un avantage intéressant.
Choisissez Pub/Sub si les facteurs suivants décrivent vos exigences:
Vous priorisez 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.
Vous avez des tailles de charge de travail imprévisibles ou changeantes. Pub/Sub fonctionne également très bien lorsque le débit de la 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 uniques. Pub/Sub, avec ses files d'attente de messages non distribués (DLQ) intégrées et la prise en charge du traitement des messages hors séquence, permet à votre système de rester opérationnel même en cas de messages problématiques.
Vous avez besoin d'une agrégation de données interrégionale.
Vous avez besoin d'une évolutivité indépendante pour les éditeurs et les abonnés.
Choisissez Managed Service pour Apache Kafka si les facteurs suivants décrivent vos exigences:
La portabilité entre plusieurs fournisseurs de services cloud ou environnements sur site est essentielle.
Vous souhaitez migrer des charges de travail Kafka existantes versGoogle Cloud. Pour en savoir plus, consultez la section Choisir en fonction de la configuration Kafka existante.
Vous enregistrez un volume de trafic constant sans grande variation.
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'approvisionnement basé sur les événements avec un journal des événements comme source de vérité.
Choisir 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, Managed Service pour Apache Kafka est la solution recommandée.
Si vous exécutez déjà Kafka et que vous êtes prêt à réécrire vos applications pour profiter des avantages d'un service global hautement évolutif et autoscalant, Pub/Sub est une bonne recommandation. Pour migrer de Kafka vers Pub/Sub, consultez la page Migrer de Kafka vers Pub/Sub.
Pour les nouveaux workloads ou les utilisateurs qui découvrent le streaming sur Google Cloud, nous vous recommandons d'utiliser Pub/Sub en raison de sa facilité d'utilisation. Si vous souhaitez migrer vos charges de travail Kafka existantes vers le cloud avec un minimum de modifications de 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 priorisez la portabilité entre différents fournisseurs cloud, Managed Service pour Apache Kafka offre une plus grande flexibilité. En effet, Kafka s'intègre à une plus grande variété de systèmes en dehors de Google Cloud que Pub/Sub.
Comparatif des fonctionnalités
Si ces critères de décision de haut niveau des sections précédentes ne vous aident pas, vous pouvez faire un choix en fonction de la prise en charge de fonctionnalités spécifiques. Pour une comparaison détaillée des deux produits, consultez le tableau suivant.
Caractéristique | Pub/Sub | Managed Service pour Apache Kafka |
---|---|---|
Simplicité d'utilisation | Facilité de configuration et de gestion | Nécessite plus d'efforts opérationnels |
Modèle de coûts | Payer à l'utilisation | Payer en fonction de la capacité de 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'acquittement forte. | Prend en charge les effets secondaires de type "exactement une fois" lors de la lecture à partir d'un sujet et de l'écriture dans un autre. |
Scaling | Autoscaling fluide de Ko à Go par seconde et par sujet, même pour les charges de travail imprévisibles. | Nécessite une configuration manuelle |
Commande avec livraison | Propose un tri au sein des clés. Débit de 1 Mo/s par clé de tri précise |
Propose un tri au sein des partitions. Tri par partition jusqu'à la capacité de débit d'une partition. |
Conservation des données | 31 jours | Conservation illimitée |
Latence de bout en bout | Latence de bout en bout généralement de l'ordre de 100 millisecondes | Elle est généralement de l'ordre de 10 millisecondes pour les abonnés respectueux. |
Compatibilité Open Source Kafka pour le lift and shift | Non | Oui |
Identity and Access Management, et sécurité | Oui | Oui |
Configuration réseau automatique | Oui | Oui |
Multicloud: identique dans tous les clouds | Non | Oui |
Contrat de niveau de service 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 brokers | Non applicable | Oui |
Capacité automatique | Pub/Sub ajuste de manière dynamique la capacité en fonction du débit des messages entrants et de la demande des abonnés. | Le service gère l'infrastructure sous-jacente, comme les VM et l'espace de stockage. Vous pouvez contrôler 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 des services Connect fournis par l'utilisateur |
Compatibilité avec les schémas | Oui | Avec un schéma Registry fourni par l'utilisateur |
Compatible avec ks qIDB, KSQL | Non | Oui |
Compatibilité avec les connecteurs Open Source | Oui pour les connecteurs Kafka et Flink | Non |
Intégration avec le lac de données et l'entrepôt de données | Oui | Oui |