Elige Pub/Sub o el servicio administrado de Cloud para Apache Kafka

En este documento, se te guía para elegir entre Pub/Sub y Google Cloud Managed Service para Apache Kafka. Tanto Pub/Sub como el Servicio administrado para Apache Kafka son servicios de mensajería administrados y escalables de forma horizontal que pueden controlar cargas de trabajo de gran volumen.

Este documento está dirigido a desarrolladores, arquitectos o tomadores de decisiones que buscan un servicio administrado para controlar cargas de trabajo de transmisión de datos y mensajería.

Existen varias opciones para ejecutar Apache Kafka, incluidos los servicios de socios y el software de código abierto autoadministrado. En este documento, no se abordan esas opciones.

Para obtener una descripción general de los conceptos de Pub/Sub, consulta Descripción general del servicio de Pub/Sub.

Para obtener una descripción general de los conceptos del Servicio administrado para Apache Kafka, consulta la descripción general del Servicio administrado para Apache Kafka.

Facilidad operativa frente a portabilidad

La elección entre Pub/Sub y Servicio administrado para Apache Kafka es una compensación entre simplicidad operativa y portabilidad.

La simplicidad operativa de Pub/Sub

Pub/Sub es un servicio totalmente administrado, sin servidores y distribuido a nivel mundial que usa la infraestructura de Google Cloud . Se escala automáticamente para controlar tu carga de trabajo, por lo que no tienes que preocuparte por administrar la infraestructura. Pub/Sub ajusta de forma dinámica la capacidad para temas y suscripciones individuales. Los publicadores y suscriptores pueden escalar de forma independiente, no solo en diferentes temas y suscripciones, sino también dentro de los mismos.

Pub/Sub también transfiere datos sin problemas entre varias regiones. Esto significa que los publicadores y suscriptores pueden conectarse a su región más cercana, y el servicio se encarga del resto.

El servicio administrado para Apache Kafka también puede manejar grandes volúmenes de datos. Sin embargo, debes administrar el tamaño del clúster y configurar varias otras propiedades según las necesidades de escalamiento de tus temas. Lo más importante es que debes considerar la cantidad de particiones que asignarás a tus temas. Demasiados particiones pueden desperdiciar recursos. Si hay pocas particiones, se puede sobrecargar los agentes de tu clúster de Kafka. También debes considerar la cantidad de réplicas que debes configurar por partición según tus requisitos de latencia y fan-out de consumidores.

Como una implementación de Kafka está vinculada a una región especificada, si mueves datos entre regiones, ese movimiento de datos debe ocurrir fuera del servicio. Garantizar el estado continuo del movimiento de datos y satisfacer las necesidades de los temas en tu clúster de Kafka se suma a tu trabajo operativo.

Portabilidad del servicio administrado para Apache Kafka

Si bien el ajuste de escala automático y la distribución global de datos de Pub/Sub facilitan su operación, las APIs de Apache Kafka son mucho más populares.

Si planeas usar sistemas de mensajería independientes en diferentes entornos locales o de proveedores de servicios en la nube, el servicio administrado de Apache Kafka puede brindarte una experiencia más coherente en todas tus aplicaciones. Esto se debe a que puedes estandarizar en Kafka y usar la misma API para comunicarte con el servicio de Kafka en cada entorno.

Si bien puedes usar Pub/Sub como un sistema de mensajería central en todos tus entornos, es importante recordar que es un servicio distinto con su propia API. Si necesitas interactuar con un sistema de mensajería para un entorno específico, usar el servicio administrado para Apache Kafka podría ofrecer una experiencia de desarrollo más unificada.

Qué servicio es adecuado para ti

Si la experiencia coherente en diversos entornos es fundamental, elige el servicio administrado para Apache Kafka. Si tu objetivo es lograr una configuración mínima para escalar cargas de trabajo o el movimiento de datos entre regiones, Pub/Sub ofrece una ventaja convincente.

Elige Pub/Sub si los siguientes factores describen tus requisitos:

  • Priorizas la simplicidad operativa en Google Cloud.

  • Necesitas una solución escalable y sin servidores con una administración mínima de la sobrecarga.

  • Tienes tamaños de carga de trabajo impredecibles o cambiantes. Pub/Sub también funciona muy bien cuando la capacidad de procesamiento de la carga de trabajo es estable.

  • Necesitas un seguimiento del procesamiento por mensaje para minimizar los efectos de la canalización debido a mensajes incorrectos individuales. Pub/Sub, con sus colas de mensajes devueltos (DLQ) integradas y la compatibilidad con el procesamiento de mensajes fuera de orden, permite que tu sistema siga funcionando incluso cuando se encuentre con mensajes problemáticos.

  • Necesitas la agregación de datos entre regiones.

  • Necesitas un escalamiento independiente de publicadores y suscriptores.

