Java es una tecnología muy importante para Google. Lo lógico es pensar en Android y en ART si miramos el mercado de consumo, aunque no hay que descartar su utilización, posiblemente con un papel protagonista, en las «bambalinas» de la compañía.
Según informan en eWeek, con el fin de facilitar la vida a los desarrolladores de Java, Google ha anunciado la publicación como Open Source de Jib, una herramienta para ayudar en la construcción de aplicaciones de Java que van dentro de contenedores. Entrando en detalles técnicos, fue descrito por el ingeniero Qingyang Chen como un constructor de imágenes de contenedor diseñado para manejar todos los pasos de la creación de una aplicación Java empaquetada que es introducida en un contenedor.
Docker ha ayudado mucho en la facilitación de la creación de contenedores, una tecnología que lleva existiendo desde años, pero que hasta no hace tanto se mostraba como algo complejo para la mayoría. Sin embargo, la contenedorización de una aplicación Java tampoco es que resulte demasiado sencilla a pesar de las ayudas actuales, ya que para ello hay que escribir un Dockerfile, ejecutar el demonio de Docker como root y esperar que los procesos de construcción se completen antes de colocar la imagen en un registro remoto.
Jib, que está implementado en Java y está integrado con Maven y Gradle, se dedica principalmente a eliminar los requerimientos mencionados en el párrafo anterior. Esto permite acortar el tiempo necesario para servir aplicaciones Java en contenedores sin tener que estar pendientes de elementos como las instrucciones de construcción del contenedor presentes en el Dockerfile o la creación de un fichero JAR para todo lo asociado con la aplicación.
Para reducir todavía más los tiempos de creación, Jib se apoya en una caché de registro y las capas de imágenes, pudiendo organizar así una aplicación en imágenes distintas y reconstruyendo solo aquellas que hayan cambiado. Esto quiere decir que solo se reconstruyen las partes cuyo código haya sido modificado. También soporta el uso de lenguaje declarativo para construir imágenes de contenedor a partir de metadatos de Maven y Gradle.
En resumidas cuentas, el propósito de Jib es la de facilitar y mejorar la productividad a la hora de crear aplicaciones de Java que son introducidas en contenedores Docker, por lo que estamos ante una herramienta orientada a desarrolladores. Su código ha sido publicado en GitHub bajo Apache License 2.0, la licencia que habitualmente emplea Google.