SlideShare a Scribd company logo
1 of 24
Download to read offline
Docker, el futuro de la
distribución de aplicaciones.
David Muñoz - @dperilla
● Fundador de QuaiP.com
● VoipEngineer con Asterisk / Kamailio.
● SysOp Linux.
● Formador online de Asterisk, Virtualizació n y Linux.
Sergio Gómez - @sergiogomez

● Socio fundador de QuaiP.com
● Web Developer Ruby on Rails / HTML / CSS / jQuery
● SysOp LAMP, git...
● Desarrollo e infraestructuras avanzadas de VoIP.
● Servidores de streaming de radio y TV.
● Web Hosting Avanzado, VPS y Servidores Dedicados.
El Reto:
Multiplicity of
Stacks

Static website

postgresql + pgv8 + v8

nginx 1.5 + modsecurity + openssl + bootstrap 2

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

Queue

Analytics DB

Redis + redis-sentinel

hadoop + hive + thrift + OpenJDK

Web frontend
Ruby + Rails + sass + Unicorn

Do services and
apps interact
appropriately?

User DB

API endpoint

Development VM

Production Cluster
Public Cloud

QA server
Disaster recovery
Customer Data Center

Contributor’s laptop
Production Servers

Can I migrate
smoothly and
quickly?

Multiplicity of
hardware
environments

Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client
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
Una analogía simple...
También es una matriz NxN
?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?
Preocupación sobre
cómo interactúan los
bienes (Ej.: Granos
de café y Especias
juntos)

Un contenedor estándar que
carga cualquier tipo de bien y
que permanece cerrado hasta
llegar a su destino.
De esta forma podemos cargar,
descargar, apilar y transportar el
container largas distancias
facilitando el transbordo de un
medio de transporte a otro.

El transporte es
rápido y sencillo (del
Barco a la grúa, que
lo pasa al camión,...)

Múltiples métodos
de transporte y de
almacenamiento

Múltiples bienes

¿La solución? El transporte en contenedores
Estamos eliminando el problema de la matriz NxN
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 un 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.
La Solución de Docker
Static website

User DB

Web frontend

Queue

Analytics DB

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

Múltiples entornos
hardware

VMs

QA Server

Data Center para
Clientes

Cloud Público

Clúster en
producción

Laptop

¿Puedo migrar
rápidamente y sin
problemas?

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

¿Los servicios y las
Apps interactúan de
la forma adecuada?

Múltiples stacks

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

User DB

Web frontend

Queue

Analytics DB

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

Múltiples entornos
hardware

VMs

QA Server

Data Center para
Clientes

Cloud Público

Clúster en
producción

Laptop

¿Puedo migrar
rápidamente y sin
problemas?

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

¿Los servicios y las
Apps interactúan de
la forma adecuada?

Múltiples stacks

Or... put more simply
Docker soluciona el problema de la matriz 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
Containers vs. VMs
App
A

App
A’

App
B

Bins/
Libs

Bins/
Libs

Bins/
Libs

Guest
OS

Guest
OS
Guest
OS

Guest
OS
Guest
OS

VM

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

Host OS

Host OS

Server

Server

Docker

Bins/Libs

App B’

App B’

App B’

Bins/Libs

App B

App A’

Hypervisor (Type 2)

App A

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

Bins/
Libs

Bins/
Libs

Bins/
Libs

Guest
OS

App Δ

App
A

Guest
OS
Guest
OS

App
A

Bins/
Libs

App
A
Bins/

App
A’

App
A

Guest
OS

Containers

Aplicación
Original

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

Copia de la
Aplicación

Modificación de la
Aplicación

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

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

El sistema de unión de
ficheros nos permite
tener que guardar sólo
los cambios entre un
container A y un
container A’.
Ejemplo de fichero con Docker
# Nginx
#
# VERSION
FROM

0.0.1
ubuntu

