Todo lo que debes saber sobre Microservicios

microservicios

Hablar de microservicios es hablar de una gran y/o compleja aplicación y su modelo de datos que se subdividen en partes más pequeñas y (casi) independientes. Estos componentes se comunican mediante una API pública o de forma asíncrona mediante intercambio de mensajes y nunca, nunca, a bajo nivel a través del modelo de datos.

Arquitectura tradicional vs Arquitectura de microservicios

En la arquitectura tradicional, la escala es monolítica y los equipos forman distintos silos, habiendo muchas funciones en cada proceso individual. En definitiva, hay un pequeño número de procesos grandes con fuertes interdependencias.

La arquitectura de microservicios, en contraste, tenemos equipos multifuncionales organizados por capacidades, que crean diferentes elementos de funcionalidad (microservicios) escalables de forma individual y sin interdependencias, con API de comunicación entre ellos. Podríamos ver un microservicio como una micro-aplicación que desarrolla y mantiene un equipo de manera autónoma.

En las aplicaciones modernas, los microservicios y el big data se suelen desplegar en contenedores, lo que permite crear una arquitectura reactiva con una infraestructura de gestión de recursos vía, por ejemplo,  Kubernetes o DC/OS. La base de datos ya no es única, tanto para los que escriben como para los que acceden en modo lectura para consultas, con un único sistema que se vuelve complejo con el tiempo.

Retos a la hora de construir microservicios

  • Tenemos que dividir una gran aplicación en componentes más pequeños para ganar agilidad y disminuir la complejidad de cada “micro-aplicación”
  • Sin embargo, esto implica trabajar con más componentes (moving parts), lo que implica un mayor riesgo de fallos (averiguar dónde está desplegado el servicio X o si está funcionando correctamente… es más complejo) y de inconsistencias, puesto que ya no es una aplicación monolítica quien, en un ámbito local, actualiza los datos, lo cual es aún más complejo en entornos de transacciones largas

Para superar correctamente estos retos debemos tener en cuenta los principios de la arquitectura reactiva. Aprende de los mejores en nuestro bootcamp “Full Stack Developer con Patrones Reactivos”.

Más información e inscripciones al bootcamp


Mario Renau, Hands-on Digital Architect – Smart Cities / IoT en Alstom y Big Data Lecturer en Datahack
Déborah Fernández

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *