Este documento describe la transición de MercadoLibre de una arquitectura monolítica a microservicios hospedados en su propia plataforma de nube privada (Melicloud) hacia una nueva plataforma llamada Fury basada en AWS y Docker. Fury proporciona entornos simplificados y repetibles para el desarrollo y administración de producción de aplicaciones, reduciendo los requisitos operativos. El documento explica cómo se crea, desarrolla, prueba y implementa una aplicación en Fury, y proporciona
5. Viejo Mundo
▸ Código Monolítico
▸ Base de datos únicas
▸ Deploys semanales
▸ Entorno dificil de configurar
▸ Dificultades para innovar
▸ Respuesta a errores lenta
7. Nuevo Mundo
▸ Posibilidad de innovación total
▸ Plataforma migrada a micro-servicios
▸ Deploys diarios
▸ Infinidad de entornos
▸ Infinidad de configuraciones
▸ Caos (controlado?)
▸ Soporte de caídas parciales de servicios
8.
9.
10. Nuevo Mundo
▸ Más de 17500 virtuales
▸ Más de 1200 pooles con tráfico
▸ Más de 1400 maquinas deployadas por dia
12. Nuevo Mundo
▸ El equipo crece
▸ Dificultad en el uso del sistema
▸ Entornos caóticos
▸ Diferencias grandes entre develop, build y producción
▸ Requiere mucho conocimiento de meli hacer cualquier cosa
▸ A veces lleva mas tiempo poner algo en prod que hacerlo !!!
(bueno casi)
▸ Requiere mucho tiempo y recursos hacer nuevos servicios
para todo el cloud
14. Fury
▸ Cambio de plataforma, no de idea (seguimos con
microservices)
▸ Plataforma unificada
▹ Infraestructura
▹ Build
▹ Deploy
▹ Metrics
▹ Services
▸ Entornos simples y repetibles (gracias docker)
▸ Simplicidad para desarrollar y administrar producción
▸ Menos requerimientos operativos
22. Dockerfile
Imagen de desarrollo y
build responsable de
correr la aplicacion (y sus
mocks), testearla y
empaquetarla para
producción
Los entornos de desarrollo y produccion serán Dockerfile
partiendo de imagenes pre-armadas que resuelvan la
problemática báisca
Dockerfile.runtime
Imagen de producción que
será deployada en cada
máquina que atienda el
servicio
39. que esta pasando Creando el scope ?
▸ Se crea un balancer (ELB)
▸ Se crea un ASG para los equipos
▸ Se crean los equipos pedidos
▸ Se inicializan servicios de logs,
metrics, etc
▸ Se descarga la version en equipo
▸ Se le envía tráfico
Place your screenshot here
41. que esta pasando En el deploy ?
▸ Se crea un ASG para los equipos
nuevos
▸ Se crean tantos equipos como
habia antes
▸ Se inicializan servicios de logs,
metrics, etc
▸ Se descarga la version en equipo
▸ Se cambia el tráfico de forma
progresiva
Place your screenshot here
60. FuryCore
VPC-1
Subnet A
app 1
Subnet B
app 1
Subnet B
app 1
Subnet B
app 1
Subnet A
app 2
Subnet B
app 2
Subnet B
app 2
Subnet B
app 2
VPC-N
Subnet A
app X
Subnet B
app X
Subnet B
app X
Subnet B
app X
Region A
Region B
Region C
Region D
ServicesLogs DC-IN DC-OUT Others
External Traffic Balancing
CloudFormation
EC2
Api
ELBOthers