Los sistemas de intermediación de mensajes están presentes en cada vez más soluciones pero ¿qué ventajas tienen? ¿Cuáles son sus casos de uso?
En este episodio de "Cómo conocí a nuestro cloud" hablaremos sobre estos sistemas, centrándonos en dos: Kafka y PubSub. Para ello, Andrés Navidad y Andrés Macarrilla, dos de nuestros compañeros en el equipo de Goodly, nos ayudarán a conocer mejor estos productos.
Si no quieres perderte el podcast de hoy ¡corre a tu plataforma favorita! Está disponible en: Ivoox, YouTube, Google Podcast y Apple Podcast.
Estas herramientas constan de 3 componentes: los publicadores o sistemas que emiten información, el boost de eventos o broker de mensajería que aglutina los eventos y los suscriptores que consumen la información. Todo esto con un denominador común como es el factor de temporalidad.
- Ventajas: dentro de estos sistemas se produce poco acoplamiento entre publicadores y suscriptores. El publicador puede emitir información sin conocer a los suscriptores ni preocuparse por ellos. De esta forma, aislas al suscriptor del publicador. Además, existe un alto acoplamiento semántico, por lo que los mensajes están interrelacionados semánticamente.
- Inconvenientes: esta separación se hace tan grande que a veces hay que poner mecanismos para que lo que se publique sea legible para todos los suscriptores. Si esto no se produce, puede que se provoque poca comprensión del idioma que se habla y no lleguen los mensajes adecuados a los suscriptores.
- Balancear cargas de trabajo entre clusters. Colas de tareas de forma que distintos trabajadores pidan tareas y puedan autogestionarse.
- Flujos de trabajo desacoplados. Poder ir cambiando piezas, hacer separaciones de funcionalidades, trabajadores y/o empresas.
- Redistribución de cachés de datos. Con la actualización de datos se puede retroalimentar, casi en tiempo real, desde que se publica hasta que está disponible es mínimo.
- Login desde diferentes sistemas. Transparencia entre todos los sistemas y registros.
- IoT. Diversos dispositivos con volumetría de envíos de mensajes, formato de información, etc. todos volcados a una misma cola de mensajería. Separando en diferentes canales y orígenes.
- Motor de reglas. Definiendo ciertas métricas o mandar consultas en SQL.
Entre las ventajas de Kafka para la realización de sistemas de intermediación de mensajes se encuentran que:
- Cuenta con una gran experiencia y comunidad.
- Tiene un ecosistema que ha ido evolucionando y mejorando; empezando por Topology, Kafka Stream, Ksql hasta llegar a Schema Registry, que controla la capa semántica para que se entienda con independencia de los suscriptores.
- Funcionalidades como compact topic u order message per key; aunque pubsub también lo ha incluído ya.
- Capacidad de posicionamiento o decidir dónde empezar a leer una vez suscrito a un topic, earliest or latest.
En contra, Kafka tiene las siguientes limitaciones:
- Gestión del broker desde el punto de vista de infraestructura. Solucionable contratándolo como servicio. MSK en Amazon o Confluent en los principales proveedores de nube pública.
- Curva de aprendizaje más pronunciada para explotar todo el ecosistema y funcionalidades.
Por otro lado, PubSub tiene la siguientes ventajas en la intermediación de mensajes:
- Integración nativa con los servicios de Google Cloud.
- Plug and play. Sencillez a la hora de implantar los eventos, solamente abrir un panel y empezar a funcionar.
- Costes de mantenimiento mínimo, solo coste por uso.
- Escalabilidad en función de la carga de trabajo que llegue.
- Usable dentro y fuera de Google cloud.
- Modo push y modo pop.
Andrés Macarrilla
Jugando con tecnologías desde el siglo pasado. Durante todo este camino, he llevado muchas gorras, como pueden ser las de Ingeniero de software, Product Manager, Arquitecto de soluciones.
Cuando cierro el portátil me dedico a pasar el tiempo con mi familia, a viajar, o cuando saco un rato a conducir cualquier cosa que lleve un motor.
Ver más contenido de Andrés.
Andrés Navidad
Aunque empecé mi carrera haciendo back-end en aplicaciones web, siempre me gustaron los conceptos de arquitectura y computación distribuida. Hace 7 años tuve la oportunidad de empezar en el mundo Big Data y ahora me gusta aplicar todos esos conceptos en arquitecturas basadas en nubles públicas. Entusiasta de las nuevas tecnologías, las motos y la gastronomía.
Ver más contenido de Andrés.
Más contenido sobre esto.
Leer más.
Cuéntanos qué te parece.