Apache Kafka es una popular plataforma de streaming de eventos que sirve para recoger, procesar y almacenar datos de eventos de streaming o datos sin principio ni final concretos. Kafka posibilita una generación nueva de aplicaciones distribuidas que se pueden escalar para gestionar miles de millones de eventos de streaming cada minuto.
Hasta que surgieron los sistemas de streaming de eventos, como Apache Kafka y Google Cloud Pub/Sub, esos datos se solían procesar mediante tareas por lotes periódicas que, primero, almacenaban los datos en bruto y, luego, se ejecutaban a intervalos arbitrarios. Por ejemplo, una empresa de telecomunicaciones esperaba a que acabara el día, la semana o el mes para analizar los millones de registros de llamadas y calcular los cargos devengados.
Una de las limitaciones del procesamiento por lotes es que no se hace en tiempo real. Las empresas demuestran cada vez más interés por analizar los datos en tiempo real para tomar decisiones en el momento justo y medidas cuando ocurren hechos importantes. Siguiendo con el ejemplo anterior de la empresa de telecomunicaciones, le podría venir bien comunicar los cargos en tiempo real a los clientes para mejorar su experiencia global.
Ahí entra en escena el streaming de eventos, que consiste en procesar de forma continua flujos infinitos de eventos a medida que se crean. El objetivo es capturar el valor de tiempo de los datos, además de crear aplicaciones basadas en inserciones que realicen acciones cada vez que suceda un hecho de interés. Estos son algunos ejemplos de streaming de eventos: analizar continuamente los archivos de registro que generan las aplicaciones web para clientes; monitorizar el comportamiento de los clientes y reaccionar a sus actividades, como navegar por sitios web de comercio electrónico; hacer un seguimiento continuo de la opinión de los clientes analizando las variaciones en los datos de los flujos de clics que generan las redes sociales; o recoger los datos de telemetría que generan los dispositivos de Internet de las cosas y darles la respuesta adecuada.
Obtén información sobre el servicio gestionado de Google Cloud para Apache Kafka, que automatiza las operaciones y la seguridad de Kafka y facilita el envío de datos a BigQuery.
Obtén información sobre Confluent Cloud, la solución totalmente gestionada e integrada de Apache Kafka para Google Cloud.
¿Empezamos? Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Kafka analiza los datos de streaming y hace constar qué ha sucedido y cuándo con total exactitud en el denominado "registro de confirmación inmutable". Se considera inmutable porque, aunque se le puede añadir información, no se puede modificar de ningún otro modo. Puedes suscribirte al registro (acceder a los datos) y también publicar en él (añadir más datos) desde tantas aplicaciones de streaming en tiempo real como quieras, además de otros sistemas.
Por ejemplo, puedes utilizar Kafka para incorporar los flujos de datos de transacciones de tu sitio web a la aplicación que monitoriza las ventas de productos en tiempo real, las compara con las existencias y, si hace falta, ordena la reposición de inventario a tiempo.
Código abierto
Significa que el código fuente de Kafka está a disposición gratuita de quien quiera usarlo, modificarlo y distribuir su propia versión con cualquier fin. No hay ni licencia ni restricciones. Otra ventaja de Kafka es que recibe la colaboración y las aportaciones de una comunidad mundial de desarrolladores. Por eso ofrece una amplia gama de conectores, complementos y herramientas tanto de monitorización como de configuración como parte de un ecosistema que se amplía de manera constante.
Escalabilidad y rapidez
Kafka no solo se escala conforme aumentan los volúmenes de datos, sino que también reparte esos datos por toda la empresa en tiempo real. Otro punto fuerte de Kafka es que, al ser una plataforma distribuida, el procesamiento se divide entre varias máquinas físicas o virtuales. Eso reporta dos ventajas: una, con un poquito de trabajo, admite el escalado horizontal para añadir máquinas cuando hace falta más potencia de procesamiento o espacio de almacenamiento y, dos, ofrece fiabilidad porque la plataforma se sigue ejecutando aunque falle alguna máquina. No obstante, esta característica de Kafka puede resultar muy difícil de gestionar a escala.
Pese a todas sus ventajas, Kafka es una tecnología complicada de desplegar. Los clústeres de Kafka on‑premise son difíciles de configurar, escalar y gestionar en producción. Cuando montas la infraestructura on‑premise para ejecutar Kafka, tienes que aprovisionar máquinas y configurar la plataforma. También debes diseñar el clúster de máquinas distribuidas para asegurar la disponibilidad, comprobar que los datos están almacenados y protegidos, configurar la monitorización y prever el escalado de datos por si cambia la carga. Cuando ya has acabado, te tienes que ocupar del mantenimiento de esa infraestructura, sustituir las máquinas que fallan y llevar a cabo las tareas rutinarias de aplicación de parches y actualización.
No obstante, tienes una alternativa: utilizar Kafka como un servicio gestionado en la nube. En este caso, el proveedor se encarga de aprovisionar, crear y mantener la infraestructura de Kafka. Tú solo tienes que desarrollar y ejecutar las aplicaciones. Con este método no te cuesta tanto desplegar Kafka, ya que no necesitas conocimientos específicos sobre la gestión de su infraestructura. Dedicas menos tiempo a gestionar la infraestructura e inviertes más tiempo en generar valor para tu empresa.
Kafka permite procesar eventos de streaming por medio de cinco funciones principales:
Publicar
Las fuentes de datos pueden publicar o colocar flujos de eventos de datos en temas de Kafka o grupos de eventos de datos parecidos. Por ejemplo, puedes publicar los flujos de datos de un dispositivo de Internet de las cosas (como un router de red) en una aplicación que, gracias al mantenimiento predictivo, calcula cuándo es probable que falle ese dispositivo.
Consumir
Las aplicaciones se pueden suscribir a temas de Kafka o extraer datos de ellos y procesar el flujo de datos resultante. Por ejemplo, una aplicación puede extraer los datos de los flujos de varias redes sociales y analizarlos para determinar el cariz de las conversaciones online sobre una marca.
Progreso
La API de Kafka Streams puede funcionar como procesador de streaming: consume los flujos de datos procedentes de los temas y produce flujos de datos que se insertan en ellos.
Conectar
También puedes crear conexiones reutilizables de producción o consumo que vinculen los temas de Kafka con las aplicaciones disponibles. Puedes usar cientos de conectores, como los que vinculan con servicios tan esenciales como Dataproc o BigQuery, entre otros.
Comercio
Apache Kafka proporciona un espacio de almacenamiento duradero. Kafka puede funcionar como fuente de información veraz, ya que distribuye los datos por los distintos nodos para un despliegue de alta disponibilidad, tanto en un único centro de datos como en diferentes zonas de disponibilidad.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.