Seminario CLEFormacion-docker

46
DOCKER UN FUTURO LLENO DE CONTENEDORES

Transcript of Seminario CLEFormacion-docker

Page 1: Seminario CLEFormacion-docker

DOCKER UN FUTURO LLENO DE CONTENEDORES

Page 2: Seminario CLEFormacion-docker

¿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

Page 3: Seminario CLEFormacion-docker

INTRODUCCIÓN

INTRODUCCIÓN A DOCKER

Page 4: Seminario CLEFormacion-docker

Introducción

Solomon Hykes

• Fundador y CTO de Docker

• Ex-Fundador y CEO de Dotcloud

Docker Introducción

Page 5: Seminario CLEFormacion-docker

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

Page 6: Seminario CLEFormacion-docker

¿QUÉ APORTA DOCKER EN EL MUNDO REAL?

INTRODUCCIÓN A DOCKER

Page 7: Seminario CLEFormacion-docker

Docker container

Docker ¿qué aporta en el mundo real?

¿Mi módulo en un contenedor?

Page 8: Seminario CLEFormacion-docker

Docker container

Docker ¿qué aporta en el mundo real?

¿Mi aplicación en múltiples contenedores?

Page 9: Seminario CLEFormacion-docker

Docker container

Docker ¿qué aporta en el mundo real?

¿Mi aplicación en cualquier infraestructura?

Page 10: Seminario CLEFormacion-docker

Docker container

Docker ¿qué aporta en el mundo real?

¿Mi aplicación en cualquier infraestructura de verdad?

Page 11: Seminario CLEFormacion-docker

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?

Page 12: Seminario CLEFormacion-docker

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?

Page 13: Seminario CLEFormacion-docker

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?

Page 14: Seminario CLEFormacion-docker

It works on my machine!

Docker ¿qué aporta en el mundo real?

Solución de incompatibilidades entre entornos de desarrollo y producción

Page 15: Seminario CLEFormacion-docker

Docker ¿qué aporta en el mundo real?

3.10+

Ejecución de servicios y aplicaciones consistente en múltiples entornos:

Page 16: Seminario CLEFormacion-docker

Util para microservicios y arquitecturas orientadas a servicios

Docker ¿qué aporta en el mundo real?

Page 17: Seminario CLEFormacion-docker

Construcción y pruebas de aplicaciones complejas y arquitecturas en un host local

Docker ¿qué aporta en el mundo real?

Page 18: Seminario CLEFormacion-docker

Entornos con sandboxing para desarrollo, pruebas, formación, etc.

Docker ¿qué aporta en el mundo real?

Page 19: Seminario CLEFormacion-docker

Shippable SAAS

Docker ¿qué aporta en el mundo real?

Page 20: Seminario CLEFormacion-docker

ARQUITECTURA

INTRODUCCIÓN A DOCKER

Page 21: Seminario CLEFormacion-docker

Arquitectura de Docker

Docker Arquitectura

Page 22: Seminario CLEFormacion-docker

Arquitectura de Docker

Docker Arquitectura

Page 23: Seminario CLEFormacion-docker

Arquitectura

Docker Arquitectura

Page 24: Seminario CLEFormacion-docker

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

Page 25: Seminario CLEFormacion-docker

Recursos: Dockerfiles

Docker Recursos

Page 26: Seminario CLEFormacion-docker

Recursos: Docker Compose

Docker Recursos

Page 27: Seminario CLEFormacion-docker

DEMOSTRACIÓN

DOCKER HANDS ON!

Page 28: Seminario CLEFormacion-docker

Creación de una imagen

Docker Hands On

docker build –t mi-app:0.0.1-SNAPSHOT .

Page 29: Seminario CLEFormacion-docker

Ejecución de un contenedor

Docker Hands On

docker run –d -P mi-app:0.0.1-SNAPSHOT

Page 30: Seminario CLEFormacion-docker

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

Page 31: Seminario CLEFormacion-docker

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

Page 32: Seminario CLEFormacion-docker

Orquestación de contenedores

Docker Hands On

docker-compose up

voting-app python

result-app Node.js

redis Redis

db Postgresql

worker .net

Page 33: Seminario CLEFormacion-docker

CASOS DE USO

DOCKER HANDS ON!

Page 34: Seminario CLEFormacion-docker

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

Page 35: Seminario CLEFormacion-docker

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

Page 36: Seminario CLEFormacion-docker

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

Page 37: Seminario CLEFormacion-docker

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

Page 38: Seminario CLEFormacion-docker

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

Page 39: Seminario CLEFormacion-docker

Y mucho más!

• Demos en remoto

• Entrega de producto final al cliente en imágenes empaquetadas

• ….

Docker Casos de Uso

Page 40: Seminario CLEFormacion-docker

SOLUCIONES COMERCIALES

DOCKER HANDS ON!

Page 41: Seminario CLEFormacion-docker

Docker swarm

Docker Soluciones Comerciales

Page 42: Seminario CLEFormacion-docker

Docker Cloud

Docker Soluciones Comerciales

Page 43: Seminario CLEFormacion-docker

Kubernetes

Docker Soluciones Comerciales

Page 44: Seminario CLEFormacion-docker

Universo Docker

Docker Ecosistema

Page 45: Seminario CLEFormacion-docker

FIN

DUDAS Y PREGUNTAS

Page 46: Seminario CLEFormacion-docker