SlideShare una empresa de Scribd logo
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Christian Melendez, AWS UserGroup Guatemala
10 de Agosto, 2017
Micro Servicios con ECS
Agenda
• ¿Micro servicios?
• ¿Qué es ECS?
• Auto Escalamiento en ECS
• Caso de Estudio
¿Micro Servicios?
¿Micro servicios?
• Escalamiento horizontal (mas copias)
• No dependen del estado
• Se pueden desarrollar independientemente
• Se pueden publicar independientemente
• Una sola responsabilidad
• Experimentar tecnologias emergentes
• Agregan complejidad
¿Micro servicios?
¿Qué es ECS?
¿Qué es ECS?
• EC2 Container Service
• Manejador de contenedores Docker
• No te preocupas de manejar un cluster (i.e. K8s)
• Aplicaciones con un modelo de micro servicios
• Aplicaciones ETL
¿Qué es ECS?
Contenedores e Imágenes
Definición de Tasks
{
"family": "webserver",
"containerDefinitions": [
{
"name": "web",
"image": "nginx",
"cpu": 99,
"memory": 100,
"portMappings": [{
"containerPort": 80,
"hostPort": 80
}]
}]
}
Programación de Tasks
Cluster y Agente ECS
¿Y los puertos?
¿Qué es un ALB?
• Application Load Balancer
• Mas de un contenedor por host
• Encargado del port mapping (ej. X => 80)
• Rutas por path en query string (ej. /api => servicio X)
• Case sensitive
• Reglas por puerto expuesto
• Contenedor misma ruta
¿Qué es un ALB?
¿Qué es un ALB?
Auto Escalamiento en ECS
Auto escalamiento en ECS
• Recursos reservados
• Unidades de CPU (1 Core = 1024 Unidades)
• Memoria por MiB
• Facilita tener la misma configuración (CPU y Memoria)
• Idealmente en múltiplos de 8
Auto escalamiento en ECS
• 1 instancia con 4 CPU y 4 GiB de Memoria
• Task definida con 1,500 CPU y 768 MiB de Memoria
# de Tasks
CPU
Reservado
Memoria
Reservada
Estado
1 ~36% (1500) 18.75% (768) OK
2 ~72% (3000) 37.50% (1536) OK
3 108% !! 56.25% (2304) FAIL
Auto escalamiento en ECS
• 1 instancia con 4 CPU y 4 GiB de Memoria
• Task definida con 1,000 CPU y 768 MiB de Memoria
• Escalar > 70% CPU Reservado
# de Tasks
CPU
Reservado
Memoria
Reservada
Estado
1 ~25% (1000) 18.75% (768) OK
2 ~50% (2000) 37.50% (1536) OK
3 ~75% (3000) 56.25% (2304) OK
4 ~50% (4000) 37.50% (3072) OK
Auto escalamiento en ECS
• Limite = (1 - max(Reserva de Contenedor) /
Capacidad Total de una sola Instancia) * 100
• 1 Instancia de 4096 Unidades de CPU
• 1 Contenedor de 1500 Unidades de CPU
• Limite = (1 – 1500 / 4096) * 100
• Limite = 63.38%
Auto escalamiento en ECS
Caso de Estudio
Caso de Estudio
• Tradicional: ASG, AMI, ELB, CloudFormation
• Todos los servicios convivían en la misma instancia
• Se publicaban todos los servicios cada vez
• Necesitábamos probar TODOS los servicios
• 1 publicación por semana (con suerte)
• Los ambientes no eran similares (infra y autom)
• Servicios self-hosted .NET (Linux, Mono, ServiceStack)
¿Por qué no otro orquestador?
• Curva de aprendizaje
• No tenemos necesidad de manejar un master
• Integración con IAM es trivial
• Escalamiento es fácil de implementar *
• ECS es gratis
* https://aws.amazon.com/blogs/compute/how-to-automate-container-instance-draining-in-amazon-ecs/
Estrategia de adopción
• PoC con servicios dummy (manualmente)
• PoC con servicios parecidos (misma tecnología)
• Viabilidad de la operación de servicios (monitoreo, logs)
• Implementación e integración de servicios
• Dockerizar cada servicio
• Automatizar build y deploy (por servicio)
• Homogenización de ambientes (Route 53 y zonas privadas)
• Incrementar porcentaje de pruebas automatizadas
• En todas las etapas se hizo prueba de carga
¿Despliegue de servicios?
• Route 53
• ALBs
¿Despliegue de servicios? Siempre disponible
• Actualizar Task Definition
• 100% tasks todo el tiempo
• 2x cantidad de tasks
• Drenar conexiones
• Detiene la version anterior
¿Despliegue de servicios? Continuo
• Jenkins (CI/CD)
• Terraform (IaaC)
• Nexus (Registro de Imagenes)
• Build desde development (se promueve)
¿Qué implicación tuvo en los servicios?
• Las versiones tiene que ser compatibles (v1 y v2)
• Servicio debe correr en foreground
• Usualmente solo debe correr un proceso
• Si el contenedor se detiene, detiene el proceso
• ALB para service discovery (alias records)
• Usar configuraciones por ambiente (env vars)
• No mas self-hosted
• Logs a consola en lugar de archivos (stderr, stdout)
Lo Bueno
• Recuperación sin intervención humana
• Solicitudes fallidas al mínimo
• Al topar memoria, se crea una nueva task
• Auto escalamiento a nivel de servicio e instancia
• Identificar fallos por servicio (ej. memory leak)
• Servicios ya no compiten por recursos
• 4 publicaciones a la semana
• Rollbacks con un par de clicks (o re deploy)
Lo Malo
• Las conexiones no se drenan al terminar instancias
• Quitar instancias del cluster provoca downtime *
• No hay rebalanceo de contenedores
• Contenedor hereda permisos del host
Monitoreo y Logs
• Solamente una forma de extraer logs
• Docker Loggin Driver: CloudWatch Logs
• CPU y Memoria reservada (auto escalamiento host)
• CPU y Memoria utilizada (auto escalamiento servicio)
• Espacio en disco
• AMI incluye un disco de 22-GiB LVM (no montado, no df -h)
• Agente ECS limpia imágenes y contenedores antiguos
• Errores 5XX y 4XX en ALB y Target Groups
¿Qué sigue?
• Mejorar estrategia de logging
• Mejorar la tolerancia a fallos (cascada, ej. Netflix Hystrix)
• Optimizar recursos (instancias)
• Incrementar porcentaje de pruebas automatizadas
• Replicar en otros sistemas
¡Gracias!
@Christianhxc
cmelendeztech.com

