Compatibilidad con entornos de ejecución heredados

Los entornos de ejecución heredados admiten versiones de lenguaje que las comunidades de código abierto ya no mantienen. Debido a que muchos clientes de App Engine aún dependen de estas versiones de lenguajes, Google proporciona asistencia a largo plazo para los siguientes entornos de ejecución heredados en el entorno estándar de App Engine:

Google realiza la transición de los entornos de ejecución heredados a la fase de fin de la asistencia. Consulta el programa de asistencia para obtener más detalles.

Nuestro compromiso

Los entornos de ejecución heredados alcanzaron el fin de la asistencia el 30 de enero de 2024.

Se realizaron los siguientes cambios en los entornos de ejecución heredados:

  • En la medida de lo posible, los componentes de los entornos de ejecución heredados se volvieron a sus estados de código abierto sin bifurcar. Tuvimos que restringir y modificar en gran medida algunos de los entornos de ejecución para ejecutar las apps de forma segura en nuestros centros de datos. Con los cambios que realizamos en la forma de operar los entornos de ejecución en nuestros centros de datos, podemos proporcionar un entorno seguro y escalable para estos entornos de ejecución a largo plazo.

  • Se agregaron sistemas de compilación completos que admiten repositorios de paquetes, compilaciones de componentes idiomáticos y repositorios de elementos.

Actualizaciones de seguridad

A medida que las comunidades dejan de mantener versiones de sus lenguajes, tu app puede quedar expuesta a vulnerabilidades para las que no existe una solución pública disponible. Por lo tanto, continuar ejecutando tu app en algunos entornos de ejecución de App Engine implica más riesgo que actualizarla a un entorno de ejecución que tenga un lenguaje compatible con la comunidad.

No podemos comprometernos a corregir todas las API que usa tu app. Es posible que te encuentres con que las correcciones solo están disponibles en las bibliotecas para las versiones más recientes del lenguaje.

Compatibilidad con servicios en paquetes de App Engine

Los entornos de ejecución de Python 2.7, Java 8, Go 1.11 y PHP 5.5 proporcionan paquetes de servicios y API de App Engine como Blobstore, Memcache y Task Queues.

Puedes seguir accediendo a muchos de estos paquetes de servicios y API en entornos de ejecución de segunda generación seleccionados:

Tu aplicación puede llamar a las API de servicios agrupadas a través de bibliotecas idiomáticas de lenguaje y acceder a la misma funcionalidad que en los entornos de ejecución heredados. Los servicios en paquetes se ofrecen en los entornos de ejecución más recientes para proporcionar más flexibilidad, lo que te da la opción de migrar a los servicios no agrupados en paquetes o continuar usando los servicios heredados en paquetes de App Engine.

Si hay una baja en la canalización, seguiremos nuestra política de baja estándar y sugeriremos alternativas. No esperamos que la mayoría de las aplicaciones requieran cambios de código o reimplementaciones.

Estado actual de cada entorno de ejecución

Python 2.7

Lanzamos el entorno de ejecución de Python 2.7 el 27 de febrero de 2012. Si bien ya quitamos nuestras modificaciones y restricciones de secciones grandes de este entorno de ejecución, realizaremos actualizaciones adicionales para normalizar el proceso de compilación, la ruta de solicitud y la disponibilidad del paquete. Estos cambios en el entorno de ejecución permiten a Google Cloud admitir el entorno de ejecución de Python 2.7 mucho después del 1 de enero de 2020, que es cuando la comunidad de Python finalizó su asistencia oficial para Python 2.7.

Los cambios que realizamos en el entorno de ejecución de Python 2.7 y los cambios realizados en el anuncio de otoño de 2021 traen de vuelta la mayoría de los servicios en paquetes de App Engine a Python 3. Estos servicios te permiten migrar con mayor facilidad a Python 3 o reemplazar los paquetes de servicios por servicios de Google Cloud equivalentes antes del fin de la asistencia. Consulta las siguientes guías para la migración:

Java 8

Lanzamos el entorno de ejecución de Java 8 el 28 de junio de 2017. Este entorno de ejecución se modificó un poco para App Engine y proporcionó una amplia compatibilidad con la importación de paquetes de Java.

Realizaremos las siguientes actualizaciones en este entorno de ejecución:

  • Volver el entorno de ejecución al estado de código abierto

  • Normalizar la ruta de la solicitud

  • Actualizar a Jetty 9.4

Estos cambios permitirán que Google Cloud admita el entorno de ejecución de Java 8 en el futuro inmediato.

Los cambios que realizamos en el entorno de ejecución de Java 8 te permiten reemplazar los paquetes de servicios de App Engine por servicios de Google Cloud y migrar a Java 11/17 antes del fin de la asistencia. Obtén más información sobre cómo migrar de Java 8 a Java 11 o versiones superiores.

Pudimos migrar las apps de Java 6 y Java 7 al entorno de ejecución de Java 8 de forma automática, sin requerir cambios en el código de la app. Sin embargo, Java 11 no permite la retrocompatibilidad, lo que nos imposibilita la migración automática de apps al entorno de ejecución de Java 11. Ya que es posible que debas realizar cambios significativos en tus apps de Java 6, Java 7 y Java 8 cuando las migres a Java 11, puedes mantener esas aplicaciones en ejecución en el entorno de ejecución de Java 8.