MAINTAINER Guillaume J. Charmes <guillaume@dotcloud.com>

# 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
¿Cuáles son los elementos básicos de Docker?
Container A

Push
Docker
Container
Image
Registry
Search

Run

Build
Dockerfile
For
A

Docker

Container
C

Host 1 OS (Linux)

Container
B

Docker Engine

Container
A

Source
Code
Repository

Pull

Host 2 OS 2 (Linux)
Cambios y actualizaciones
Push

App Δ

App
A

Bins/

Bins/
Libs

Docker
Container
Image
Registry

Container
Mod A’

Container
Mod A’’

App Δ

Base
Container
Image

Bins/
Libs

Bins/

App
A
Bins/
Libs

Bins/

App
A’’

Update

Docker Engine
Ahora el host está corriendo con A’’

Docker Engine
Host ejecutando A quiere upgradearse a A’’.
Solicita la actualización. Obtiene sólo la diferencia.
Ejemplo Práctico
Casos de usos
Use Case
Build your own PaaS

Examples
Link
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 http://bit.ly/12oaj2K
shell

Easy Application
Deployment
 
 

Deploy Java Apps With Docker = Awesome

http://bit.ly/11BCvvu

Running Drupal on Docker
Installing Redis on Docker

http://bit.ly/15MJS6B
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
Automated Application
Push-button Deployment with Docker
Deployment
Continuous Integration and Next Generation Continuous Integration & Deployment with dotCloud’s Docker and Strider
Deployment

http://bit.ly/11nL8vh
http://bit.ly/1bTKZTo

Lightweight Desktop
Virtualization

http://bit.ly/14RYL6x

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

http://bit.ly/ZwTfoy
¡Gracias!

More Related Content

Recently uploaded

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 

