Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Construyendo contenedores para aplicaciones Jav...

Construyendo contenedores para aplicaciones Java con JIB

Contenedores han sido un gran éxito en todo el mundo y tuvo un gran impacto en los desarrolladores gracias a Docker. Actualmente, Docker es usado en diferentes etapas del ciclo de vida de la aplicación. Con la finalidad de crear imágenes, los desarrolladores necesitan conocimiento de Docker el cual requiere tiempo y esfuerzo para hacerlo correcto. En esta sesion, mostraremos como construir y publicar imágenes gracias a JIB, una herramienta construida por Google.

Avatar for Eddú Meléndez Gonzales

Eddú Meléndez Gonzales

August 25, 2018
Tweet

More Decks by Eddú Meléndez Gonzales

Other Decks in Technology

Transcript

  1. Quién soy? - Ingeniero de Software - Co-organizador en las

    comunidades de Java, Jenkins, Cloud Native - Miembro Asociado del Java Community Process (JCP) - Contribuyente de Proyectos Open Source - Autor de Spring Boot Mybatis Starter
  2. Aprendiendo sobre Docker 1. Ir a Google… buscar info sobre

    Docker 2. Instalar Docker 3. Hack… docker pull… docker images... docker run…. 4. Buscar más info sobre Docker 5. Aprender instrucciones del Dockerfile: FROM, ADD, COPY, RUN, ENTRYPOINT 6. Construir imágenes desde el Dockerfile… docker build… 7. Ejecutar mi container… docker run… error error éxito!
  3. dockerfile-plugin de Spotify o docker-maven-plugin de Fabric8 Ventajas: • Integración

    con el build tool (Maven en este caso) Desventajas: • Requiere de un Dockerfile (en el caso de dockerfile-plugin, opcional para docker-maven-plugin) • Aún se requiere de Docker CLI
  4. JIB • Open Source container image builder • Construye contenedores

    Docker and OCI (Open Container Images) • Integrado con Maven y Gradle • No hay necesidad de escribir el Dockerfile o tener Docker instalado • Integrado con Google Container Registry (GCR), AWS Elastic Container Registry (Amazon ECR) y Docker Hub Registry • Usa distroless por defecto, otro proyecto de Google
  5. [INFO] Built and pushed image as gcr.io/javadaype-demo/spring-boot-jib:v1 [INFO] [INFO] ------------------------------------------------------------------------

    [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:11 min [INFO] Finished at: 2018-08-25T10:46:40-05:00 [INFO] ------------------------------------------------------------------------ [INFO] Built and pushed image as gcr.io/javadaype-demo/spring-boot-jib:v2 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 10.670 s [INFO] Finished at: 2018-08-25T10:47:07-05:00 [INFO] ------------------------------------------------------------------------
  6. Gradle y JIB plugins { id 'com.google.cloud.tools.jib' version '0.9.9' }

    jib.to.image = 'gcr.io/my-project/image-built-with-jib'
  7. Qué sigue? Soy un desarrollador Java y quiero… • Mejorar

    mi productividad creando contenedores ◦ Usa jib ;) • Desplegar mis contenedores en producción ◦ Usa docker swarm #OkNo ◦ Usa Kubernetes! • Aprender Kubernetes • Mejorar mi productividad con Kubernetes ◦ Echale un vistazo a skaffold ◦ Skaffold integrada a build tools como maven y gradle, pronto! • Service mesh…. Istio!