DOCKER UN FUTURO LLENO DE CONTENEDORES
¿Quien soy yo?
• Formador desde 2011 por vocación
• DevOps Role
• Conocimientos técnicos avanzados en múltiples disciplinas
Docker ¿quién soy yo?
Rubén Gómez García
INTRODUCCIÓN
INTRODUCCIÓN A DOCKER
Introducción
Solomon Hykes
• Fundador y CTO de Docker
• Ex-Fundador y CEO de Dotcloud
Docker Introducción
Origen • 1979: Unix V7 - CHROOT
• 2000: FreeBSD Jails
• 2001: Linux VServer
• 2004: Oracle Solaris Containers
• 2005: Open VZ (Open Virtuozzo)
• 2006: Process Containers – CGROUPS
• 2008: LXC (Linux Containers)
• 2011: Warden
• 2013: LMCTFY
• 2013: Docker
Docker Introducción
¿QUÉ APORTA DOCKER EN EL MUNDO REAL?
INTRODUCCIÓN A DOCKER
Docker container
Docker ¿qué aporta en el mundo real?
¿Mi módulo en un contenedor?
Docker container
Docker ¿qué aporta en el mundo real?
¿Mi aplicación en múltiples contenedores?
Docker container
Docker ¿qué aporta en el mundo real?
¿Mi aplicación en cualquier infraestructura?
Docker container
Docker ¿qué aporta en el mundo real?
¿Mi aplicación en cualquier infraestructura de verdad?
Carácterísticas básicas
• Motor de despliegue de aplicaciones
• Empaquetado y despliegue en minutos
• Ejecución de contenedores más rápido que un hipervisor (¡Un segundo en algunos casos!)
• Aplicación Cliente-Servidor
Docker ¿qué aporta en el mundo real?
No es una Virtualización como la conocemos
• Ejecución en User Space.
• Posibilidad de ejecutar múltiples instancias al mismo tiempo
Docker ¿qué aporta en el mundo real?
Objetivos:
• Una revolución en CI y CD
• Aceleración de desarrollo y flujo de construcción rápido, eficiente y ligero
Docker ¿qué aporta en el mundo real?
It works on my machine!
Docker ¿qué aporta en el mundo real?
Solución de incompatibilidades entre entornos de desarrollo y producción
Docker ¿qué aporta en el mundo real?
3.10+
Ejecución de servicios y aplicaciones consistente en múltiples entornos:
Util para microservicios y arquitecturas orientadas a servicios
Docker ¿qué aporta en el mundo real?
Construcción y pruebas de aplicaciones complejas y arquitecturas en un host local
Docker ¿qué aporta en el mundo real?
Entornos con sandboxing para desarrollo, pruebas, formación, etc.
Docker ¿qué aporta en el mundo real?
Shippable SAAS
Docker ¿qué aporta en el mundo real?
ARQUITECTURA
INTRODUCCIÓN A DOCKER
Arquitectura de Docker
Docker Arquitectura
Arquitectura de Docker
Docker Arquitectura
Arquitectura
Docker Arquitectura
Run Docker, run!
Docker Arquitectura
Recursos de ejecución: docker run –network=app –d –p 8080:8080 –v $PWD:/var/www/html app-httpd:2.7
Image
Network Volume
Ports
Recursos: Dockerfiles
Docker Recursos
Recursos: Docker Compose
Docker Recursos
DEMOSTRACIÓN
DOCKER HANDS ON!
Creación de una imagen
Docker Hands On
docker build –t mi-app:0.0.1-SNAPSHOT .
Ejecución de un contenedor
Docker Hands On
docker run –d -P mi-app:0.0.1-SNAPSHOT
Ejecución de múltiples contenedores
Docker Hands On
docker run –d -P mi-app:0.0.1-SNAPSHOT docker run –d -P mi-app:0.0.1-SNAPSHOT
docker run –d -P mi-app:0.0.1-SNAPSHOT
Ejecución de un contenedor para desarrollo
Docker Hands On
Docker run –d –P –v $PWD:/var/www/html mi-app:0.0.1-SNAPSHOT
Orquestación de contenedores
Docker Hands On
docker-compose up
voting-app python
result-app Node.js
redis Redis
db Postgresql
worker .net
CASOS DE USO
DOCKER HANDS ON!
Desarrollo
• Definición de un entorno de desarrollo
• Equivalencia con el entorno de producción
• Independiente de la complejidad del entorno.
• docker compose up!!
Docker Casos de Uso
Pruebas
• Generación de múltiples entornos de pruebas
• Pruebas automatizadas o manuales
• Posibilidad de fotografías de estado, podemos volver al estado que queramos.
• Independiente de la complejidad de la aplicación
Docker Casos de Uso
Pruebas automatizadas: CI CD
• Creación de artefactos automatizada tras pasar las pruebas definidas
• Generación automatizada de artefactos para desarrollo
• Generación de artefactos automatizada para entornos de producción
Docker Casos de Uso
Análisis de productos
• Instalación de productos para análisis y pruebas de concepto
• Independiente de la plataforma
• No es necesario instalar nada!
• Sandboxing entre contenedores, no hay interferencias entre “instalaciones”
Docker Casos de Uso
Instalación de software bajo demanda
• Instalación de software bajo demanda
• Cambio de versiones sin necesidad de ”desinstalar” ni dejar “rastro” de la instalación anterior
• Soporte de software gráfico (eclipse, firefox…)
• Con rendimiento aceptable.
• Aumento de complejidad
• Posee restricciones en su uso.
Docker Casos de Uso
Y mucho más!
• Demos en remoto
• Entrega de producto final al cliente en imágenes empaquetadas
• ….
Docker Casos de Uso
SOLUCIONES COMERCIALES
DOCKER HANDS ON!
Docker swarm
Docker Soluciones Comerciales
Docker Cloud
Docker Soluciones Comerciales
Kubernetes
Docker Soluciones Comerciales
Universo Docker
Docker Ecosistema
FIN
DUDAS Y PREGUNTAS