Docker - Sysmana 2014

25
Docker, el futuro de la distribución de aplicaciones.

description

Presentación de Docker en la Sysmana 2014, por David Muñoz

Transcript of Docker - Sysmana 2014

Page 1: Docker - Sysmana 2014

Docker, el futuro de la distribución de aplicaciones.

Page 2: Docker - Sysmana 2014

● Socio Fundador de QuaiP.com

● VoipEngineer con Asterisk / Kamailio.

● SysOp Linux.

● Formador online de Asterisk, Virtualizacion y Linux.

David Muñoz - @dperilla

Page 3: Docker - Sysmana 2014

● Desarrollo e infraestructuras avanzadas de VoIP.

● Servidores de streaming de radio y TV.

● Web Hosting Avanzado, VPS y Servidores Dedicados.

Page 4: Docker - Sysmana 2014
Page 5: Docker - Sysmana 2014

DEVOPS SYSOPS

Page 6: Docker - Sysmana 2014

Static website

Web frontend

User DB

Queue Analytics DB

Background workers

API endpoint

nginx 1.5 + modsecurity + openssl + bootstrap 2

postgresql + pgv8 + v8

hadoop + hive + thrift + OpenJDK

Ruby + Rails + sass + Unicorn

Redis + redis-sentinel

Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs

Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client

Development VM

QA server

Public Cloud

Disaster recovery

Contributor’s laptop

Production Servers

El Reto:M

ult

iplic

ity

of

Stac

ks

Mu

ltip

licit

y o

f h

ard

war

e en

viro

nm

ents

Production Cluster

Customer Data Center

Do

services and

ap

ps in

teract ap

pro

priately?

Can

I migrate

smo

oth

ly and

q

uickly?

Page 7: Docker - Sysmana 2014

La pesadilla de la compatibilidad NxN

Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Development VM QA Server Single Prod

Server Onsite Cluster Public Cloud Contributor’s laptop

Customer Servers

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

Page 8: Docker - Sysmana 2014

Una analogía simple...

Page 9: Docker - Sysmana 2014

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

? ? ? ? ? ? ?

También es una matriz NxN

Page 10: Docker - Sysmana 2014

ltip

les

bie

nes

ltip

les

mét

od

os

de

tran

spo

rte

y d

e al

mac

enam

ien

to

Preocu

pació

n so

bre

cóm

o in

teractúan

los

bien

es (Ej.: Gran

os

de café y Esp

ecias ju

nto

s)

El transp

orte es

rápid

o y sen

cillo (d

el B

arco a la grú

a, qu

e lo

pasa al cam

ión

,...)

¿La solución? El transporte en contenedores

De esta forma podemos cargar, descargar, apilar y transportar el container largas distancias facilitando el transbordo de un medio de transporte a otro.

Un contenedor estándar que carga cualquier tipo de bien y que permanece cerrado hasta llegar a su destino.

Page 11: Docker - Sysmana 2014

Estamos eliminando el problema de la matriz NxN

Page 12: Docker - Sysmana 2014

Y así apareció el Sistema Intermodal de Transporte de Contenedores

• Actualmente, el 90% de todas las mercancías en barco se envían en contenedores estándar.• Se ha reducido en orden de magnitud el coste y el tiempo de carga/descarga de los barcos.• Reducción masiva de las pérdidas por robos de las mercancías o daños.• Enorme reducción del coste de los productos finales (de más del 25% a menos del 3%).• Globalización masiva del transporte de mercancías.• Más de 5.000 barcos en todo el mundo transportan 200M de contenedores al año.

Page 13: Docker - Sysmana 2014

La Solución de Docker

Page 14: Docker - Sysmana 2014

Static website Web frontend User DB Queue Analytics DB

VMsQA Server Cloud Público Laptop

Docker es un sistema de transporte de contenedores para código

ltip

les

stac

ksM

últ

iple

s en

torn

os

har

dw

are

Clúster enproducción

Data Center para Clientes

¿Los servicio

s y las A

pp

s interactú

an d

e la fo

rma ad

ecuad

a?

¿Pued

o m

igrar ráp

idam

ente y sin

p

rob

lemas?

… de forma que se pueda manipular mediante operaciones estándar y ejecutar de manera consistente en cualquier hardware.

Docker es un motor que permite que encapsular cualquier información y hacerla portátil, autosuficiente y ligera

Page 15: Docker - Sysmana 2014

Static website Web frontend User DB Queue Analytics DB

VMsQA Server Cloud Público Laptop

Or... put more simplyM

últ

iple

s st

acks

ltip

les

ento

rno

s h

ard

war

e

Clúster enproducción

Data Center para Clientes

¿Los servicio

s y las A

pp

s interactú

an d

e la fo

rma ad

ecuad

a?

¿Pued

o m

igrar ráp

idam

