Hablemos de
Microservicios
.NET Core
Mauricio Santacruz
Origen de los Microservicios
• El término se utilizó por primera vez a mediados del 2011
• En marzo de 2012 James Lewis presenta alguna de las ideas de
microservicios
• A finales del 2013 varios grupos de tecnología ya discuten sobre el tema
• En 2014 James Lewis y Martin Fowler trabajan juntos para presentar
ejemplos reales
Definición
El estilo de arquitectura de microservicios es un acercamiento al
desarrollo de una aplicación como un conjunto de pequeños servicios,
cada uno ejecutándose en su propio proceso y comunicándose por
medio de mecanismos livianos, como un API por HTTP. Estos servicios
son creados alrededor de competencias de negocio y son desplegados
de forma independiente por medio de un proceso automatizado.
Existe un mínimo de gestión centralizada de estos servicios, los cuales
puedes ser escritos en diferentes lenguajes de programación y
utilizando diferentes tecnologías de almacenamiento de datos
Arquitectura Monolítica
Arquitectura Monolítica
Arquitectura Monolítica - Desafíos
• Gran cantidad de código fuente
• Muchos módulos de negocio
• Código fuente complejo
• Complejidad al desplegar
• Si un módulo falla todo el sistema falla
• Escalabilidad
• Dependencia entre módulos
• Imposibilidad de adaptarse a nuevas tecnologías
Arquitectura Orientada a Servicios
Arquitectura Orientada a Servicios
Arquitectura Orientada a Servicios -
Beneficios
• Reusabilidad
• Stateless
• Basado en contratos
• Escalabilidad
• Actualización
Microservicios
Microservicios
Microservicios
Microservicios
Microservicios
Microservicios – Domain Driven
Developement
Microservicios - Ventajas
• Escalamiento económico
• Límites claros del código
• Fácil cambio del código
• Fácil despliegue
• Fácil aplicación de nuevas tecnologías
• Sistema distribuido
• Rápida respuesta al mercado
Microservicios - Prerrequisitos
• Despliegues y QA
• Se deben realizar lo más rápido posible
• Cuando la cantidad de servicios crece, crece la complejidad
• Plataforma de colaboración para los equipos de desarrollo y
operaciones
• Cuando hay problemas en producción la respuesta debe ser lo más rápida y
automatizada posible
• Framework de monitoreo
• Es necesario contar con una forma de monitorear todo el sistema,
identificando cuellos de botella e incidencias
Tipos de Comunicación - Sincrónica
Tipos de Comunicación - Asincrónica
Comunicación directa
Patrones de integración
• API Gateway
• Event-Driven Pattern
• Event sourcing
• Eventual consistency
• Compensating transaction
• Competing consumers
API Gateway
API Gateway
API Gateway - BFF
Event-Driven Pattern
Event-Driven Pattern
Dudas – Preguntas?