Más contenido relacionado

La actualidad más candente

Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
Oscar Javier Gentilezza Arenas
 
Introduccion a Docker
Introduccion a DockerIntroduccion a Docker
Introduccion a Docker
Amazon Web Services LATAM
 
SQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxSQL Server 2017 soporte en Linux
SQL Server 2017 soporte en Linux
Eduardo Castro
 
Mi experiencia con Amazon AWS EC2 y S3
Mi experiencia con Amazon AWS EC2 y S3Mi experiencia con Amazon AWS EC2 y S3
Mi experiencia con Amazon AWS EC2 y S3
Alejandro E Brito Monedero
 
From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)
Francisco Araya
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
Paradigma Digital
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
Paradigma Digital
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
Eduardo Castro
 
EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad
Amazon Web Services LATAM
 
Servidores web: cloud
Servidores web: cloudServidores web: cloud
Servidores web: cloud
Juan Antonio Gil Martínez-Abarca
 
Como reducir costos en AWS
Como reducir costos en AWSComo reducir costos en AWS
Como reducir costos en AWS
Amazon Web Services LATAM
 
Pruebas del servicio web
Pruebas del servicio webPruebas del servicio web
Pruebas del servicio web
Juan Antonio Gil Martínez-Abarca
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
enyert
 
SQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con DockerSQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con Docker
Christian Melendez
 
Argentesting 2017 - Jenkins Pipelines desde la trinchera
Argentesting 2017 - Jenkins Pipelines desde la trincheraArgentesting 2017 - Jenkins Pipelines desde la trinchera
Argentesting 2017 - Jenkins Pipelines desde la trinchera
Argentesting
 
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
Amazon Web Services LATAM
 
Core data + i cloud
Core data + i cloudCore data + i cloud
Core data + i cloud
Jorge Ortiz
 
Usando docker
Usando dockerUsando docker
Usando docker
Gustavo Muslera
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev Day
Plain Concepts
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
Víctor Leonel Orozco López
 

La actualidad más candente (20)

Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Introduccion a Docker
Introduccion a DockerIntroduccion a Docker
Introduccion a Docker
 
SQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxSQL Server 2017 soporte en Linux
SQL Server 2017 soporte en Linux
 
Mi experiencia con Amazon AWS EC2 y S3
Mi experiencia con Amazon AWS EC2 y S3Mi experiencia con Amazon AWS EC2 y S3
Mi experiencia con Amazon AWS EC2 y S3
 
From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad
 
Servidores web: cloud
Servidores web: cloudServidores web: cloud
Servidores web: cloud
 
Como reducir costos en AWS
Como reducir costos en AWSComo reducir costos en AWS
Como reducir costos en AWS
 
Pruebas del servicio web
Pruebas del servicio webPruebas del servicio web
Pruebas del servicio web
 
Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 
SQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con DockerSQL Server Cross Platform Portable con Docker
SQL Server Cross Platform Portable con Docker
 
Argentesting 2017 - Jenkins Pipelines desde la trinchera
Argentesting 2017 - Jenkins Pipelines desde la trincheraArgentesting 2017 - Jenkins Pipelines desde la trinchera
Argentesting 2017 - Jenkins Pipelines desde la trinchera
 
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
 
Core data + i cloud
Core data + i cloudCore data + i cloud
Core data + i cloud
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev Day
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 

Similar a Arquitectura de Micro Servicios con ECS

AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación. AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
Amazon Web Services
 
AWS Summits América Latina 2015- EC2 Computo en la nube
AWS Summits América Latina 2015- EC2 Computo en la nubeAWS Summits América Latina 2015- EC2 Computo en la nube
AWS Summits América Latina 2015- EC2 Computo en la nube
Amazon Web Services LATAM
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
Óscar De Arriba González
 
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk   AWS Roadshow Bogota MexicoIntroduccion a Elastic Beanstalk   AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
Hermann Pais
 
"Cloudificación" de servicios: retos y oportunidades
"Cloudificación" de servicios: retos y oportunidades"Cloudificación" de servicios: retos y oportunidades
"Cloudificación" de servicios: retos y oportunidades
CSUC - Consorci de Serveis Universitaris de Catalunya
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
betabeers
 
Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018
Gonzalo Vásquez
 
AWS Lambda + Serverless Framework
AWS Lambda + Serverless FrameworkAWS Lambda + Serverless Framework
AWS Lambda + Serverless Framework
Christian Melendez
 
Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014
Nelson Calero
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
Amazon Web Services
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
Domingo Suarez Torres
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
Angel Nuñez
 
UYOUG OTN Tour 2011 - RAC sin sorpresas
UYOUG OTN Tour 2011 - RAC sin sorpresasUYOUG OTN Tour 2011 - RAC sin sorpresas
UYOUG OTN Tour 2011 - RAC sin sorpresas
Nelson Calero
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
Amazon Web Services LATAM
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
Ernesto Anaya
 
Deep Learning, Python, C# y Azure
Deep Learning, Python, C# y AzureDeep Learning, Python, C# y Azure
Deep Learning, Python, C# y Azure
Manuel Rodrigo Cabello Malagón
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en Azure
Germán Küber
 
