codemotion 2016 madrid - dockeriza tus aplicaciones java

31
MADRID · NOV 18-19 · 2016 Dockeriza tus aplicaciones Java by Iván López - @ilopmar

Upload: ivan-lopez

Post on 08-Jan-2017

502 views

Category:

Technology


1 download

TRANSCRIPT

MADRID · NOV 18-19 · 2016

Dockeriza tus aplicaciones Java

by Iván López - @ilopmar

➢ 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

1.Problemas

Si sólo hubieraotra forma...

Por favor, mátame para acabar conmi sufrimiento!

2.Docker

➢ 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

Hypervisor

Host OS

Server

VM

AppA

GuestOS

Bins/Libs

AppA'

GuestOS

Bins/Libs

AppB

GuestOS

Bins/Libs

Do

cker

Host OS

Server

Bins/Libs

Contenedor

Bins/Libs

App A

App A'

App B

App B'

App B'

App B'

VM vs Docker

$ docker run --rm ubuntu echo “Hola Codemotion!”Hola Codemotion!

Docker básico

$ docker run --rm java:9 java -versionopenjdk 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

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

$ 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

$ docker run --rm -p 1234:80 codemotion

Ejecutar

$ docker run --rm -p 1234:80 codemotion

Ejecutar

3.Java & Docker

Resolvamos los problemas...

➢ Instalar Docker

➢ Clonar el repo

➢ Ejecutar script

➢ Profit!

Debian 8 Java 8 RabbitMQ 3.6 Postgres 9.4Spring Boot 1.4.1

Producer Consumer

Grails 3.2.2

Nuestra aplicación

Two options

La forma fácil

Una imagen para gobernarlas a todas...

➢ 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

Two options

La forma flexible

Orquestación al rescate

➢ 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

4.Demo

5.Resumen

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 mundoes féliz!

Resumen

¡Gracias!¿Preguntas?

http://bit.ly/dockeriza-java

@ilopmar

[email protected]

https://github.com/ilopmar

Iván López