La arquitectura de microservicios es un enfoque de desarrollo de software donde una aplicación se construye como un conjunto de pequeños servicios independientes que se comunican entre sí a través de APIs (normalmente REST o gRPC).
A diferencia de la arquitectura tradicional o «Monolito» (donde todo el código está en un solo bloque gigante), en los microservicios cada función de la web (el carrito de compra, el buscador, el sistema de pagos, el perfil de usuario) es una mini-aplicación separada con su propia base de datos y lógica propia.
Las 4 claves de un Microservicio
- Independencia: Cada servicio se puede desarrollar, desplegar y actualizar sin tocar el resto de la aplicación.
- Especialización: Cada servicio resuelve un problema específico (principio de responsabilidad única).
- Tecnología Libre: Un servicio puede estar escrito en Laravel, otro en Node.js y otro en Python, según lo que sea más eficiente para esa tarea concreta.
- Aislamiento de fallos: Si el servicio de «recomendaciones» se cae, el resto de la web (pagos, login, catálogo) sigue funcionando perfectamente.
Comparativa: Monolito vs. Microservicios
| Característica | Monolito (Tradicional) | Microservicios (Moderno) |
| Despliegue | Hay que subir toda la web de nuevo por un pequeño cambio. | Se sube solo el trozo de código que ha cambiado. |
| Escalabilidad | Hay que duplicar toda la web aunque solo falle una parte. | Se escala solo el servicio que tiene mucho tráfico (ej: el buscador en Black Friday). |
| Complejidad | Fácil de desarrollar al principio, difícil de mantener después. | Difícil de configurar al principio, pero muy ágil a largo plazo. |
| Depuración | Los errores son difíciles de rastrear entre miles de líneas. | Los errores están confinados en un servicio específico. |