Civir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicioCivir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicio
Elasticsearch
 
Introduction to Oracle Clusterware 12c
Introduction to Oracle Clusterware 12cIntroduction to Oracle Clusterware 12c
Introduction to Oracle Clusterware 12c
Guatemala User Group
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValley
Alvaro García Loaisa
 

Similar a Arquitectura de Micro Servicios con ECS (20)

AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación. AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
 
AWS Summits América Latina 2015- EC2 Computo en la nube
AWS Summits América Latina 2015- EC2 Computo en la nubeAWS Summits América Latina 2015- EC2 Computo en la nube
AWS Summits América Latina 2015- EC2 Computo en la nube
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk   AWS Roadshow Bogota MexicoIntroduccion a Elastic Beanstalk   AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
 
"Cloudificación" de servicios: retos y oportunidades
"Cloudificación" de servicios: retos y oportunidades"Cloudificación" de servicios: retos y oportunidades
"Cloudificación" de servicios: retos y oportunidades
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018Meetup AWS User Group chile - Diciembre 2018
Meetup AWS User Group chile - Diciembre 2018
 
AWS Lambda + Serverless Framework
AWS Lambda + Serverless FrameworkAWS Lambda + Serverless Framework
AWS Lambda + Serverless Framework
 
Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014Oracle RAC sin sorpresas - v2014
Oracle RAC sin sorpresas - v2014
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
UYOUG OTN Tour 2011 - RAC sin sorpresas
UYOUG OTN Tour 2011 - RAC sin sorpresasUYOUG OTN Tour 2011 - RAC sin sorpresas
UYOUG OTN Tour 2011 - RAC sin sorpresas
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
Deep Learning, Python, C# y Azure
Deep Learning, Python, C# y AzureDeep Learning, Python, C# y Azure
Deep Learning, Python, C# y Azure
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en Azure
 
Civir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicioCivir: Soluciones de Observabilidad con Elastic como servicio
Civir: Soluciones de Observabilidad con Elastic como servicio
 
Introduction to Oracle Clusterware 12c
Introduction to Oracle Clusterware 12cIntroduction to Oracle Clusterware 12c
Introduction to Oracle Clusterware 12c
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValley
 

Más de Christian Melendez

DevOps Is Not What You Have Been Told It Is
DevOps Is Not What You Have Been Told It IsDevOps Is Not What You Have Been Told It Is
DevOps Is Not What You Have Been Told It Is
Christian Melendez
 
Diferencias entre DevOps y SRE
Diferencias entre DevOps y SREDiferencias entre DevOps y SRE
Diferencias entre DevOps y SRE
Christian Melendez
 
Shifting security to the left with kubernetes, azure, and istio
Shifting security to the left with kubernetes, azure, and istioShifting security to the left with kubernetes, azure, and istio
Shifting security to the left with kubernetes, azure, and istio
Christian Melendez
 
Development Workflow in Kubernetes
Development Workflow in KubernetesDevelopment Workflow in Kubernetes
Development Workflow in Kubernetes
Christian Melendez
 
Bases de Datos en Kubernetes
Bases de Datos en KubernetesBases de Datos en Kubernetes
Bases de Datos en Kubernetes
Christian Melendez
 
La Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y AzureLa Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y Azure
Christian Melendez
 
Pipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOpsPipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOps
Christian Melendez
 
Building CI/CD Pipelines for Kubernetes
Building CI/CD Pipelines for KubernetesBuilding CI/CD Pipelines for Kubernetes
Building CI/CD Pipelines for Kubernetes
Christian Melendez
 
7 Container Design Patterns
7 Container Design Patterns7 Container Design Patterns
7 Container Design Patterns
Christian Melendez
 
Bots ¿Qué son? Y ¿Cómo hacer uno?
Bots ¿Qué son? Y ¿Cómo hacer uno?Bots ¿Qué son? Y ¿Cómo hacer uno?
Bots ¿Qué son? Y ¿Cómo hacer uno?
Christian Melendez
 
