Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Codemotion 2016 Madrid - Dockeriza tus aplicaciones Java

869 views

Published on

Los contenedores, y en particular Docker han sido una de las buzzwords de los últimos años pero, ¿realmente ofrecen lo que prometen?

En esta charla mostraré una introducción muy rápida a Docker y veremos cómo podemos aprovecharnos de todas sus ventajas tanto para el entorno de desarrollo como para desplegar nuestras aplicaciones Java.

Published in: Technology
  • Be the first to comment

Codemotion 2016 Madrid - Dockeriza tus aplicaciones Java

  1. 1. MADRID · NOV 18-19 · 2016 Dockeriza tus aplicaciones Java by Iván López - @ilopmar
  2. 2. ➢ Iván López - @ilopmar ➢ Desarrollador Groovy & Grails Miembro del equipo de Grails en OCI ➢ Coordinador @MadridGUG http://www.madridgug.com ➢ Organizador Greach (@greachconf) http://greachconf.com ➢ Speaker: SpringOne 2GX, GR8Conf, Codemotion, GeeCon, Spring IO, Greach, JavaCro, RigaDevDay,... Quien soy
  3. 3. 1. Problemas
  4. 4. Si sólo hubiera otra forma... Por favor, mátame para acabar con mi sufrimiento!
  5. 5. 2. Docker
  6. 6. ➢ Entorno de ejecución portable para applicaciones ➢ Cada aplicación se ejecuta en su propio contenedor aislado ➢ Elimina preocupaciones sobre compatibilidad en diferentes plataformas ➢ Como una VM sin el overhead de una VM ➢ Más ligero que una VM Introducción a Docker
  7. 7. Hypervisor Host OS Server VM App A Guest OS Bins/ Libs App A' Guest OS Bins/ Libs App B Guest OS Bins/ Libs Docker Host OS Server Bins/Libs Contenedor Bins/Libs A p p A A p p A' A p p B A p p B' A p p B' A p p B' VM vs Docker
  8. 8. $ docker run --rm ubuntu echo “Hola Codemotion!” Hola Codemotion! Docker básico
  9. 9. $ docker run --rm java:9 java -version openjdk version "9-Debian" OpenJDK Runtime Environment (build 9-Debian+0-9b140-1) OpenJDK 64-Bit Server VM (build 9-Debian+0-9b140-1, mixed mode) $ alias java="docker run --rm java:9 java" $ java -version Docker básico
  10. 10. FROM nginx:1.11.5 COPY index.html /usr/share/nginx/html/ EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] Dockerfile <h1>Hola Codemotion!</h1> index.html Crear imagen
  11. 11. $ docker build -t codemotion . Sending build context to Docker daemon 2.048 kB Step 1 : FROM nginx:1.11.5 ---> 6dde4f9ae735 Step 2 : COPY index.html /usr/share/nginx/html/ ---> c1c0f4eeffe4 Removing intermediate container 08fb8441e6be Step 3 : EXPOSE 80 ---> Running in 4d6151c06c9b ---> e07151354dc9 Removing intermediate container 4d6151c06c9b Step 4 : CMD nginx -g daemon off; ---> Running in 8edd425ce757 ---> ef945069377f Removing intermediate container 8edd425ce757 Successfully built ef945069377f Crear imagen
  12. 12. $ docker run --rm -p 1234:80 codemotion Ejecutar
  13. 13. $ docker run --rm -p 1234:80 codemotion Ejecutar
  14. 14. 3. Java & Docker
  15. 15. Resolvamos los problemas... ➢ Instalar Docker ➢ Clonar el repo ➢ Ejecutar script ➢ Profit!
  16. 16. Debian 8 Java 8 RabbitMQ 3.6 Postgres 9.4Spring Boot 1.4.1 Producer Consumer Grails 3.2.2 Nuestra aplicación
  17. 17. Two options La forma fácil Una imagen para gobernarlas a todas...
  18. 18. ➢ Todo instalada en el mismo contendor ➢ Más de un proceso por contenedor (!!) ➢ Fácil de mantener y utilizar ➢ Centrado sólo en entorno de desarrollo La forma fácil
  19. 19. Two options La forma flexible Orquestación al rescate
  20. 20. ➢ Cada aplicación en un contenedor diferente ➢ Sólo un proceso por contenedor ➢ Más complicado de mantener ➢ Más flexible y preparado para otros entornos La forma flexible
  21. 21. 4. Demo
  22. 22. 5. Resumen
  23. 23. Fácil de empezar a ser productivo Mismo entorno de dev para todos Control de la versión de cada componente de la arquitectura Orquestación es más complicada Pero es más potente ¡Todo el mundo es féliz! Resumen
  24. 24. ¡Gracias! ¿Preguntas? http://bit.ly/dockeriza-java @ilopmar lopez.ivan@gmail.com https://github.com/ilopmar Iván López

×