Is there an OpenJDK 8?

Imagen Docker OpenJDK: Deprecada y Reemplazada

14/05/2023

Valoración: 4.22 (13720 votos)

En el vertiginoso mundo del desarrollo de software, donde la eficiencia y la seguridad son tan cruciales como la velocidad en la vuelta de clasificación, una noticia ha puesto en alerta a la comunidad de desarrolladores Java: la imagen oficial de OpenJDK en Docker ha sido oficialmente declarada como deprecada. Este anuncio, que puede parecer un simple cambio técnico, tiene implicaciones profundas para miles de proyectos y equipos que han confiado en esta imagen como la base de sus aplicaciones contenerizadas. Pero que no cunda el pánico. Este no es el final de Java en contenedores; es, más bien, una evolución natural del ecosistema. A continuación, desglosaremos qué significa esta deprecación, por qué ha ocurrido y, lo más importante, cómo navegar la transición hacia las nuevas alternativas recomendadas.

Is OpenJDK docker image deprecated?
This image is officially deprecated and all users are recommended to find and use suitable replacements ASAP. Some examples of other Official Image alternatives (listed in alphabetical order with no intentional or implied preference): amazoncorretto. eclipse-temurin.
Índice de Contenido

El Fin de una Era: ¿Qué Significa la Deprecación?

La notificación oficial es clara y directa: la imagen `openjdk` que muchos hemos utilizado en nuestros Dockerfiles ya no es la opción recomendada y, de hecho, ha dejado de recibir actualizaciones de seguridad y mantenimiento más allá de julio de 2022. Esto significa que cualquier aplicación que continúe utilizando esta imagen base se expone a vulnerabilidades no parcheadas y a una base tecnológica estancada. La única excepción son las compilaciones de Acceso Anticipado (Early Access), que seguirán actualizándose, pero estas no son aptas para entornos de producción.

Este cambio no surge de la nada. Es el resultado de un ecosistema Java que ha madurado enormemente. Grandes actores del mundo tecnológico como Amazon, Microsoft, IBM y la Fundación Eclipse han invertido recursos significativos en proporcionar sus propias distribuciones de OpenJDK, optimizadas y con soporte a largo plazo. La existencia de estas alternativas robustas y bien mantenidas ha hecho que una imagen genérica y centralizada sea redundante. En lugar de un único punto de referencia, la comunidad ahora tiene un abanico de opciones especializadas, cada una con sus propias ventajas.

Las Alternativas al Podio: ¿A Dónde Migrar Ahora?

La propia notificación de deprecación nos guía hacia las alternativas más viables y recomendadas. La migración no solo es necesaria, sino que también es una oportunidad para elegir una distribución de OpenJDK que se alinee mejor con las necesidades de nuestro proyecto o la infraestructura en la que se despliega. A continuación, presentamos las principales contendientes:

  • Amazon Corretto (`amazoncorretto`): Una distribución de OpenJDK sin costo, lista para producción y con soporte a largo plazo de Amazon. Es la misma distribución que Amazon utiliza internamente para miles de sus servicios.
  • Eclipse Temurin (`eclipse-temurin`): Un proyecto de la Fundación Eclipse bajo el grupo Adoptium, que proporciona binarios de OpenJDK de alta calidad y probados por la comunidad. Es considerada una de las sucesoras espirituales más directas del antiguo proyecto AdoptOpenJDK.
  • IBM Semeru Runtimes (`ibm-semeru`): La oferta de IBM, que proporciona binarios de OpenJDK con la opción de usar la JVM OpenJ9, conocida por su bajo consumo de memoria y su rápido tiempo de arranque, ideal para microservicios.
  • Microsoft Build of OpenJDK (`microsoft/openjdk`): La propia distribución de Microsoft, usada en servicios como Azure y Minecraft. Ofrece una integración y soporte sólidos dentro del ecosistema de Microsoft.
  • SAPMachine (`sapmachine`): Mantenida por SAP, esta distribución de OpenJDK es la base sobre la que corren muchos de los productos Java de la compañía. Está rigurosamente probada para cargas de trabajo empresariales.

Tabla Comparativa de Alternativas

Para facilitar la elección, hemos preparado una tabla que resume las características clave de cada una de las principales alternativas a la imagen Docker oficial.