Integracion y Entrega Continua con Docker para SQL Server
Integracion y Entrega Continua con Docker para SQL ServerIntegracion y Entrega Continua con Docker para SQL Server
Integracion y Entrega Continua con Docker para SQL Server
Christian Melendez
 
AWS re:Invent 2017 re:Cap
AWS re:Invent 2017 re:CapAWS re:Invent 2017 re:Cap
AWS re:Invent 2017 re:Cap
Christian Melendez
 
Optimizando imagenes con Multi Stage builds
Optimizando imagenes con Multi Stage buildsOptimizando imagenes con Multi Stage builds
Optimizando imagenes con Multi Stage builds
Christian Melendez
 
Arquitectura de Microservicios con .NET Core y Contenedores
Arquitectura de Microservicios con .NET Core y ContenedoresArquitectura de Microservicios con .NET Core y Contenedores
Arquitectura de Microservicios con .NET Core y Contenedores
Christian Melendez
 
Aplicaciones Xamarin conectadas y desconectadas con Azure
Aplicaciones Xamarin conectadas y desconectadas con AzureAplicaciones Xamarin conectadas y desconectadas con Azure
Aplicaciones Xamarin conectadas y desconectadas con Azure
Christian Melendez
 
Mi Primer Bot - Bot Framework + Xamarin
Mi Primer Bot - Bot Framework + XamarinMi Primer Bot - Bot Framework + Xamarin
Mi Primer Bot - Bot Framework + Xamarin
Christian Melendez
 
Azure Functions 101
Azure Functions 101Azure Functions 101
Azure Functions 101
Christian Melendez
 
Docker en Azure
Docker en AzureDocker en Azure
Docker en Azure
Christian Melendez
 
Docker Tools in Visual Studio and Azure
Docker Tools in Visual Studio and AzureDocker Tools in Visual Studio and Azure
Docker Tools in Visual Studio and Azure
Christian Melendez
 

Más de Christian Melendez (19)

DevOps Is Not What You Have Been Told It Is
DevOps Is Not What You Have Been Told It IsDevOps Is Not What You Have Been Told It Is
DevOps Is Not What You Have Been Told It Is
 
Diferencias entre DevOps y SRE
Diferencias entre DevOps y SREDiferencias entre DevOps y SRE
Diferencias entre DevOps y SRE
 
Shifting security to the left with kubernetes, azure, and istio
Shifting security to the left with kubernetes, azure, and istioShifting security to the left with kubernetes, azure, and istio
Shifting security to the left with kubernetes, azure, and istio
 
Development Workflow in Kubernetes
Development Workflow in KubernetesDevelopment Workflow in Kubernetes
Development Workflow in Kubernetes
 
Bases de Datos en Kubernetes
Bases de Datos en KubernetesBases de Datos en Kubernetes
Bases de Datos en Kubernetes
 
La Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y AzureLa Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y Azure
 
Pipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOpsPipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOps
 
Building CI/CD Pipelines for Kubernetes
Building CI/CD Pipelines for KubernetesBuilding CI/CD Pipelines for Kubernetes
Building CI/CD Pipelines for Kubernetes
 
7 Container Design Patterns
7 Container Design Patterns7 Container Design Patterns
7 Container Design Patterns
 
Bots ¿Qué son? Y ¿Cómo hacer uno?
Bots ¿Qué son? Y ¿Cómo hacer uno?Bots ¿Qué son? Y ¿Cómo hacer uno?
Bots ¿Qué son? Y ¿Cómo hacer uno?
 
Integracion y Entrega Continua con Docker para SQL Server
Integracion y Entrega Continua con Docker para SQL ServerIntegracion y Entrega Continua con Docker para SQL Server
Integracion y Entrega Continua con Docker para SQL Server
 
AWS re:Invent 2017 re:Cap
AWS re:Invent 2017 re:CapAWS re:Invent 2017 re:Cap
AWS re:Invent 2017 re:Cap
 