Elige el servicio administrado para Apache Kafka si los siguientes factores describen tus requisitos:

  • La portabilidad entre varios proveedores de servicios en la nube o entornos locales es fundamental.

  • Tienes cargas de trabajo de Kafka existentes que deseas migrar aGoogle Cloud. Para obtener más información, consulta Elige según la configuración de Kafka existente.

  • Tienes un volumen de tráfico constante sin muchas variaciones.

  • Tienes la capacidad de administrar la capacidad.

  • Necesitas el ordenamiento de mensajes con una alta capacidad de procesamiento por clave.

  • Quieres usar el patrón de aprovisionamiento de eventos con un registro de eventos como fuente de confianza.

Elige según la configuración de Kafka existente

Si ya usas Kafka y buscas una solución administrada, segura y confiable en Google Cloud, Managed Service para Apache Kafka es la opción recomendada.

Si ya ejecutas Kafka y deseas reescribir tus aplicaciones para obtener los beneficios de un servicio global altamente escalable y con escalamiento automático, Pub/Sub es una buena recomendación. Para migrar de Kafka a Pub/Sub, consulta Cómo migrar de Kafka a Pub/Sub.

Para cargas de trabajo nuevas o usuarios que se inician en la transmisión en Google Cloud, se recomienda Pub/Sub por su facilidad de uso. Si deseas mover tus cargas de trabajo de Kafka existentes a la nube con cambios mínimos en el código, el servicio administrado para Apache Kafka es la opción ideal.

Integración con productos de Cloud

Tanto el Servicio administrado de Google para Apache Kafka como Pub/Sub se integran en varios servicios de Google Cloud , como Dataflow, BigQuery, Cloud Storage y muchos más.

Si necesitas una estrategia de varias nubes y priorizas la portabilidad entre diferentes proveedores de servicios en la nube, el servicio administrado para Apache Kafka ofrece una mayor flexibilidad. Esto se debe a que Kafka se integra con una gama más amplia de sistemas fuera de Google Cloud en comparación con Pub/Sub.

Comparación de funciones

Si estos criterios de decisión de alto nivel de las secciones anteriores no te ayudan, puedes tomar una decisión en función de la compatibilidad con funciones específicas. Para ver una comparación detallada entre los dos productos, consulta la siguiente tabla.

Atributo Pub/Sub Servicio administrado para Apache Kafka
Facilidad de uso Son fáciles de configurar y mantener. Requiere más esfuerzo operativo
Modelo de costo Pago por uso Pago por capacidad de procesamiento

Pago por uso para las herramientas de redes y el almacenamiento

Procesamiento “exactamente una vez” Admite una sola entrega simultánea y semántica de confirmación sólida. Admite efectos secundarios de exactamente una vez cuando se lee de un tema y se escribe en otro.
Escalamiento Ajuste de escala automático sin interrupciones de KB a GB por segundo por tema que incluso funciona para cargas de trabajo impredecibles. Requiere configuración manual
Pedido a domicilio

Ofrece ordenamiento dentro de las claves.

Capacidad de procesamiento de 1 MBps por clave de ordenamiento detallado

Ofrece orden dentro de las particiones.

Ordenación por partición hasta la capacidad de procesamiento de una partición
Retención de datos 31 días Retención indefinida
Latencia de extremo a extremo Latencia de extremo a extremo, por lo general, del orden de 100 milisegundos Por lo general, es de alrededor de 10 milisegundos para los suscriptores que se comportan bien.
Compatibilidad de Kafka de código abierto para la migración No
Seguridad y Identity and Access Management
Configuración automática de red
Multinube: Es idéntica en todas las nubes. No
ANS de tiempo de actividad Yes
ANS del plano de datos Yes No en este momento
Registro y supervisión
Rebalanceo de particiones entre agentes No aplicable
Capacidad automática Pub/Sub ajusta la capacidad de forma dinámica en función de la frecuencia de mensajes entrantes y la demanda de los suscriptores. El servicio administra la infraestructura subyacente, como las VMs y el almacenamiento. Tú controlas aspectos como la cantidad de particiones y el factor de replicación.
Administración automática de almacenamiento
Actualizaciones de software automáticas
Atención al cliente
Servicio de Kafka Connect No aplicable Con servicios de Connect proporcionados por el usuario
Compatibilidad con el esquema Con el registro de esquemas proporcionado por el usuario
Compatible con ks qIDB y KSQL No
Compatibilidad con conectores de OSS Sí, para los conectores de Kafka y Flink No
Integración con el data lake y el almacén de datos