Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Patrones Avanzados con Microservices con Containers
1. Patrones avanzados de implementación de
microservicios con Amazon ECS
Bruno Laurenti
Arquitecto de Soluciones
#AWSCloudExperience
2.
3. ¿Que Significa Microservicios?
Es un estilo de arquitectura de software en la cual
aplicaciones complejas se componen de pequeños servicios
independientes que se comunican utilizando APIs
agnósticas del lenguaje.
Estos servicios se encuentran desacoplados y se enfocan en
realizar pequeñas tareas, facilitando una construcción
modular de los sistemas - Wikipedia
7. Amazon logra velocidad y agilidad con Two-Pizza Teams
Lo construyes,
lo operas
Fomenta Ownership & Autonomia
Los equipos pequeños
y descentralizados
son ágiles
9. ¿Cómo escalamos nuestros servicios
sin morir en el intento?
http://www.androidguys.com/featured/wallpapers/7
5-hd-wallpapers-from-your-favorite-video-games/
11. Escalar muchos servicios… es Complicado!
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Availability Zone #1 Availability Zone #2 Availability Zone #3 Availability Zone #4
13. Arquitectura de un Container
• Abstracción y control de recursos de computo como
memoria, cpu y redes mediante componentes
incluidos en el kernel.
• De una imagen base, se pueden ir agregando mediante
capas, información y dependencias.
• Un filesystem (Storage Driver) unifica todas las
imágenes en una única imagen.
• Instrucciones de ejecución y configuración se
encuentran en un dockerfile.
bootfs
kernel
Base Image
Image
Image
Container
References
parent
image
15. Amazon ECS
• Servicio elástico totalmente administrado.
• El servicio escala conforme tu arquitectura de micro servicios lo
requiera.
• Integrado con los servicios de AWS Code* para integración y
entrega continua (CI/CD) de Software.
• Monitoreo y Logs integrado con CloudWatch
17. Componentes de Amazon ECS
Definicion de los contenedores.
• Imagen,
• CPU & Memoria, etc
Registrar una
Task Definition
Crear un
Cluster
Ejecutar una
Task
Instancia de una
definicion de tarea
Crear
Service
• Mantiene un numero deseado de tareas corriendo
• Se integrar con un ELB
• Tareas inconsistentes se reemplazan automaticamente
Elastic Load
Balancing
• Infraestructura de Computo.
• Permisos IAM
20. Publish metrics
Auto Scaling ECS service
Availability
Zone A
Availability
Zone B
TASK A
Add/Remove ECS
tasks
TASK C
TASK BScaling Policies
Amazon
CloudWatch
Amazon ECS
Application
Load Balancer
Escalado de Servicio Automatico
21. ECS Cluster
EC2 Instance EC2 Instance
TASK A
TASK B
TASK B
Amazon
DynamoDB
Amazon
S3
Roles de IAM para las Tareas
24. Namespace: myapp.local
Service: web.myapp.local
10.0.4.5:8080, 10.0.3.6:8080
Service: app.myapp.local
10.0.6.5:8080,. 10.0.8.6:8080
AZ 1 AZ 2
app web app web
cluster: myapp
10.0.6.5:8080 10.0.8.6:8080 10.0.
3.6:8
080
10.0.
4.5:8
080
• Descubrimiento del servicio del lado del cliente
• Registro de servicio = Servidor DNS Route53
• Actualización del registro realizada por el
scheduler de ECS
• Administrado, alta disponibilidad, alta escala,
extensible
Service Discovery con Route53
25. Task placement Engine
Restricciones por
Cluster
Restricciones
Personalizadas
Estrategias de
Ubicación
Filtros
Satisfacer requerimientos de CPU, memoria y Puertos de
comunicaciones
Filtrar por ubicacion, tipo de Instancia, AMI o atributos
personalizados.
Identificar instancias que cumplan con estrategias de
ubicación determinadas como por distribución o binpack
Filtrar que contenedores serán ubicados según las
políticas.
27. g2.2xlarge t2.small t2.micro t2.medium
t2.medium t2.small g2.2xlarge
t2.small
t2.small t2.medium
us-east-1aus-east-1d
Ubicación: Tipo de Instancia y Zona
28. g2.2xlarge t2.small t2.micro t2.medium
t2.medium t2.small g2.2xlarge t2.small
us-east-1aus-east-1d
g2.2xlarge t2.medium
t2.micro t2.small
us-east-1c
Ubicación: Distribuida y por Binpack
31. • Retail Multiformato que opera Centros Comerciales y 1.200 tiendas entre sus
divisiones Supermercados, Mejoramiento del Hogar, Tiendas por departamento
• 130.000 colaboradores
• Opera en Chile, Brasil, Argentina, Colombia, Perú
32. Generar y evolucionar la arquitectura fundacional que
permite acelerar el desarrollo digital de supermercados,
balanceando la velocidad de delivery con la deuda técnica,
manteniendo la eficiencia en los costos