Recently uploaded (11)

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Docker - El Futuro de los Linux Containers

  • 1. Docker, el futuro de la distribución de aplicaciones.
  • 2. David Muñoz - @dperilla ● Fundador de QuaiP.com ● VoipEngineer con Asterisk / Kamailio. ● SysOp Linux. ● Formador online de Asterisk, Virtualizació n y Linux.
  • 3. Sergio Gómez - @sergiogomez ● Socio fundador de QuaiP.com ● Web Developer Ruby on Rails / HTML / CSS / jQuery ● SysOp LAMP, git...
  • 4. ● Desarrollo e infraestructuras avanzadas de VoIP. ● Servidores de streaming de radio y TV. ● Web Hosting Avanzado, VPS y Servidores Dedicados.
  • 5.
  • 6. El Reto: Multiplicity of Stacks Static website postgresql + pgv8 + v8 nginx 1.5 + modsecurity + openssl + bootstrap 2 Background workers Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Queue Analytics DB Redis + redis-sentinel hadoop + hive + thrift + OpenJDK Web frontend Ruby + Rails + sass + Unicorn Do services and apps interact appropriately? User DB API endpoint Development VM Production Cluster Public Cloud QA server Disaster recovery Customer Data Center Contributor’s laptop Production Servers Can I migrate smoothly and quickly? Multiplicity of hardware environments Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client
  • 7. 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
  • 9. También es una matriz NxN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 10. Preocupación sobre cómo interactúan los bienes (Ej.: Granos de café y Especias juntos) Un contenedor estándar que carga cualquier tipo de bien y que permanece cerrado hasta llegar a su destino. De esta forma podemos cargar, descargar, apilar y transportar el container largas distancias facilitando el transbordo de un medio de transporte a otro. El transporte es rápido y sencillo (del Barco a la grúa, que lo pasa al camión,...) Múltiples métodos de transporte y de almacenamiento Múltiples bienes ¿La solución? El transporte en contenedores
  • 11. Estamos eliminando el problema de la matriz NxN
  • 12. 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 un 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.
  • 13. La Solución de Docker
  • 14. Static website User DB Web frontend Queue Analytics DB Docker es un motor que permite que encapsular cualquier información y hacerla portátil, autosuficiente y ligera Múltiples entornos hardware VMs QA Server Data Center para Clientes Cloud Público Clúster en producción Laptop ¿Puedo migrar rápidamente y sin problemas? … de forma que se pueda manipular mediante operaciones estándar y ejecutar de manera consistente en cualquier hardware. ¿Los servicios y las Apps interactúan de la forma adecuada? Múltiples stacks Docker es un sistema de transporte de contenedores para código
  • 15. Static website User DB Web frontend Queue Analytics DB DevOps: “Crea una vez y ejecútalo donde quieras”. Múltiples entornos hardware VMs QA Server Data Center para Clientes Cloud Público Clúster en producción Laptop ¿Puedo migrar rápidamente y sin problemas? SysOps: “Configúralo una vez y ejecútalo donde quieras”. ¿Los servicios y las Apps interactúan de la forma adecuada? Múltiples stacks Or... put more simply
  • 16. Docker soluciona el problema de la matriz 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
  • 17. Containers vs. VMs App A App A’ App B Bins/ Libs Bins/ Libs Bins/ Libs Guest OS Guest OS Guest OS Guest OS Guest OS VM Los Containers están aislados pero comparten un mismo SO y, cuando pueden, binarios y/o librerías. Host OS Host OS Server Server Docker Bins/Libs App B’ App B’ App B’ Bins/Libs App B App A’ Hypervisor (Type 2) App A Container
  • 18. ¿Por qué son tan ligeros los Containers con Docker? VMs Bins/ Libs Bins/ Libs Bins/ Libs Guest OS App Δ App A Guest OS Guest OS App A Bins/ Libs App A Bins/ App A’ App A Guest OS Containers Aplicación Original VMs Todas las aplicaciones, cada copia de cada aplicación, e incluso cada modificación de una aplicación requiere un nuevo servidor virtual! Copia de la Aplicación Modificación de la Aplicación No hace falta coger espacio ni recursos del OS, tampoco hay necesidad de reiniciar el sistema. No hay OS y se pueden compartir binarios y/o librerías. El sistema de unión de ficheros nos permite tener que guardar sólo los cambios entre un container A y un container A’.
  • 19. Ejemplo de fichero con Docker # Nginx # # VERSION FROM 0.0.1 ubuntu MAINTAINER Guillaume J. Charmes <guillaume@dotcloud.com> # 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
  • 20. ¿Cuáles son los elementos básicos de Docker? Container A Push Docker Container Image Registry Search Run Build Dockerfile For A Docker Container C Host 1 OS (Linux) Container B Docker Engine Container A Source Code Repository Pull Host 2 OS 2 (Linux)
  • 21. Cambios y actualizaciones Push App Δ App A Bins/ Bins/ Libs Docker Container Image Registry Container Mod A’ Container Mod A’’ App Δ Base Container Image Bins/ Libs Bins/ App A Bins/ Libs Bins/ App A’’ Update Docker Engine Ahora el host está corriendo con A’’ Docker Engine Host ejecutando A quiere upgradearse a A’’. Solicita la actualización. Obtiene sólo la diferencia.
  • 23. Casos de usos Use Case Build your own PaaS Examples Link 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 http://bit.ly/12oaj2K shell Easy Application Deployment     Deploy Java Apps With Docker = Awesome http://bit.ly/11BCvvu Running Drupal on Docker Installing Redis on Docker http://bit.ly/15MJS6B 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 Automated Application Push-button Deployment with Docker Deployment Continuous Integration and Next Generation Continuous Integration & Deployment with dotCloud’s Docker and Strider Deployment http://bit.ly/11nL8vh http://bit.ly/1bTKZTo Lightweight Desktop Virtualization http://bit.ly/14RYL6x Docker Desktop: Your Desktop Over SSH Running Inside Of A Docker Container   http://bit.ly/ZwTfoy