Arquitectura Microservicios
Cada microservicio tiene su propia estructura autónoma, lo que facilita la independencia y escalabilidad del sistema. Cada servicio implementa una parte específica del dominio.
1. Estructura típica #
user-service/
├── src/
│ ├── controllers/
│ ├── services/
│ ├── repositories/
│ ├── models/
│ └── utils/
├── tests/
│ ├── unit/
│ └── integration/
├── Dockerfile
├── package.json
└── README.md
product-service/
├── src/
│ ├── controllers/
│ ├── services/
│ ├── repositories/
│ ├── models/
│ └── utils/
├── tests/
│ ├── unit/
│ └── integration/
├── Dockerfile
├── package.json
└── README.md
2. Ventajas de Microservicios #
- Independencia:
- Cada servicio puede desarrollarse, desplegarse y escalarse de forma autónoma.
- Especialización:
- Cada servicio se enfoca en un único aspecto del dominio.
- Despliegues Más Rápidos:
- Los cambios en un servicio no afectan a los demás.
Resumen del tema
Conceptos clave #
- Arquitectura de Microservicios: partición del sistema en servicios autónomos, desacoplados e independientes con su propio ciclo de despliegue y repositorio/directorio.
- Límites de Dominio (Bounded Contexts): cada microservicio es dueño de sus datos y de su lógica de negocio particular.
- Escalabilidad y Despliegue Independiente: permite escalar o actualizar servicios de forma aislada sin detener el resto del ecosistema.
Qué debes recordar #
Los microservicios ofrecen independencia y escalabilidad granular, a cambio de una mayor complejidad operativa y de comunicación distribuida.