En 2014, los creadores de Apache Kafka fundaron la compañía Confluent con el objetivo de proporcionar soporte y capacidades añadidas “Enterprise” a la propuesta Kafka original. Desde esta fundación, como pionera de las plataformas de transmisión de eventos, ha impulsado la evolución de Apache Kafka y ha extendido y mejorado estas capacidades empresariales. A continuación, te contamos qué es Confluent y cómo ha ayudado a mejorar las capacidades nativas de Apache Kafka.
Qué es Confluent Platform
Se trata de una plataforma de streaming basada en Apache Kafka cuyo objetivo es ayudar a los diferentes roles en la organización en los proyectos de intercambio de información en tiempo real.
Para ello, desde un punto de vista de arquitectura tecnológica, mejora las capacidades nativas base de Apache Kafka en las siguientes perspectivas:
- Capacidades de Streaming Enterprise
- Conectividad y Gobierno del Dato
- Procesamiento Avanzado
- Monitorización y Gestión
- Seguridad
- Arquitecturas MultiSite y Apoyo en la evolución hacia el Cloud
Capacidades de Streaming Enterprise de Confluent
El componente central de la arquitectura es el Confluent Server. Este componente, utilizando la tecnología de Apache Kafka, va a establecer el núcleo de coordinación de gestión de eventos en tiempo real.
Es capaz de:
- Integrar fuentes productoras y consumidoras de eventos de diferente naturaleza
- Gestionar las capacidades Real Time para transporte de altos volúmenes de datos (Megabytes por segundo)
- Garantizar la resiliencia, escalabilidad y secuencialidad en la transferencia de eventos.
- Colaborar con el resto de los componentes de arquitectura para la gestión de los metadatos, la distribución de carga dentro del clúster.
Mediante Confluent Server se consiguen maximizar las capacidades de Streaming:
Conectividad y Gobierno del Dato
Confluent Platform simplifica la conectividad con productores y consumidores de información mediante un conjunto de más de 200 conectores pre-construidos soportados y verificados que acortan el tiempo de despliegue de la plataforma y garantizan su funcionamiento.
La solución de ingesta está basada en Kafka Connect y los Conectores Desarrollados/Verificados por Confluent. Estos conectores son aplicaciones desarrolladas y mantenidas por Confluent que facilitan la lectura y escritura de sistemas terceros más habitualmente utilizados como Flume, S3, Splunk, HDFS, Oracle, ficheros, SAP Hana, Snowflake, MongoDB, IBM MQ, Mainframe… (más de 200).
La ingesta de eventos está integrada con otro de los componentes de Confluent Platform, Confluent Schema Registry, repositorio inteligente de esquemas compatible con Avro, JSON y Protobuf, que permite la validación de mensajes mejorando el desacople de productor/consumidor incorporando la capacidad de establecer “contratos” (estructuras pactadas) entre los mismos.
La plataforma Confluent a través de los Conectores y Confluent Schema Registry habilita capacidades de:
- Trabajo en paralelo para mejora del rendimiento
- Escalado vertical y horizontal transparente y automático
- Recuperación de errores integrada que además garantiza la entrega evitando la perdida de datos y evitar duplicados a través del mecanismo “exactly-once”.
Procesamiento y Transformación Avanzados
Confluent Platform aporta capacidades avanzadas de transformación de la información en vuelo gestionada durante su transporte.
Para ello, mejora la capacidad base de Apache Kafka basada en desarrollo de código de transformación, proponiendo el uso del componente Confluent ksqlDB como motor de transformación, filtrado y enriquecimiento durante el transporte de la información.
Confluent ksqlDB es un módulo para diseñar transformaciones en la información durante su transporte. Su utilización está al alcance a todos los usuarios gracias al uso de lenguaje SQL.
Es una alternativa más rápida y fiable para el desarrollo que las tradicionales técnicas basadas en herramientas ETL, ya que, además de ser SQL un lenguaje descriptivo y conocido por los usuarios, Confluent ksqlDB incluye scripting propio muy simple e integrable con sistemas de CI/CD.
Confluent ksqlDB no solo es una herramienta de procesamiento sino también de consulta o data Discovery. Es habitual dar acceso a usuarios de negocio/consumidores para identificar eventos o información relevante para su negocio que Confluent transporta en tiempo real.
Es Importante destacar que ksqlDB será capaz de gestionar grandes volúmenes de datos, siento la solución de procesamiento en Streaming con las latencias más bajas y capacidades más altas proporcionando escalabilidad tanto vertical como horizontal, sin impactar al servicio.
Adicionalmente, Confluent mejora la propuesta de recuperación ante fallo de Apache Kafka a través de la implementación de un sistema embebido automático de Disaster Recovery que permite, tras una caída, que otro nodo continúe de forma automática con el trabajo o la tarea interrumpida en caso de “desastre”.
Monitorización y Gestión
Confluent Platform incorpora Confluent Control Center como herramienta única de gestión y monitorización del sistema de Streaming en Tiempo Real.
A través de él se dispone de una única aplicación web donde gestionar y monitorizar todos los aspectos relativos al despliegue de Confluent Platform, tanto en escenarios diseñados con clústeres únicos como en escenarios multicluster on-prem, SaaS o híbridos.
Confluent Control Center permite, tanto los desarrolladores como los operadores, la gestión completa de:
- Mensajes, tópicos y esquemas
- Desarrollo en KSQL
- Gestión de Seguridad, accesos y permisos
- Despliegue de conectores para recuperar información de Productores y Consumidores
- Monitorización y gestión de alarmas sobre el uso de tópicos, consumidores/productores y brokers.
Seguridad en Confluent
La seguridad es una pieza fundamental en cualquier despliegue “Enterprise” para el intercambio de información.
Por ello, Confluent Platform provee la capacidad de securizar la plataforma End to End, siendo capaces de cifrar todo el tráfico, así como autenticar y autorizar todas las operaciones de componentes y clientes involucrados en la arquitectura de Streaming de forma integrada con sistemas como Kerberos y LDAP.
Además, Confluent Platform facilita la gestión de dichos permisos gracias a un sistema de Roles y Perfiles (Rol Based Access Control – RBAC), así como la capacidad de auditar de forma simple las acciones/eventos que ocurren en la plataforma tanto a nivel de gestión como de consumo/publicación de datos.
Arquitecturas MutiSite y Apoyo en la evolución hacia el Cloud
Hoy en día la mayoría de soluciones de Streaming de Eventos basadas en Confluent Kafka no se limitan a un solo entorno de operación o centros de datos. Es muy habitual la existencia de varios entornos operativos donde se realiza el Streaming, así como varias opciones de arquitectura: OnPrem, Cloud o Híbrida.
Por ello, Confluent Platform permite el montaje simple de arquitecturas complejas extendiendo las capacidades base de la versión Open Source de Kafka gracias a 2 módulos o capacidades:
- Confluent Replicator
- Confluent Multi Región Clúster que permiten gestionar un único cluster lógico en el cual los centros de datos viven en zonas alejadas
Con estas facilidades aportadas por Confluent, una arquitectura Single-Tenant puede evolucionar de forma muy simple a una arquitectura Multi-Tenant o ayudar en un posible movimiento hacia la nube, donde la convivencia de entornos OnPrem y Cloud simultáneamente es una necesidad utilizando Confluent Replicator.
Esta arquitectura Confluent es clave y suele usarse de referencia cuando hay una necesidad de disponibilizar los datos a sistemas on prem o para servir a un entorno multi cloud. El procesamiento puede requerir de:
- Enrutado simple, por encontrarse productores y consumidores distante geográficamente
- Añadir un enriquecimiento o una transformación al transporte para simplificar el consumo por los sistemas destino
- Simplemente añadir un filtrado que nos ayude a llevar a la nube, o un sistema externo de relación, un subconjunto de la información gestionada, para facilitar o democratizar su consumo por agentes o sistemas externos.
En hiberus tecnología somos partners de Confluent y contamos con un equipo de expertos en Microservicios con amplio conocimiento y experiencia en plataformas, herramientas y tecnologías como Apache Kafka. Contacta con nosotros y te ayudaremos a cumplir tus objetivos de negocio.
¿Quieres más información sobre nuestra área de Microservicios?
Contacta con nuestro equipo de Microservicios