Microservicios vs. arquitectura monolítica
Este artículo es una explicación de conceptos que compara ambos enfoques arquitectónicos, incluyendo preguntas de examen, elementos clave y etiquetas.
En Resumen
Los microservicios y la arquitectura monolítica representan dos enfoques opuestos para estructurar software: modular/descentralizado/escalable frente a centralizado/simple/consistente.
Descripción Técnica Compacta
La arquitectura monolítica describe una aplicación que se implementa y opera como una unidad única. Las funciones, la lógica y las interfaces están fuertemente acopladas.
La arquitectura de microservicios divide la aplicación en muchos servicios pequeños e independientes que se comunican a través de interfaces de red, típicamente mediante REST o Message Brokers. Cada servicio es independientemente desarrollable, testeable e implementable, frecuentemente con su propia capa de datos.
Los microservicios ofrecen ventajas en escalabilidad y mantenibilidad, pero requieren mayor infraestructura, conocimiento DevOps e interfaces bien definidas.
Puntos Clave para Examen
- Monolito = una aplicación, un despliegue
- Microservicios = servicios independientes (frecuentemente repositorios propios)
- Los microservicios fomentan escalabilidad y flexibilidad (relevancia en certificaciones)
- El monolito es más simple en proyectos pequeños (aplicabilidad práctica)
- Los microservicios requieren API Gateways, autenticación y logging (aspecto de seguridad)
- El esfuerzo de infraestructura en microservicios es mayor (aspecto económico)
- Las interfaces y dependencias deben estar documentadas (obligación de documentación)
- Los microservicios se adaptan bien a CI/CD y equipos ágiles
Componentes Principales
- Límites de servicio y Bounded Context
- Comunicación (REST, gRPC, Messaging)
- Base de datos por servicio (microservicios)
- Base de datos centralizada (monolito)
- Estrategia de despliegue (pipelines únicos vs múltiples)
- Service Registry y Discovery
- Monitoring/Logging por servicio
- Capa de seguridad y autenticación
- Aislamiento de fallos (Circuit Breaker, Retry, Fallback)
- Documentación de servicios (OpenAPI)
Ejemplo Práctico Simple
Monolito:
Una tienda web es un proyecto Java Spring Boot con módulos (Usuario, Órdenes, Inventario) → un despliegue.
Microservicios:
User Service, Order Service, Inventory Service son servicios independientes que se comunican por REST,
se despliegan por separado usando Docker/Kubernetes.
Ventajas y Desventajas
Monolito
- Ventajas: despliegue simple, menor requisito de infraestructura, menos complejidad con equipos pequeños
- Desventajas: difícil de escalar, los cambios afectan otros módulos, ciclos de lanzamiento más largos
Microservicios
- Ventajas: equipos independientes, escalado por servicio, diversidad tecnológica
- Desventajas: alto esfuerzo DevOps, interfaces complejas, transacciones distribuidas más difíciles
Preguntas Típicas de Examen (con Respuesta Breve)
- ¿Qué es un monolito? Una aplicación que se ejecuta y se despliega como una unidad.
- ¿Dos ventajas de los microservicios? Escalado de servicios individuales, despliegue independiente.
- ¿Cuándo tiene sentido un monolito? En proyectos pequeños con pocos participantes.
- ¿Cómo se comunican típicamente los microservicios? Por HTTP/REST, gRPC o Message Brokers (Kafka/RabbitMQ).
- ¿Por qué la arquitectura de microservicios es más compleja? Sistema distribuido, múltiples despliegues, más fuentes de error.
- ¿Qué es un API Gateway? Punto de entrada centralizado a los servicios (enrutamiento, autenticación, monitoreo).
Glosario
| Término | Definición |
|---|---|
| Arquitectura monolítica | estructura de software centralizada en una base de código |
| Arquitectura de microservicios | arquitectura distribuida con servicios autónomos |
| API Gateway | control centralizado del acceso a microservicios |
Reflexión
Para muchos proyectos de certificación, un monolito es frecuentemente mejor documentable y suficiente. Los microservicios tienen sentido cuando existen límites claros, infraestructura adecuada y capacidades DevOps. Un buen punto medio es un monolito modular.
Estrategia de Aprendizaje
- Introducción conceptual: esboza ambas arquitecturas para el mismo caso de uso.
- Profundización: crea un mini sistema con Docker Compose.
- Enfoque de examen: justifica por escrito tu elección arquitectónica.
- Evita errores: no asumas automáticamente que “microservicios = mejor”.
Análisis del Tema
- Núcleo técnico: orientación a servicios, interfaces, despliegues
- Implementación: comunicación, consistencia de datos, CI/CD
- Seguridad: aislamiento de servicios, autenticación, gateways
- Documentación: interfaces, dependencias, despliegues
- Economía: esfuerzo vs. flexibilidad
Recursos Adicionales
- https://martinfowler.com/articles/microservices.html
- https://www.ibm.com/cloud/learn/monoliths-vs-microservices
- https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices



