Choisir Pub/Sub ou Cloud Managed Service pour Apache Kafka

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