Optimizando imagenes con Multi Stage builds
Optimizando imagenes con Multi Stage buildsOptimizando imagenes con Multi Stage builds
Optimizando imagenes con Multi Stage builds
 
Arquitectura de Microservicios con .NET Core y Contenedores
Arquitectura de Microservicios con .NET Core y ContenedoresArquitectura de Microservicios con .NET Core y Contenedores
Arquitectura de Microservicios con .NET Core y Contenedores
 
Aplicaciones Xamarin conectadas y desconectadas con Azure
Aplicaciones Xamarin conectadas y desconectadas con AzureAplicaciones Xamarin conectadas y desconectadas con Azure
Aplicaciones Xamarin conectadas y desconectadas con Azure
 
Mi Primer Bot - Bot Framework + Xamarin
Mi Primer Bot - Bot Framework + XamarinMi Primer Bot - Bot Framework + Xamarin
Mi Primer Bot - Bot Framework + Xamarin
 
Azure Functions 101
Azure Functions 101Azure Functions 101
Azure Functions 101
 
Docker en Azure
Docker en AzureDocker en Azure
Docker en Azure
 
Docker Tools in Visual Studio and Azure
Docker Tools in Visual Studio and AzureDocker Tools in Visual Studio and Azure
Docker Tools in Visual Studio and Azure
 

Último

Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
AngelCristhianMB
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
MiguelAtencio10
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
ranierglez
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 

Último (20)

Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
Mantenimiento de sistemas eléctricos y electrónicosarticles-241712_recurso_6....
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 

