SlideShare a Scribd company logo
1 of 78
Download to read offline
Mercadolibre’s Platform
on top of AWS & Docker
Gabriel Eisbruch
gabriel.eisbruch@mercadolibre.com
@geisbruch
Matias Rege
matias.rege@mercadolibre.com
@matiasrege
Nicolas Giagnoni
nicolas.giagnoni@mercadolibre.com
Qué es MercadoLibre (en IT) ?
Contexto
- ~18.000.000 de Requests por Minuto
- ~400 Deploys por dia
- ~700 Developers en 5 Centros de desarrollo
- ~20.000 Servidores Virtuales
- ~1500 Fisicos
Cómo nos organizamos con este CAOS?
Cómo mejoramos este MUNDO?
Cómo funciona la PLATAFORMA?
● Flexible
● Autoscaling
● SDN (Software defined Network)
● Interoperabilidad con nuestro DC
● Servicios de automatización y control
● Seguridad
Docker permite empaquetar aplicaciones incluyendo
filesystem, codigo, librerias y todo lo necesario para
correrlas. Permitiendo correr estas imágenes en
containers dentro del sistema operativo.
Desarrollo
Producción
● Entornos unificados (sin importar el SO)
● Mocks simplificados
● Una única herramienta
● Simplicidad para sumarse a colaborar en un proyecto
● Codigo + Entorno en un único lugar
● No hay necesidad de bootstraps on boot
● Fast build (vs crear un ami)
● Posibilidad de bajar la imagen de producción para debug
Veamos cómo usa la herramienta un
developer y que pasa por debajo
Proceso de desarrollo
Proceso de Desarrollo
Create App
Proceso de Desarrollo
Create App
Code !!!
Proceso de Desarrollo
Create App
Code !!!
Create Version
Proceso de Desarrollo
Create App
Code !!!
Create Version
Deploy
Proceso de Desarrollo
Create App
Code !!!
Create Version
Deploy
Crear una Aplicación
Proceso de Desarrollo
Create App
Code !!!
Create Version
Deploy
Crear una Aplicacion
● Permite definir infraestructura
● Mantiene el estado de toda la infraestructura y sus recursos
● Permite extender el funcionamiento mediante “custom-resources”
● Resuelve acciones de rollbacks y fallas
● Guarda información de logging de todas las transacciones
Crear una Aplicacion
Create App Stack
Crear una Aplicacion
Crear una Aplicacion
● Creación de Repositorio (Custom)
● Creacion de subnets
○ Una por AZ
● Creación de configuraciones de jenkins para CI & Build (Custom)
● Creación de configuraciones en ES y Kibana para logging (Custom)
● Creación de SecurityGroups para la aplicación
● Creación de ACL’s de las redes e interconexión de subnets
● Configuración de reglas de interoperabilidad para conectarse a la
plataforma actual
Empezando a Codear
Proceso de Desarrollo
Create App
Code !!!
Create Version
Deploy
Code
Get App
(fury get)
Code
Get App
(fury get)
Code
Code
Get App
(fury get)
Code Run
(fury run)
Code
Dockerfile
Imagen de desarrollo y build
responsable de correr la
aplicación (y sus mocks),
testearla y empaquetarla
para producción
Los entornos de desarrollo y producción serán Dockerfile
partiendo de imágenes pre-armadas que resuelvan la
problemática básica
Dockerfile.runtime
Imagen de producción que
será deployada en cada
máquina que atienda el
servicio
Code
fury run
Code
fury run
docker build -t app_build .
docker run -v $(pwd):/app app_build
/commands/run.sh
Create Version
Create Version
Create App
Code !!!
Create Version
Deploy
Create Version
fury create-
version
Create Version
Create Version
Commit: xxxx
fury api
Create Version
Create Version
Commit: xxxx
fury api
Jenkins
Build
Create Version
Create Version
Commit: xxxx
fury api
Jenkins
Build
Create Version
Create Version
cd app
docker build -t app .
docker run app /test.sh
docker run app /package.sh
-v prod-image:/package
Create Version
cd app
docker build -t app .
docker run app /test.sh
docker run app /package.sh
-v prod-image:/package
cd prod-image
docker build -t prod-app .
Create Version
cd app
docker build -t app .
docker run app /test.sh
docker run app /package.sh
-v prod-image:/package
cd prod-image
docker build -t prod-app .
docker push app
Go to Prod !
Deploy
Create App
Code !!!
Create Version
Deploy
Crear un Scope
Crear un Scope
● Crear ELB (Elastic Load Balancer)
● Scope Domains
● Iniciar deploy
Deploy
Deploy
● Crear Máquinas
● Crear Nuevo Autoscaling group
● Intercambiar tráfico entre
versiones (swap)
● Destruir maquinas viajes (o hacer
rollback)
Deploy
Deploy
Deploy
Deploy
Deploy
Deploy
Deploy
Deploy
Deploy
En definitiva ...
❖ fury get apparel-home
❖ fury run
❖ fury create-version 0.0.1
❖ DEPLOY !!!
Cómo queda Todo en Prod ?
Arquitectura
FuryCore
VPC-1
Subnet A
app 1
Subnet B
app 1
SubnetC
app 1
SubnetD
app 1
Subnet A
app 2
Subnet B
app 2
SubnetC
app 2
SubnetD
app 2
VPC-N
Subnet A
app X
Subnet B
app X
SubnetC
app X
SubnetD
app X
Az A
Az B
Az C
Az D
ServicesLogs DC-IN DC-OUT Others
External Traffic Balancing
CloudFormation
EC2
Api
ELBOthers
Arquitectura
VPC-1
Subnet A app 1
Arquitectura
VPC-1
Subnet A app 1
Server i-0XXXXX
mercadolibre/docker-
meetup:0.0.1
datadogrsyslog JMX
docker-compose.yml
local-api
Mantenimiento de la app
Mantenimiento
● Logs
● Metricas
● Ops
Logs
Logs
Logs Collector
[tags:parser]
stdout
stdout
stdout
Logs
Metricas
Metricas
Metricas
Operaciones
Operaciones
Operaciones
Server i-0XXXXX
mercadolibre/docker-meetup:
0.0.1
local-api
fury api
Action
Wrapping Up
Gracias
arquitectura@mercadolibre.com
Architecture Team
Gracias
arquitectura@mercadolibre.com
Architecture Team

