Aplicaciones monolíticas
Todo el código en una sola aplicación.
Ventajas
- Bueno para aplicaciones pequeñas.
- Fácil de desarrollar.
- Fácil de hacerle deploy.
- Fácil trabajar solo o en equipos pequeños.
Desventajas
- Difícil de mantener.
- Costoso de mantener.
- En caso de un error se puede caer toda la aplicación.
- Mas difícil de testear.
- Mas difícil de depurar.
Micro servicios
El código dividido en múltiples aplicaciones.
Ventajas
- Fácil de hacer deploy.
- Fácil escalar.
- Fácil testear.
- Fácil de depurar.
- En caso de error, solo se cae un servicio.
- Se pueden usar diferentes tecnologías.
Desventajas
- Difícil de orquestar.
- Puede ser lenta la comunicación entre servicios.
- Difícil saber como dividir nuestra aplicación.
- Mas costoso de mantener.