Confluent Platform y Red Hat AMQ Streams
Introducción
En Mimacom tenemos abiertos varios casos de estudio en los que hemos analizado o estamos analizando distintas opciones de plataformas Kafka o compatibles con el protocolo Kafka: Kafka opensource, Conduktor, Solace PubSub+, RedPanda, etc. (Para más información sobre este tema puedes visitar la primera parte de este artículo)
Recientemente realizamos un estudio de Confluent Platform y Red Hat AMQ Streams con el objetivo de determinar cuáles eran los puntos fuertes de cada plataforma y en qué casos sería recomendable cada opción. En ese estudio, evaluamos detalladamente cómo cada tecnología se integra y mejora casos de uso en con altos estándares de seguridad de la información. Los puntos críticos eran autenticación, autorización, cifrado, gestión de claves, etc.
Confluent Platform
- Centrado en event streaming
- De los creadores de Kafka
- El origen de la mayor parte de los commits de Kafka
- Siempre la última versión de Kafka y soporte completo
- Ecosistema de herramientas Kafka (conectores, gobierno, seguridad, etc.)
- Permite construir arquitecturas híbridas
- Agnóstico a infraestructura
- Integrado en los principales marketplaces cloud (AWS, GCP, Azure)
Red Hat AMQ Streams
- Centrado en la infraestructura (principalmente con Linux y Kubernetes)
- Kafka está disponible como parte del ecosistema de productos Red Hat AMQ Streams, junto a otros productos open source como ActiveMQ o Camel
- Integración con Kubernetes a través de Strimzi
- Basado en productos open source
- Colaboración activa con la comunidad (Debezium para CDC y el operador de Strimzi Kubernetes)
- Permite construir arquitecturas híbridas (La versión OpenShift de Kafka es casi serverless)
- Asociación e integración con proveedores cloud (AWS, GCP, Azure)
Es necesario contar con una suscripción de Red Hat que incluya Red Hat AMQ Streams. Algunas de las suites de Red Hat que lo incluyen son Red Hat Integration, Red Hat Middleware y Red Hat OpenShift Application Runtimes.
- Red Hat Integration: incluye tecnologías de integración, Red Hat AMQ, Red Hat Fuse y Red Hat 3scale API Management.
- Red Hat Application Foundations: incluye Red Hat AMQ Streams, Red Hat Fuse Online y Red Hat Single Sign-On.
Confluent Kafka: Pros & Cons
PROS | CONS |
---|---|
Coste operacional menor | Coste de licencia |
Soporte especializado | Versión gratuita con restricciones Community edition |
Integración con RBAC | En Cloud hay algunas restricciones de seguridad respecto a la versión platform |
Integración con secrets | |
Soporte para DR con Multi-Region clusters y Cluster Linking | |
Elasticidad con Self-Balancing Clusters | |
AuditLogs | |
Low code con KsqlDB y C3 | |
Librerías aceleradoras y seguimiento del fabricante | |
La version Cloud está disponible en los marketplaces de Azure, GCO y AWS |
Red Hat AMQ Streams: Pros & Cons
PROS | CONS |
---|---|
Operador basado en Strimzi | Mayor coste operacional |
Coste de licencia en base a licenciamiento de infraestructura | Soporte menos especializado en herramientas en las que no está implicado Red Hat |
Basado en herramientas open source | No incluye herramientas low-code |
Forma parte de una suite de herramientas mayor | Requiere de mayor operativa manual en operaciones de mantenimiento |
Integrado con otras herramientas de OpenShift | Soporte de DR y HA basado en MirrorMaker 2, requiere de un cluster dedicado de Kafka Connect |
Mayor catálogo de compatibilidades y estándares de validación de esquemas basado en Apicurio. | |
Integración con Camel Out-of-the-box y Kamelets. | |
Integración con OPA como sistema de autorización e integración con autenticación SSO de RedHat |
Comparativa
En la comparativa entre Confluent Platform y Red Hat AMQ Streams hemos evaluado varios aspectos importantes:
- Escalabilidad
- Seguridad
- Opciones de gobierno
- Facilidad de instalación
- Calidad de soporte
- Coste
Ambas plataformas ofrecen soluciones escalables y seguras. Confluent Platform destaca por su facilidad de uso y catálogo de componentes, como replicación de datos, transformación de datos y herramientas de monitorización. Por otra parte, el modelo de licencias de Confluent Platform es flexible, con opciones gratuitas o de pago.
Por otro lado, Red Hat AMQ Streams es compatible con una amplia lista de plataformas y herramientas, lo que te puede hacer ahorrar tiempo y costes de implantación si lo comparas con Confluent Platform. Además, su licencia puede ser más económica.
En cuanto a la facilidad de instalación y soporte técnico, ambas plataformas son sencillas de instalar, siendo Confluent la que cuenta con un soporte técnico más completo.
CONCLUSIONES
Coste operacional
La implantación y la administración de Apache Kafka son tareas complejas que es probable que no sean el negocio de tu empresa. Es una necesidad dada por la tecnología. Gestionar Kafka puede parecer una buena idea al principio si quieres gobernar tu propia plataforma Kafka, pero el resultado es una gran sobrecarga operativa.
Por ejemplo: en una plataforma Kafka onpremise tienes que realizar el dimensionamiento, el provisionamiento, el escalado y el mantenimiento manual del clúster de Kafka.
Lo siguiente es el coste total del mantenimiento. Para esto debemos tener varios factores en cuenta:
- Desarrollos
- Operaciones
- Futuras iteraciones, correcciones de errores, mejoras y escalado.
- Costes de infraestructura
Reducir los costes relacionados con riesgos p.ej: disponibilidad, degradaciones del servicio y problemas de seguridad (menos probables con un servicio totalmente administrado - serverless). Estos riesgos pueden ser difíciles de cuantificar, pero es importante que los tengas en cuenta.
En resumen, el coste operativo es probablemente el más alto cuando operas una plataforma Kafka. Pero tienes que compararlos con otros aspectos que también son importantes como el coste del gobierno de la plataforma o la experiencia previa en la gestión de una plataforma con un proveedor u otro para poder valorarlo en conjunto.
Si bien es cierto que objetivamente el coste de operación sería menor en la opción de la Confluent Platform, tienes que valorar la experiencia y la infraestructura que ya dispones en el entorno OpenShift.
Madurez de plataforma
Por plataforma Kafka, entendemos que estamos hablando de Kafka y todos los componentes proporcionados por el proveedor para facilitar el gobierno, la administración, la seguridad, etc. Sin embargo, la cohesión entre todas las partes no es la misma entre las opciones comparadas.
Confluent es la compañía que creó Kafka, pero también desarrolla multitud de componentes y herramientas. Con este conocimiento, Confluent Platform es un producto fuertemente cohesionado. Confluent Platform es elástico y fácil de operar con CFK y herramientas como Cluster Linking y Self-Balancing Cluster.
Por otro lado, AMQ Streams trae out-of-the-box todos los componentes necesarios para desplegar, administrar y comenzar a implementar todos los flujos de negocio que los equipos de desarrollo necesiten. Además, es una gran ventaja el poder integrarse con el resto de las piezas en OpenShift que ya pueden existir en la empresa: SSO, Oauth2, etc. Pero cuando se trata de Kafka como plataforma, AMQ Streams no está tan cohesionado como Confluent. Para cada necesidad que desea resolver se utilizan soluciones open source utilizando Strimzi Operator para su gobierno: Apicurio, MirrorMaker2, Debezium, etc.
Esto no es malo por sí mismo, porque ayuda a la comunidad de Kafka a avanzar. Además, Red Hat está involucrado en Strimzi y Debezium, mejorando y acelerando su progreso. Pero la principal diferencia con Confluent Platform es el sentido de la plataforma: en Confluent Platform los componentes existentes han sido desarrollados con un objetivo de plataforma con un bajo coste operativo,y por personas que pertenecen a la misma empresa. Mientras que en AMQ Streams hay una serie de componentes utilizando Strimzi como unión, y que muchas veces requiere mucha operación manual.
Resumiendo, Confluent Platform es una plataforma bien engrasada y orientada a llenar los huecos de Kafka open source. El propósito de AMQ Streams es el mismo, pero basado en componentes open source independientes que pueden ser mejorados por Red Hat Integration.
Recomendación
Después de analizar todo los aspectos de la comparativa, llegamos a la conclusión de que Confluent Platform es la mejor opción si lo que necesitas es una plataforma Kafka mejorada. En cambio, AMQ Streams de Red Hat es diferente, ya que se basa en herramientas de código abierto para administrar la plataforma. Además, AMQ Streams forma parte de una suite más grande de integración de sistemas de Red Hat.
Por lo tanto, para que puedas tomar una decisión, es importante que consideres dos cosas:
- En qué medida estás integrado con las herramientas y el ecosistema de Openshift.
- Si necesitas utilizar todos los componentes incluidos en Confluent Platform (es posible que realmente no necesites todos).
PD: Sobre Kraft
Kraft es una nueva implementación del protocolo de replicación en Kafka, que se introdujo en la versión 2.4 de Apache Kafka. El protocolo anterior de replicación, basado en ZooKeeper, tenía limitaciones significativas en términos de escalabilidad y confiabilidad en entornos de producción a gran escala. Para el contexto de este artículo, hay que tener en cuenta que no es compatible con todas las distribuciones de Kafka ya que se publicó como productión ready en Octubre 2022.
Confluent Platform es compatible con Kraft, pero no está recomendado para entornos productivos y puede haber algunas limitaciones en cuanto a la configuración avanzada de Kafka relacionada con Zookeeper. Además, hay funcionalidades que directemante no son compatibles con Kraft, como Multi-Region-Clusters.
Red Hat AMQ Streams todavía no es compatible con Kraft. Hay configuraciones avanzadas que no son compatibles con Kraft.