Opciones en el ecosistema Kafka
Comenzamos una serie de artículos en la que nos sumergiremos en el mundo de Kafka y analizaremos en detalle las opciones que existen.
A la hora de seleccionar un vendor de Kafka, las opciones son numerosas y cada una tiene sus propias ventajas y características únicas, ya sea que estés buscando una solución completamente administrada en la nube o que prefieras tener un mayor control sobre tu infraestructura.
En esta serie de posts, analizaremos algunos de los principales vendors de Kafka disponibles en el mercado. Detallaremos aspectos relevantes que te ayudarán a tomar la mejor decisión para tu proyecto:rendimiento, escalabilidad, facilidad de uso y compatibilidad con otras tecnologías. Además, proporcionaremos ejemplos prácticos y casos de uso reales para ayudarte a comprender cómo se desempeñan en situaciones del mundo real.
Al final, contarás con toda la información necesaria para seleccionar el vendor de Kafka que mejor se ajuste a tus necesidades y aprovechar al máximo las capacidades de Kafka en tu entorno.
Por qué Kafka: opciones y coste asociado
En la actualidad despierta mucho interés todo lo referente a las arquitecturas orientadas a eventos, en tiempo real y en general todo lo referente a Kafka y proveedores de soluciones sobre Kafka. Existen multitud de casos de uso en los que podemos aplicar estas arquitecturas y tecnologias: mensajería, integración de datos, procesamiento de datos en tiempo real o integración de sistemas, por ejemplo.
ChatGPT tiene su opinión:
También es una tendencia en la industria:
fuente: https://stacktrends.dev/technologies/data-processing/
Pero muchas veces nos encontramos con que la principal barrera para la adopción de los paradigmas de eventos es su coste asociado. Este es objetivamente alto en comparación con los paradigmas tradicionales, y hace que se convierta en la principal barrera para dar el paso.
Si la infraestructura de tu empresa no es compleja y no tiene grandes cantidades de datos que procesar, podría ser más rentable mantener la infraestructura actual. Sin embargo, si estás creciendo y necesitas procesar grandes cantidades de datos en tiempo real, podrías considerar Kafka como una buena opción a largo plazo.
Si tu presupuesto es limitado, es importante tener en cuenta que Kafka es una plataforma open source y puedes descargarlo e instalarlo de forma gratuita. Además, Kafka escala de forma horizontal permitiendo utilizar hardware de menor coste.
Kafka open source no requiere el pago de una licencia. Sin embargo, puede haber costes asociados a la implementación y administración de la plataforma, como la necesidad de contratar personal capacitado en Kafka y/o la infraestructura de hardware para alojar y procesar los datos. Si optas por una versión propietaria de Kafka, es posible que tengas que pagar una licencia o una suscripción. Además, puede haber costes adicionales asociados con los servicios y herramientas que ofrecen los proveedores.
También puedes considerar las opciones cloud que ofrecen soluciones de Kafka serverless, a priori una opción más rentable y fácil de implementar.
Por qué elegir un vendor Kafka
Kafka es un proyecto open source bajo la Apache Software Foundation. Como tal, Kafka es gratuito y está disponible para utilizar y personalizar. Kafka es una tecnología ampliamente utilizada y la versión de código abierto tiene una gran comunidad de usuarios y desarrolladores que la respaldan. Por otro lado, hay proveedores que ofrecen versiones propietarias de Kafka que tienen características y funcionalidades adicionales y que incluyen herramientas y servicios extra. Estos proveedores pueden ofrecer soporte técnico y servicios de consultoría para ayudar a sus clientes a implementar y administrar sus instalaciones de Kafka.
La elección entre Kafka de código abierto y Kafka propietario depende de cada compañia. Si tu empresa tiene los recursos y el conocimiento para administrar y personalizar una instalación de Kafka open source, puede ser la mejor opción. Kafka open source también puede ser una buena opción para experimentar o para cubrir necesidades no muy complejas de procesamiento de datos en tiempo real.
Sin embargo, si tus requisitos son complejos o si necesitas un soporte técnico, o incluso herramientas que te faciliten el dia a dia del desarrollo o la administración de la plataforma, una versión propietaria de Kafka puede ser la mejor opción. Este tipo de soluciones pueden ofrecerte herramientas que se ajusten a tus necesidades. De esta manera puedes centrarte en el negocio y no en la administración de tecnología.
En resumen, ambas opciones tienen sus ventajas y desventajas. Si tu empresa tiene los recursos y el conocimiento, Kafka open source puede ser la mejor opción. Si no es así, puede valer la pena considerar una versión propietaria de Kafka.
Alternativas Kafka
En el mercado existe una amplia variedad de soluciones que implementan el API Kafka. Estás serían las principales variantes de Kafka:
-
Soluciones propietarias basadas en Kafka open source para despliegues on-premise o cloud: se basan en Kafka y proveen de herramientas adicionales para el desarrollo, operaciones, monitorización, seguridad, etc. La madurez de las herramientas, el nivel de soporte y experiencia varía mucho según la plataforma.
- Confluent Platform, RedHat AMQ Streams
-
Cloud gestionadas: proporcionan una infraestructura más elástica, escalable y automatizada.
- Productos basados en Kubernetes on-premise o cloud: Confluent Platform, Cloudera DataFlow, RedHat AMQ Streams.
- Soluciones cloud propietarias: Amazon MSK, Aiven.
-
Kafka As a Service:
Fuentes:
https://www.kai-waehner.de/blog/2022/12/21/data-streaming-landscape-2023/
Conclusión
En resumen, en este primer capítulo hemos dado un vistazo superficial a las distintas opciones de vendors de Kafka que existen en el mercado. Hemos comprendido la importancia de elegir un vendor que se ajuste a nuestras necesidades y hemos comenzado a explorar las características generales de cada uno.
En los próximos artículos de esta serie, nos sumergiremos en un análisis más detallado de cada opción. Profundizaremos en aspectos como rendimiento, escalabilidad, facilidad de uso, compatibilidad con otras tecnologías y otros aspectos importantes.
Como adelanto, el segundo artículo de esta serie profundizará en las ventajas y desventajas de elegir entre dos de las plataformas Kafka más competitivas: Confluent Platform y Red Hat AMQ Streams