More Related Content

What's hot

CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
Amazon Web Services
 

What's hot (20)

Azure container instances
Azure container instancesAzure container instances
Azure container instances
 
Disaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprintsDisaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprints
 
Modern big data and machine learning in the era of cloud, docker and kubernetes
Modern big data and machine learning in the era of cloud, docker and kubernetesModern big data and machine learning in the era of cloud, docker and kubernetes
Modern big data and machine learning in the era of cloud, docker and kubernetes
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
 
Container Orchestration
Container OrchestrationContainer Orchestration
Container Orchestration
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Apache Flex: Overview
Apache Flex: OverviewApache Flex: Overview
Apache Flex: Overview
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basics
 
TechEvent Infrastructure as Code on Azure
TechEvent Infrastructure as Code on AzureTechEvent Infrastructure as Code on Azure
TechEvent Infrastructure as Code on Azure
 
Microservices Design Patterns | Edureka
Microservices Design Patterns | EdurekaMicroservices Design Patterns | Edureka
Microservices Design Patterns | Edureka
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
 
Driving Digital Transformation With Containers And Kubernetes Complete Deck
Driving Digital Transformation With Containers And Kubernetes Complete DeckDriving Digital Transformation With Containers And Kubernetes Complete Deck
Driving Digital Transformation With Containers And Kubernetes Complete Deck
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
How OpenShift SDN helps to automate
How OpenShift SDN helps to automateHow OpenShift SDN helps to automate
How OpenShift SDN helps to automate
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
Designing Scalable SAN using MDS 9396S
Designing Scalable SAN using MDS 9396SDesigning Scalable SAN using MDS 9396S
Designing Scalable SAN using MDS 9396S
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 

Similar to Fury DevopsConf 2015

Similar to Fury DevopsConf 2015 (20)

DOCKER+AWS+MELI
DOCKER+AWS+MELIDOCKER+AWS+MELI
DOCKER+AWS+MELI
 
Andrid studio
Andrid studioAndrid studio
Andrid studio
 
Autobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure RelayAutobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure Relay
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
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
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
 
Azure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARMAzure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARM
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Introducción a ndk
Introducción a ndkIntroducción a ndk
Introducción a ndk
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
 
Docker Containers | Talent Week/Team International
Docker Containers | Talent Week/Team InternationalDocker Containers | Talent Week/Team International
Docker Containers | Talent Week/Team International
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
 
Programacion
ProgramacionProgramacion
Programacion
 

Recently uploaded

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Recently uploaded (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Fury DevopsConf 2015