Este documento presenta Docker y Amazon EC2 Container Service (ECS). Explica que Docker permite ejecutar aplicaciones en contenedores de software portátiles que se pueden implementar fácilmente en cualquier infraestructura. ECS administra clústeres de contenedores Docker en la nube de AWS para implementar y administrar aplicaciones de manera sencilla y a escala. El documento también describe conceptos clave como definiciones de tareas, servicios y actualizaciones de servicios en ECS.
4. El Problema
Diferentes grupos de
aplicaciones
Ambientes de Hardware
diferentes
¿Cómo establecer algo de
consistencia entre ambientes?
¿Cómo migrar de un ambiente
a otro fácilmente?
Static
website
Web
fronted
Background
workers
User DB
Analytics
DB
Queue
Develop-
ment VM
QA
Server
Single
Prod
Server
Onsite
Cluster
Public
Cloud
Contributor’s
laptop
Customer
Servers
6. Docker
Plataforma ligera de virtualización de contenedores
Herramientas para gestionar y ejecutar aplicaciones
Bajo la licencia Apache 2.0
Contruido por Docker, Inc.
7. ¿Qué son los contenedores?
• Virtualización del S.O.
• Aislamiento de
procesos
• Imágenes
• Automatización
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
8. Ventajas de los contenedores
Portable
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
9. Ventajas de los contenedores
Flexible
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
10. Ventajas de los contenedores
Velocidad
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
11. Ventajas de los contenedores
Eficiente
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
12. VMs vs. Contenedores
App A App B App C
Bins/Libs Bins/Libs Bins/Libs
Guest OS Guest OS Guest OS
Hypervisor
Host OS
Server (Host)
AppA AppA App B App B App C App C
Bins/Libs Bin/Libs
Content Manager (Docker)
Host OS
Server (Host)
VMs Contenedores
15. Motor Docker + Registro
Docker daemon
Docker client
Image source - https://docs.docker.com/engine/introduction/understanding-docker/
Client DOCKER_HOST Registry
docker build
docker run
docker pull
Docker daemon
Containers Images
16. Docker Daemon
Corre sobre un servidor o host
Construye imágenes
Ejecuta Contenedores
Usuarios interactúan con el proceso a través del cliente Docker
18. Docker Hub
Registro basado en la nube propiedad de Docker
Librería de imágenes públicas (repositorios Oficiales)
Almacenamiento para sus imágenes (repositorios públicos/privados)
Contrucción automátizada de imágenes
19. Imágen Docker
Template de solo léctura
Utilizado para ejecutar un contenedor
Union file systems para combinar
varias capas en una sola imágen
Imágenes construidas de una imagen
base, instrucciones añaden capas superiores
Instrucciones almacenadas en el Dockerfile
bootfs
kernel
Imágen Base
Imágen
Imágen
Contenedor
Refiere a la
imagen
padre
23. 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
Administrar un cluster no lo es tanto
• ¿Qué instancias están disponibles?
• ¿Qué recursos CPU/RAM están disponibles?
• ¿Cómo saber si un contenedor muere?
• ¿Cómo saber si una instancia muere?
• ¿Cómo integro otros recursos como un ELB?
27. Administración Clusters Sencilla
• No hay software que instalar o administrar
• Gestiona el estado del cluster
• Gestiona contenedores
• Control y Monitoreo
• Escalamiento de 1 a 1000´s de contenedores
43. Servicios
• Balancear tráfico entre varios contenedores
• Automáticamente recuperar instancias de fallas
• Descubrir servicios
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Elastic Load Balancing
44. Actualizar Servicio
• Escalar para mayor o menor capacidad
Elastic Load Balancing
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
45. Actualizar Servicio
• Desplegar nueva versión
• Drenar conexiones
Elastic Load Balancing
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
46. Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Elastic Load Balancing
Actualizar Servicio
• Desplegar nueva versión
• Drenar conexiones
47. Shared Data Volume
PHP App
Time of
day App
Shared Data Volume
PHP App
Time of
day App
Elastic Load Balancing
Shared Data Volume
PHP App
Time of
day App
• Desplegar nueva versión
• Drenar conexiones
Actualizar Servicio