ente y sin

p

rob

lemas?

DevOps: “Crea una vez y ejecútalo donde quieras”.

SysOps: “Configúralo una vez y ejecútalo donde quieras”.

Page 16: Docker - Sysmana 2014

Static website

Web frontend

Background workers

User DB

Analytics DB

Queue

Development VM QA Server Single Prod

Server Onsite Cluster Public Cloud Contributor’s laptop

Customer Servers

Docker soluciona el problema de la matriz NXN

Page 17: Docker - Sysmana 2014

AppA

Containers vs. VMs

Hypervisor (Type 2)

Host OS

Server

GuestOS

Bins/Libs

AppA’

GuestOS

Bins/Libs

AppB

GuestOS

Bins/Libs

Ap

p A

Do

cker

Host OS

Server

Bins/Libs

Ap

p A

Bins/Libs

Ap

p B

Ap

p B

Ap

p B

Ap

p B

’VM

Container

Los Containers están aislados pero comparten un mismo SO y, cuando pueden, binarios y/o librerías.

GuestOS

GuestOS

Page 18: Docker - Sysmana 2014

¿Por qué son tan ligeros los Containers con Docker?

Bins/Libs

AppA

Aplicación Original

No hace falta coger espacio ni recursos del OS, tampoco hay necesidad de reiniciar el sistema.

Ap

p Δ

Bin

s/

AppA

Bins/Libs

AppA’

GuestOS

Bins/Libs

Modificación de la Aplicación

El sistema de unión de ficheros nos permite tener que guardar sólo los cambios entre un container A y un container A’.

VMsTodas las aplicaciones, cada copia de cada aplicación, e incluso cada modificación de una aplicación requiere un nuevo servidor virtual!

AppA

GuestOS

Bins/Libs

Copia de la Aplicación

No hay OS y se pueden compartir binarios y/o librerías.

AppA

GuestOS

GuestOS

VMs Containers

Page 19: Docker - Sysmana 2014

Ejemplo de fichero con Docker# Nginx

#

# VERSION 0.0.1

FROM ubuntu

MAINTAINER Guillaume J. Charmes <[email protected]>

# make sure the package repository is up to date

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.

list

RUN apt-get update

RUN apt-get install -y inotify-tools nginx apache2 openssh-server

Page 20: Docker - Sysmana 2014

¿Cuáles son los elementos básicos de Docker?

Source Code

Repository

DockerfileFor A

Docker Engine

DockerContainer

Image Registry

Build

Do

cker

Host 2 OS 2 (Linux)

Co

ntain

er A

Co

ntain

er B

Co

ntain

er C

Co

ntain

er A

Push

SearchPull

Run

Host 1 OS (Linux)

Page 21: Docker - Sysmana 2014

Cambios y actualizaciones

Docker Engine

DockerContainer

Image Registry

Docker Engine

Push

Update

Bins/Libs

AppA

Ap

p Δ

Bin

s/

Base Container

Image

Ahora el host está corriendo con A’’

Container Mod A’’

Ap

p Δ

Bin

s/

Bins/Libs

AppA

Bin

s/

Bins/Libs

AppA’’

Host ejecutando A quiere upgradearse a A’’. Solicita la actualización. Obtiene sólo la diferencia.

Container Mod A’

Page 23: Docker - Sysmana 2014

Casos de usosUse Case Examples LinkBuild your own PaaS Dokku - Docker powered mini-Heroku. The smallest PaaS implementation you’ve ever seen http://bit.ly/191Tgsx

Web Based Environment for Instruction

JiffyLab – web based environment for the instruction, or lightweight use of, Python and UNIX shell

http://bit.ly/12oaj2K

Easy Application Deployment  

Deploy Java Apps With Docker = Awesome http://bit.ly/11BCvvu

Running Drupal on Docker http://bit.ly/15MJS6BInstalling Redis on Docker http://bit.ly/16EWOKh

Create Secure Sandboxes Docker makes creating secure sandboxes easier than ever http://bit.ly/13mZGJH

Create your own SaaS Memcached as a Service http://bit.ly/11nL8vhAutomated Application Deployment

Push-button Deployment with Docker http://bit.ly/1bTKZTo

Continuous Integration and Deployment

Next Generation Continuous Integration & Deployment with dotCloud’s Docker and Strider http://bit.ly/ZwTfoy

Lightweight Desktop Virtualization

Docker Desktop: Your Desktop Over SSH Running Inside Of A Docker Container 

http://bit.ly/14RYL6x

Page 24: Docker - Sysmana 2014

¡¡Muchas gracias!!

a Diego Castillo @dcastillobarnesSergio Gómez @sergiogomez

José Ramón Albendín @jralbendin

y por supuestoA TODOS VOSOTROS

Page 25: Docker - Sysmana 2014

Preguntas?