¿Alguna vez te has preguntado cómo plataformas como Netflix manejan miles de streams simultáneos o cómo Amazon coordina millones de pedidos al mismo tiempo? La respuesta está en herramientas como Apache Kafka en la nube, que gestionan datos en tiempo real con una precisión increíble.
El mundo actual se mueve en tiempo real, y Apache Kafka es una de las herramientas que hacen esto posible. Desde procesar pedidos en un e-commerce hasta manejar datos en videojuegos multijugador, Kafka transforma cómo las empresas gestionan grandes volúmenes de datos. En este post, te guiaremos sobre Apache Kafka en la nube para aprender a desplegar un clúster en Google Cloud Platform (GCP), conectarte a través de Kafka Magic, y explorar cómo Kafka revoluciona arquitecturas modernas.
¿Qué es Apache Kafka?
Apache Kafka es una plataforma distribuida de streaming de eventos que permite manejar flujos de datos en tiempo real. Su diseño se basa en la arquitectura Pub/Sub (publicador-suscriptor), donde:
- Los productores (producers) envían mensajes a un canal llamado tópico.
- Los consumidores (consumers) recuperan esos mensajes del tópico.
- Los datos se distribuyen y persisten en brokers, asegurando resiliencia y alta disponibilidad.
Es ideal para sistemas que necesitan procesar eventos de manera asincrónica y gestionar datos a gran escala.
Casos de uso reales: ¿Para qué sirve Kafka?
- Procesamiento de Pedidos en E-Commerce: Imagina un ecosistema donde cada evento fluye como un engranaje perfecto. Kafka se encarga de:
- Confirmar que el pedido ha sido recibido.
- Procesar el pago de forma instantánea.
- Actualizar el inventario para evitar ventas dobles.
- Generar una notificación de envío para el cliente. ¡Todo en tiempo real y sin cuellos de botella!
- Telemetría y IoT: En el mundo de los autos conectados, Kafka es el cerebro detrás de los datos. Sensores como el de presión de llantas envían eventos al clúster, donde se procesan para análisis predictivo. ¿Problemas con el auto? Kafka lo sabe antes que tú.
- Plataformas de Streaming y Redes Sociales: Cada vez que das like, dejas un comentario o recibes una notificación, Kafka está ahí manejando las interacciones en tiempo real. Es el motor que hace que tus redes sociales se sientan instantáneas.
- Pagos y Finanzas: Kafka asegura que cada transacción bancaria sea segura y eficiente. Desde un pago móvil hasta una transferencia internacional, Kafka maneja los eventos críticos sin margen para errores.
- Videojuegos multijugador: En el fragor de una partida, Kafka sincroniza posiciones, movimientos y eventos entre jugadores. Es la tecnología que mantiene tu experiencia fluida, incluso cuando todos están lanzando hechizos al mismo tiempo.
Desplegando Kafka en GCP: paso a paso
Paso 0. Crea tu cuenta de GCP
Si aún no tienes una cuenta, es hora de registrarte. Aprovecha el crédito gratuito de $300 que GCP ofrece para nuevos usuarios y experimenta con Apache Kafka sin preocuparte por el presupuesto.
Paso 1. Configura el clúster
Usaremos la opción Click-to-Deploy del marketplace de GCP para simplificar el proceso:
1. Ve a Kafka Click-to-Deploy: Selecciona tu proyecto: https://console.cloud.google.com/marketplace/details/click-to-deploy-images/kafka
2. Configura:
- Número de instancias: 3 (mínimo para replicación).
- Máquinas: e2-medium (2 vCPU, 4 GB RAM).
- Disco: 20+ GB estándar.
3. Haz clic en Deploy.
También hay que habilitar APIs obligatorias que nos exige este stack para montar nuestro clúster de Apache Kafka.
Es necesario considerar estas características para un despliegue simple y rápido de este laboratorio con Apache Kafka.
Ahora podemos habilitar diferentes puertos para poder realizar troubleshooting y configuración rápida a modo de prueba.
Una vez creado figurará en el deployment manager la configuración de Apache Kafka donde se puede encontrar el usuario y contraseña de Zookepeer, el controlador maestro para conectarse al clúster.
Usando el comando gcloud compute instances list desde la consola de Google Cloud podemos revisar el nombre de las VSM que se han creado y su dirección externa para su posterior configuración.
Paso 2. Verifica el Clúster
- Conéctate por SSH a cada instancia:
Por ejemplo, puedes usar el siguiente comando para tratar de conectarte desde una CLI con gcloud:
gcloud compute ssh kafka-minimal-kafka-vm-0 --zone europe-west1-b
O también puedes usar la consola web para acceder vía SSH sin tantos preámbulos:
2. Verifica que Kafka está funcionando:
sudo systemctl status kafka
3. Configura las direcciones IP externas:
sudo nano /opt/kafka/config/server.properties
En /opt/kafka/config/server.properties, habilita en la configuración estas líneas:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<EXTERNAL_IP>:9092
4. Reinicia Kafka:
sudo systemctl restart kafka
Nota: Esto debe aplicarse en cada nodo del clúster para un correcto funcionamiento del laboratorio.
Conectando Kafka con Kafka Magic
Aunque los desarrollos reales usan herramientas avanzadas, Kafka Magic es ideal para pruebas rápidas y exploración inicial. Una vez que tu clúster esté configurado, Kafka Magic te permitirá explorar tópicos y mensajes de manera sencilla, ideal para comprender los conceptos clave antes de profundizar. Sigue estos pasos:
- Regístrate en Kafka Magic y descarga la aplicación para tu sistema operativo: https://www.kafkamagic.com/download/
- Configura el clúster:
- Bootstrap servers:
34.140.26.212:9092,35.205.231.129:9092,104.199.88.86:9092
- Deja la autenticación deshabilitada si no la configuraste. Y si la autenticación está habilitada, usa las credenciales como sassl plain text del usuario y contraseña de Zookepeer obtenidas en el paso del deployment manager al desplegar el stack del clúster.
3. Explora tópicos, publica y consume mensajes directamente desde la interfaz. Se puede crear un tópico, el cual va a almacenar y procesar los diferentes mensajes a los consumidores.
4. También se puede usar la consola web para publicar mensajes en los tópicos de Kafka como este mensaje de prueba que genera un pedido de un e-commerce, por ejemplo.
Podemos usar la misma interfaz web para revisar que nuestros mensajes existen y están siendo procesados en los tópicos.
Conclusión
Apache Kafka es mucho más que una tecnología: es el motor que da vida a sistemas que transforman industrias y redefinen lo posible. Desde el procesamiento de datos en tiempo real hasta el desarrollo de análisis predictivos, Kafka te brinda las herramientas para construir soluciones escalables, resilientes y profundamente innovadoras.
Si estás comenzando, herramientas como Kafka Magic son tu aliado perfecto para dar los primeros pasos. Pero cuando estés listo para escalar y abordar proyectos más ambiciosos, lenguajes como Python y Java serán tu llave para desbloquear todo el potencial de Kafka.
¿Quieres seguir aprendiendo sobre procesamiento de datos? ¡Síguenos en nuestras redes sociales y canal de YouTube!