Este documento presenta una introducción a la arquitectura de microservicios basada en contenedores. Explica brevemente la historia de la virtualización y los contenedores, destacando las ventajas de los contenedores sobre las máquinas virtuales. Luego describe los principios básicos de los microservicios y cómo se relacionan con los contenedores. Finalmente, presenta algunos patrones y principios clave para el diseño de microservicios, como la comunicación asíncrona y el uso de APIs públicas.
4. Agenda
• Un repaso de historia - Que son los contenedores?
• Por que los microservicios? - Que son los
microservicios?
• Como se relacionan microservicios y contenedores?
• Principios y Patrones en el diseño de Microservicios
• Demos
6. Un repaso de Historia – Servidores Fisicos
•Despliegue lento
•Alto costo
•Desperdicio
•Escalabilidad dificil
•Migracion dificil
•Alto acoplamiento
7. Un repaso de Historia - Hypervisors
• Virtualizacion de OS
• Un servidor contiene multiples
aplicaciones
• Cada aplicacion corre en una VM
• Mejor uso de recursos
• Mas facil de escalar
• Mayor elasticidad
• Pago por uso en la nube
• Deperdicio a nivel de OS
• +VM = + recursos
8. Que son los Contenedores?
•Empaquetado estandarizado para software y
dependencias
•Aislamiento de aplicaciones
•Sistema operativo compartido
15. Que son los microservicios?
•Arquitectura en la que “no se comparte nada”
•Arquitectura orientada a servicios, compuesta de
elementos débilmente acoplados que tienen contextos
delimitados
•“Hacer una sola cosa, pero hacerla muy bien”
20. Principio 1: Solo se depende de las APIs
publicas de otros Microservicios
21. Principio 1: Solo se depende de las APIs
publicas de otros Microservicios
22. Principio 2: Utilice la herramienta
adecuada para la tarea
Persistencia poliglota
23. Principio 2: Utilice la herramienta
adecuada para la tarea
Poliglotía de Frameworks
24. Principio 3 : Asegure sus microservicios
• Defensa en profundidad
• Red, servidor, contenedor, app
• Puerta de entrada
• Grateways, WAF
• Throthling
• Auth Y Authz
• Cliente a servicio, servicio a servicio, API Gw, Token auth
• Gestion de secretos
25. Principio 4 : Sea un buen ciudadano
•Defina y Respete SLAs
•Monitoreo, logs y traces distribuidos
27. Comunicación Síncrona Vs Asíncrona.
i.e. MVC app,
API Gateway, etc.
Http sync.
request
Http sync.
request
Http sync.
request
Http sync.
request
Http sync.
response
Http sync.
response
Http sync.
response
Http sync.
response
Same Http Request/Response cycle!
Basket Ordering Catalog Other
i.e. MVC app,
API Gateway, etc.
Http sync.
request
Http sync.
response
Basket Ordering Catalog Other
Síncrono
Asíncrono via
mensajes
“Asíncrono” via
polling
i.e. MVC app,
API Gateway, etc.
Http sync.
response
Basket Ordering Catalog Other
Http
Polling
Http
Polling
Http
Pollin
g
Http sync.
request
Http
Polling
28. Comunicacion Asincrona via Eventos
Database
Ordering Microservice
Basket Microservice
Database as
Cache
Service
ServiceUser-Profile Microservice
Web API Service
Database
Backend
UserUpdated event
(Publish Action)
Event Bus
(Publish/Subscribe Channel)
UpdateUser
command
UserUpdated event Buyer info
UserUpdated event Buyer info
Eventual consistency across microservices’ data based on event-driven async communication
DB update Event Bus Abstractions/Interface
Event Bus Implementations
RabbitMQ
Azure
Service
Bus
Other:
NServiceBus
MassTransit
etc.
29. Invocación directa vs Api Gateway
Ordering microservice
Catalog microservice
Identity microservice (STS+users)
SQL Server db
Client apps
Basket microservice
Redis cache
Marketing microservice
MongoD
B /
CosmosD
B
SQL Server
DB
SQL Server db
SQL Server db
Location microservice
MongoD
B /
CosmosD
B
Ordering.A
PI
GracePeriod worker
Svc.
32. Aplicacion de referencia
Ordering microservice
Catalog microservice
eShop WebApp MVC
ASP.NET Core MVC
Identity microservice (STS+users)
eShop SPA Web app
TypeScript/Angular 4
eShop mobile app
Xamarin.Forms
C#
xPlat. OS:
iOS
Android
Windows
Docker Host
eShop traditional Web app
HTML
SQL Server db
Client apps
Basket microservice
Redis cache
Marketing microservice
MongoD
B /
CosmosD
B
SQL Server
DB
SQL Server db
SQL Server db
Location microservice
MongoD
B /
CosmosD
B
Ordering.A
PI
GracePeriod worker
Svc.