En búsqueda de la respuesta
Después de haber participado en varios proyectos
Después de utilizar diferentes tecnologías
Después de colaborar con programadores más experimentados
Un consultor Ultra Senior me dio la respuesta:
¡DEPENDE!
Cada proyecto es diferente
La necesidad del cliente, la visión a futuro tiene mucho que ver
Fácil de Desarrollar
El objetivo de las herramientas de desarrollo y los IDEs actuales es respaldar el desarrollo de aplicaciones monolíticas.
Fácil de Implementar
En el caso de Java simplemente necesita implementar el archivo WAR.
Fácil de Escalar
Se puede escalar la aplicación ejecutando varias copias de la aplicación detrás de un balanceador de carga
Ejemplo de Arquitectura Monolítica
Generalmente se parte de un diseño de base de datos
Dentro del proyecto está todo
Aplicación de Ejemplo
Es un enfoque para desarrollar una sola aplicación como un conjunto de pequeños servicios, cada uno ejecutándose en su propio proceso y comunicándose con mecanismos ligeros, a menudo una API de recursos HTTP.
Martin Fowler
Altamente mantenible y comprobable
Organizado en torno a las capacidades comerciales
Propiedad de un equipo pequeño
No es afin a una tecnología en particular
La ideología de proyecto lo hace difícil de mantener
La mentalidad de producto se vincula con las capacidades comerciales
Propiedad de un equipo pequeño
En lugar de considerar el software como un conjunto de funciones por completar, existe una relación continua en la que la pregunta es: ¿cómo puede el software ayudar a sus usuarios a mejorar la capacidad empresarial?
API de Microservicios como Producto: Twitter
API de Microservicios como Producto: Shopify
Importancia de los Microservicios
Ecosystema de
Microservicios
Jetbrains
https://www.jetbrains.com/es-es/lp/devecosystem-2020/microservices/
Microservicios: Eclipse Microprofile
Microservicios: Eclipse Microprofile Starter
Microservicios: Spring Boot Starter
Ejemplo Micro Servicio
Definir una API para Consultar Productos
Todalmente independiente de los otros módulos
Propia Base de Datos
Solo contiene el catálogo de productos
La funcionalidad se expone a través de Endpoints
Funcionalidad para Agregar, Obtener un Producto y Consultar
Microservicios: Spring Boot Starter
Microservicios: Consumir API
Microservicios: OpenAPI Definición de Endpoints
Referencia
Código de programas de ejemplo
https://twitter.com/tmsanchezg