Arquitectura de Micro Servicios con ECS

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Christian Melendez, AWS UserGroup Guatemala 10 de Agosto, 2017 Micro Servicios con ECS
  • 2. Agenda • ¿Micro servicios? • ¿Qué es ECS? • Auto Escalamiento en ECS • Caso de Estudio
  • 4. ¿Micro servicios? • Escalamiento horizontal (mas copias) • No dependen del estado • Se pueden desarrollar independientemente • Se pueden publicar independientemente • Una sola responsabilidad • Experimentar tecnologias emergentes • Agregan complejidad
  • 7. ¿Qué es ECS? • EC2 Container Service • Manejador de contenedores Docker • No te preocupas de manejar un cluster (i.e. K8s) • Aplicaciones con un modelo de micro servicios • Aplicaciones ETL
  • 10. Definición de Tasks { "family": "webserver", "containerDefinitions": [ { "name": "web", "image": "nginx", "cpu": 99, "memory": 100, "portMappings": [{ "containerPort": 80, "hostPort": 80 }] }] }
  • 14. ¿Qué es un ALB? • Application Load Balancer • Mas de un contenedor por host • Encargado del port mapping (ej. X => 80) • Rutas por path en query string (ej. /api => servicio X) • Case sensitive • Reglas por puerto expuesto • Contenedor misma ruta
  • 15. ¿Qué es un ALB?
  • 16. ¿Qué es un ALB?
  • 18. Auto escalamiento en ECS • Recursos reservados • Unidades de CPU (1 Core = 1024 Unidades) • Memoria por MiB • Facilita tener la misma configuración (CPU y Memoria) • Idealmente en múltiplos de 8
  • 19. Auto escalamiento en ECS • 1 instancia con 4 CPU y 4 GiB de Memoria • Task definida con 1,500 CPU y 768 MiB de Memoria # de Tasks CPU Reservado Memoria Reservada Estado 1 ~36% (1500) 18.75% (768) OK 2 ~72% (3000) 37.50% (1536) OK 3 108% !! 56.25% (2304) FAIL
  • 20. Auto escalamiento en ECS • 1 instancia con 4 CPU y 4 GiB de Memoria • Task definida con 1,000 CPU y 768 MiB de Memoria • Escalar > 70% CPU Reservado # de Tasks CPU Reservado Memoria Reservada Estado 1 ~25% (1000) 18.75% (768) OK 2 ~50% (2000) 37.50% (1536) OK 3 ~75% (3000) 56.25% (2304) OK 4 ~50% (4000) 37.50% (3072) OK
  • 21. Auto escalamiento en ECS • Limite = (1 - max(Reserva de Contenedor) / Capacidad Total de una sola Instancia) * 100 • 1 Instancia de 4096 Unidades de CPU • 1 Contenedor de 1500 Unidades de CPU • Limite = (1 – 1500 / 4096) * 100 • Limite = 63.38%
  • 24. Caso de Estudio • Tradicional: ASG, AMI, ELB, CloudFormation • Todos los servicios convivían en la misma instancia • Se publicaban todos los servicios cada vez • Necesitábamos probar TODOS los servicios • 1 publicación por semana (con suerte) • Los ambientes no eran similares (infra y autom) • Servicios self-hosted .NET (Linux, Mono, ServiceStack)
  • 25. ¿Por qué no otro orquestador? • Curva de aprendizaje • No tenemos necesidad de manejar un master • Integración con IAM es trivial • Escalamiento es fácil de implementar * • ECS es gratis * https://aws.amazon.com/blogs/compute/how-to-automate-container-instance-draining-in-amazon-ecs/
  • 26. Estrategia de adopción • PoC con servicios dummy (manualmente) • PoC con servicios parecidos (misma tecnología) • Viabilidad de la operación de servicios (monitoreo, logs) • Implementación e integración de servicios • Dockerizar cada servicio • Automatizar build y deploy (por servicio) • Homogenización de ambientes (Route 53 y zonas privadas) • Incrementar porcentaje de pruebas automatizadas • En todas las etapas se hizo prueba de carga
  • 27. ¿Despliegue de servicios? • Route 53 • ALBs
  • 28. ¿Despliegue de servicios? Siempre disponible • Actualizar Task Definition • 100% tasks todo el tiempo • 2x cantidad de tasks • Drenar conexiones • Detiene la version anterior
  • 29. ¿Despliegue de servicios? Continuo • Jenkins (CI/CD) • Terraform (IaaC) • Nexus (Registro de Imagenes) • Build desde development (se promueve)
  • 30. ¿Qué implicación tuvo en los servicios? • Las versiones tiene que ser compatibles (v1 y v2) • Servicio debe correr en foreground • Usualmente solo debe correr un proceso • Si el contenedor se detiene, detiene el proceso • ALB para service discovery (alias records) • Usar configuraciones por ambiente (env vars) • No mas self-hosted • Logs a consola en lugar de archivos (stderr, stdout)
  • 31. Lo Bueno • Recuperación sin intervención humana • Solicitudes fallidas al mínimo • Al topar memoria, se crea una nueva task • Auto escalamiento a nivel de servicio e instancia • Identificar fallos por servicio (ej. memory leak) • Servicios ya no compiten por recursos • 4 publicaciones a la semana • Rollbacks con un par de clicks (o re deploy)
  • 32. Lo Malo • Las conexiones no se drenan al terminar instancias • Quitar instancias del cluster provoca downtime * • No hay rebalanceo de contenedores • Contenedor hereda permisos del host
  • 33. Monitoreo y Logs • Solamente una forma de extraer logs • Docker Loggin Driver: CloudWatch Logs • CPU y Memoria reservada (auto escalamiento host) • CPU y Memoria utilizada (auto escalamiento servicio) • Espacio en disco • AMI incluye un disco de 22-GiB LVM (no montado, no df -h) • Agente ECS limpia imágenes y contenedores antiguos • Errores 5XX y 4XX en ALB y Target Groups
  • 34. ¿Qué sigue? • Mejorar estrategia de logging • Mejorar la tolerancia a fallos (cascada, ej. Netflix Hystrix) • Optimizar recursos (instancias) • Incrementar porcentaje de pruebas automatizadas • Replicar en otros sistemas
  • 35.