Docker - El Futuro de los Linux Containers

  • 612 views
Uploaded on

En este evento realizado en @OpenWebinarsNet , OpenWebinars.net por David Muñoz @dperilla, experto en sistemas de Virtualización y CEO de Quaip, nos explicó las ventajas d usar Docker y nos inició en …

En este evento realizado en @OpenWebinarsNet , OpenWebinars.net por David Muñoz @dperilla, experto en sistemas de Virtualización y CEO de Quaip, nos explicó las ventajas d usar Docker y nos inició en su uso práctico. Acompañado de @sergiogomez y @jelukas89.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
612
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
13
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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
  • 6. 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
  • 7. Una analogía simple...
  • 8. También es una matriz NxN ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 9. 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
  • 10. Estamos eliminando el problema de la matriz NxN
  • 11. 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.
  • 12. La Solución de Docker
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. ¿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’.
  • 18. 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
  • 19. ¿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)
  • 20. 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.
  • 21. Ejemplo Práctico
  • 22. 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
  • 23. ¡Gracias!