Proveedor / ProyectoNombre de la Imagen DockerPunto Fuerte PrincipalIdeal Para...
AmazonamazoncorrettoSoporte a largo plazo (LTS) y optimización para AWS.Aplicaciones desplegadas en el ecosistema de Amazon Web Services.
Eclipse Adoptiumeclipse-temurinCompilación neutral, impulsada por la comunidad y con un riguroso proceso de pruebas.Proyectos que buscan una opción estándar y de código abierto puro.
IBMibm-semeruIncluye la opción de la JVM OpenJ9 para un rendimiento optimizado en memoria y arranque.Microservicios y aplicaciones donde el consumo de recursos es crítico.
Microsoftmcr.microsoft.com/openjdk/jdkSoporte y mantenimiento directo de Microsoft.Desarrolladores y empresas que operan principalmente en el ecosistema de Azure.
SAPsapmachineProbada en entornos empresariales de alta exigencia por SAP.Aplicaciones empresariales críticas que requieren máxima estabilidad.

Guía Práctica para la Migración

La migración es, en la mayoría de los casos, sorprendentemente sencilla. El primer paso consiste en modificar la instrucción `FROM` en tu Dockerfile.

Por ejemplo, si antes tenías:

FROM openjdk:11-jdk-slim

Podrías cambiarlo por su equivalente en Eclipse Temurin:

FROM eclipse-temurin:11-jdk-focal

Sin embargo, es crucial no quedarse solo en este cambio. Se deben considerar los siguientes puntos:

  1. Sistema Operativo Base: La imagen original de `openjdk` ofrecía variantes basadas en diferentes distribuciones de Linux (como Debian, Alpine, etc.). Asegúrate de que la nueva imagen que elijas tenga una base compatible con las dependencias de tu aplicación o ajusta tus scripts de instalación de paquetes.
  2. Paquetes Adicionales: Revisa si tu Dockerfile instala herramientas adicionales (`curl`, `git`, `ca-certificates`, etc.). Es posible que la nueva imagen base ya los incluya o, por el contrario, que carezca de alguno que antes estaba presente.
  3. Pruebas Exhaustivas: La recomendación más importante es probar. Ejecuta todo tu conjunto de pruebas (unitarias, de integración, de extremo a extremo) después de cambiar la imagen base para asegurar que no haya regresiones inesperadas en el comportamiento de la aplicación.

Preguntas Frecuentes (FAQ)

¿Ha muerto OpenJDK?

Absolutamente no. OpenJDK, el proyecto de código abierto que implementa la especificación de Java SE, está más vivo y activo que nunca. Lo que se ha deprecado es una imagen específica de Docker que lo empaquetaba, no el kit de desarrollo en sí. La proliferación de alternativas es, de hecho, una señal de la salud y la madurez del ecosistema.

Is OpenJDK docker image deprecated?
This image is officially deprecated and all users are recommended to find and use suitable replacements ASAP. Some examples of other Official Image alternatives (listed in alphabetical order with no intentional or implied preference): amazoncorretto. eclipse-temurin.

¿Tengo que pagar por estas nuevas imágenes?

No. Todas las alternativas mencionadas (Amazon Corretto, Eclipse Temurin, IBM Semeru, etc.) son distribuciones de OpenJDK de código abierto y de uso gratuito, incluso para fines comerciales.

¿Qué imagen debería elegir?

La elección depende de tus necesidades. Como regla general: si tu infraestructura está en AWS, Amazon Corretto es una opción natural. Si buscas una opción neutral y comunitaria, Eclipse Temurin es excelente. Si la eficiencia de memoria es tu máxima prioridad, prueba IBM Semeru con OpenJ9. Lo mejor es evaluar dos o tres opciones y ver cuál se adapta mejor a tu carga de trabajo.

¿Mi versión de Java, como OpenJDK 8 o 11, seguirá disponible?

Sí. La mayoría de los proyectos empresariales aún dependen de versiones con Soporte a Largo Plazo (LTS) como Java 8, 11, 17 o 21. Todos los proveedores principales ofrecen imágenes Docker para estas versiones, garantizando que puedas migrar sin necesidad de actualizar tu versión de Java si no estás preparado para ello. Empresas como OpenLogic, por ejemplo, continúan proporcionando compilaciones trimestrales gratuitas de estas versiones.

¿Qué pasa si no hago nada y sigo usando la imagen `openjdk`?

Tus compilaciones existentes seguirán funcionando por un tiempo. Sin embargo, el principal riesgo es la seguridad. Al no recibir actualizaciones, tu aplicación se volverá vulnerable a nuevos exploits descubiertos. Con el tiempo, los registros de Docker podrían eliminar las imágenes antiguas o tu pipeline de CI/CD podría fallar al intentar descargar una etiqueta que ya no existe. La inacción es una estrategia de alto riesgo.

Si quieres conocer otros artículos parecidos a Imagen Docker OpenJDK: Deprecada y Reemplazada puedes visitar la categoría Automovilismo.

Subir