Go 1.11

Lanzamos el entorno de ejecución de Go 1.11 el 20 de marzo de 2019 y recomendamos que las apps de Go 1.6 a 1.9 migren al entorno de ejecución de Go 1.11. El entorno de ejecución de Go 1.11 es el estado a largo plazo de las apps compiladas con Go 1.6 a través de Go 1.11.

Una vez que tus apps se ejecuten en Go 1.11, puedes empezar a reemplazar los paquetes de servicios y APIs de App Engine por servicios de Google Cloud y actualizar a una versión compatible de Go antes del fin de la asistencia. Para obtener más información sobre la migración, consulta Migra la app de App Engine a Go 1.12.

PHP 5.5

Lanzamos el entorno de ejecución de PHP 5.5 el 16 de mayo de 2013. Este entorno de ejecución quitó muchas funciones de la versión de código abierto y ejecutó aplicaciones dentro de una zona de pruebas personalizada.

Ahora, estamos volviendo este entorno de ejecución a su estado de código abierto y modernizando la zona de pruebas. Realizaremos más actualizaciones para normalizar la ruta de la solicitud y optimizar el rendimiento. Estos cambios nos permiten admitir el entorno de ejecución de PHP 5.5 en el futuro inmediato.

Los cambios que realizamos en el entorno de ejecución de PHP 5.5 te permiten reemplazar los paquetes de servicios de App Engine por los servicios de Google Cloud y migrar a PHP 7/8 antes del fin de la asistencia. Obtén más información sobre cómo mover apps de PHP 5.5 a PHP 7/8.

Habilita implementaciones para entornos de ejecución heredados que alcancen el fin de la asistencia

De acuerdo con la política del ciclo de vida del entorno de ejecución de App Engine, ya no podrás implementar aplicaciones a través de entornos de ejecución que hayan alcanzado el fin de la asistencia. Para conocer las fechas clave que afectan tu entorno de ejecución, consulta el programa de asistencia.

Si tu organización desea volver a habilitar las implementaciones para entornos de ejecución heredados que alcanzaron el cronograma de fin de la asistencia, puedes definir una nueva política de la organización con constraints/appengine.runtimeDeploymentExemption. Esta política de la organización para volver a habilitar las implementaciones tiene disponibilidad general. El uso continuo de entornos de ejecución heredados después de la fecha de finalización de la asistencia es experimental y está sujeto a las “Condiciones de las ofertas de fase previa a la DG”.

Para crear o cambiar las políticas de la organización, tu cuenta debe tener el rol roles/orgpolicy.policyAdmin.

Usa una política para volver a habilitar las implementaciones

Para crear una política que habilite las implementaciones, usa Google Cloud CLI o la consola de Google Cloud que alcanzaron el final de la asistencia dentro de una organización determinada para el entorno especificado.

Consola

  1. Ve a la página Políticas de la organización en la consola de Google Cloud.
    Ir a Políticas de la organización

    En la página Políticas de la organización, se muestra una lista de las restricciones de la política de la organización que están disponibles.

  2. Selecciona el proyecto, la organización o la carpeta a la que deseas agregar la política nueva.

  3. Busca la política Exención de implementación en tiempo de ejecución (App Engine) en la lista. Puedes usar el campo Filtro en la parte superior de la lista.

  4. Haz clic en el nombre de la política. Como alternativa, puedes seleccionar Editar política en el menú contextual.

  5. Haz clic en Administrar política.

  6. Selecciona Personalizar en Se aplica a.

  7. Selecciona Reemplazar en Aplicación de la política.

  8. Haz clic en Agregar regla en Reglas.

  9. Selecciona Personalizado para Valores de política.

  10. Selecciona De permisos para Tipo de política.

  11. En Valor personalizado, especifica el entorno de ejecución que deseas aplicar en la organización. Entre los valores admitidos, se incluyen los siguientes:

    • python27 para permitir aplicaciones con Python 2.7
    • java8 para permitir aplicaciones con Java 8
    • php55 para permitir aplicaciones con PHP 5.5
    • Para permitir de forma explícita varios entornos de ejecución, especifica python27, java8 y php55 juntos. De forma predeterminada, no se permiten entornos de ejecución cuando no se establece ninguna política.
  12. Haz clic en Listo.

  13. Haz clic en Guardar.

Después de aplicar los cambios, esta política permite la implementación de los entornos de ejecución de App Engine que alcanzaron la finalización de la asistencia en el entorno especificado.

gcloud

Ejecuta el siguiente comando:

gcloud resource-manager org-policies \
allow appengine.runtimeDeploymentExemption \
--organization=ORGANIZATION_NUMBER RUNTIME_ID

Reemplaza lo siguiente:

  • ORGANIZATION_NUMBER por el número de la organización a la que deseas aplicar la política.
  • RUNTIME_ID por el entorno de ejecución permitido para la implementación.
  • RUNTIME_ID por uno de los siguientes ID de entorno de ejecución:

    • python27 para permitir aplicaciones con Python 2.7
    • java8 para permitir aplicaciones con Java 8
    • php55 para permitir aplicaciones con PHP 5.5
    • Para permitir de forma explícita entornos de ejecución de varios lenguajes, especifica python27, java8 y php55 juntos. De forma predeterminada, no se permiten entornos de ejecución de lenguaje cuando no se configura una política.