Seminario CLEFormacion-docker

Post on 23-Jan-2018

125 views 1 download

Transcript of Seminario CLEFormacion-docker

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