Compatibilité avec les anciens environnements d'exécution

Les anciens environnements d'exécution incluent des versions de langages de première génération dont les communautés Open Source n'assurent plus la gestion. Étant donné que de nombreux clients App Engine dépendent encore de ces versions de langages de première génération, Google propose un support à long terme pour les environnements d'exécution suivants dans l'environnement standard App Engine:

Google transitionne les anciens environnements d'exécution vers la Fin de la période de compatibilité. Pour en savoir plus, consultez le calendrier de compatibilité.

Notre engagement

Les anciens environnements d'exécution sont arrivés en fin de compatibilité le 30 janvier 2024.

Les modifications suivantes ont été apportées aux anciens environnements d'exécution :

  • Dans la mesure du possible, les composants des anciens environnements d'exécution ont été rétablis à leur état Open Source non dérivé. Nous avons dû modifier et fortement restreindre certains environnements d'exécution pour pouvoir exécuter vos applications de manière sécurisée dans nos centres de données. En modifiant la manière dont nous utilisons des environnements d'exécution dans nos centres de données, nous sommes en mesure de leur fournir un environnement sécurisé et évolutif sur le long terme.

  • Ajout de systèmes de compilation complets compatibles avec les dépôts de packages, les compilations de composants idiomatiques et les dépôts d'éléments.

Mises à jour de sécurité

À mesure que les communautés cesseront de gérer les versions de leur langage, votre application pourrait être exposée à des failles pour lesquelles aucun correctif ne sera accessible dans le domaine public. Ainsi, le fait de continuer à exécuter votre application dans certains environnements d'exécution App Engine est plus risqué que de passer à un environnement d'exécution dont le langage est géré par la communauté.

Nous ne pouvons pas nous engager à corriger toutes les API utilisées par votre application. Par conséquent, vous pourriez remarquer dans les bibliothèques que les correctifs sont exclusivement disponibles pour les nouvelles versions du langage.

Compatibilité avec les services groupés App Engine

Les environnements d'exécution Python 2.7, Java 8, Go 1.11 et PHP 5.5 offrent des API et des services App Engine groupés tels que Blobstore, Memcache et les files d'attente de tâches.

Vous pouvez continuer à accéder à la plupart de ces API et services groupés dans certains environnements d'exécution de deuxième génération :

Votre application peut appeler les API de services groupés via des bibliothèques de langages idiomatiques et accéder aux mêmes fonctionnalités que sur les anciens environnements d'exécution. Les services groupés sont proposés sur les environnements d'exécution les plus récents pour offrir plus de flexibilité, vous permettant de migrer vers les services non groupés ou de continuer à utiliser les anciens services groupés App Engine.

Si des abandons sont prévus, nous respecterons notre règlement standard relatif aux abandons et suggérerons des alternatives. Nous ne nous attendons pas à apporter des modifications ou des redéploiements de code à la majorité des applications.

État actuel de chaque environnement d'exécution

Python 2.7

Nous avons lancé l'environnement d'exécution Python 2.7 le 27 février 2012. Bien que nous ayons déjà supprimé nos modifications et restrictions sur une grande partie de cet environnement d'exécution, nous procéderons à d'autres mises à jour afin de normaliser le processus de compilation, le chemin de requête et la disponibilité du package. Ces modifications apportées à l'environnement d'exécution assurent la compatibilité de l'environnement d'exécution Python 2.7 avec Google Cloud bien après le 1er janvier 2020, date à laquelle la communauté Python cessera officiellement de prendre en charge Python 2.7.

Les modifications que nous avons apportées à l'environnement d'exécution Python 2.7 et celles apportées dans l'annonce à l'automne 2021 renvoient la plupart des services App Engine groupés vers Python 3. Ces services vous permettent de migrer plus facilement vers Python 3 et/ou de remplacer les services groupés par des services Google Cloud équivalents avant la fin de la période de compatibilité. Consultez les guides de migration suivants :

Java 8

Nous avons lancé l'environnement d'exécution Java 8 le 28 juin 2017. Cet environnement d'exécution a été légèrement modifié pour App Engine et offre une compatibilité étendue pour l'importation de packages Java.

Nous allons apporter les mises à jour suivantes à cet environnement d'exécution :

  • Rétablissement de l'environnement d'exécution Java à l'état Open Source

  • Normalisation du chemin de la requête

  • Passage à Jetty 9.4

Ces modifications permettront une compatibilité entre Google Cloud et l'environnement d'exécution Java 8 dans un avenir proche.

Les modifications que nous avons apportées à l'environnement d'exécution Java 8 vous permettent de remplacer les services groupés App Engine par des services Google Cloud et d'effectuer une migration vers Java 11/17 avant la fin de la période de compatibilité. Consultez les informations sur la migration de Java 8 vers Java 11+.

Nous avons pu procéder à la migration automatique des applications Java 6 et Java 7 vers l'environnement d'exécution Java 8 sans avoir à modifier le code de l'application. Cependant, Java 11 annule toute rétrocompatibilité. De ce fait, il nous est impossible d'effectuer une migration automatique des applications vers l'environnement d'exécution Java 11. Puisque vous devrez peut-être apporter des modifications importantes à vos applications Java 6, Java 7 et Java 8 lors de la migration vers Java 11, vous pouvez continuer d'exécuter ces applications sous Java 8.

Go 1.11

Nous avons lancé l'environnement d'exécution Go 1.11 le 20 mars 2019 et recommandé la migration des applications Go 1.6-1.9 vers l'environnement d'exécution Go 1.11. L'environnement d'exécution Go 1.11 correspond à l'état à long terme des applications conçues avec Go 1.6-1.11.

Une fois vos applications exécutées sur Go 1.11, vous pouvez remplacer les API et les services groupés App Engine par des services Google Cloud, et passer à une version compatible de Go avant la fin de la période de compatibilité. Pour en savoir plus sur la procédure de migration, consultez la page Migrer votre application App Engine vers Go 1.12.

PHP 5.5

Nous avons lancé l'environnement d'exécution PHP 5.5 le 16 mai 2013. Cet environnement d'exécution a supprimé de nombreuses fonctionnalités de la version Open Source et exécute les applications dans un bac à sable personnalisé.

Nous rétablissons actuellement cet environnement d'exécution à son état Open Source et modernisons le bac à sable. Nous effectuerons d'autres mises à jour afin de normaliser le chemin de la requête et d'optimiser les performances. Ces modifications nous permettent d'assurer la compatibilité de l'environnement d'exécution PHP 5.5 dans un avenir proche.

Les modifications que nous avons apportées à l'environnement d'exécution PHP 5.5 vous permettent de remplacer les services groupés App Engine par des services Google Cloud et d'effectuer la migration vers PHP 7/8 avant la fin de la période de compatibilité. Consultez les informations sur le déploiement d'applications de PHP 5.5 vers PHP version 7/8.

Activer les déploiements pour les environnements d'exécution existants atteignant leur fin de compatibilité

Selon la règle de cycle de vie d'exécution d'App Engine, vous ne pouvez plus déployer d'applications utilisant des environnements d'exécution ayant atteint la fin de compatibilité. Pour connaître les dates clés ayant une incidence sur votre environnement d'exécution, consultez le calendrier de compatibilité.

Si votre organisation souhaite réactiver les déploiements pour d'anciens environnements d'exécution ayant atteint la fin de la période de prise en charge, vous pouvez définir une nouvelle règle d'administration avec constraints/appengine.runtimeDeploymentExemption. Cette règle d'administration permettant de réactiver les déploiements est en disponibilité générale. L'utilisation continue d'anciens environnements d'exécution au-delà la date de fin de prise en charge est expérimentale et soumise aux "Conditions des offres avant disponibilité générale".

Pour créer ou modifier des règles d'administration, votre compte doit disposer du rôle roles/orgpolicy.policyAdmin.

Utiliser une règle pour réactiver les déploiements

Pour créer une règle qui active les déploiements, utilisez Google Cloud CLI ou la console Google Cloud ayant atteint la fin de l'assistance au sein d'une organisation donnée dans l'environnement spécifié.

Console

  1. Accédez à la page "Règles d'administration" dans la console Google Cloud.
    Accéder à la page Règles d'administration

    La page "Règles d'administration" affiche la liste des contraintes de règles d'administration disponibles.

  2. Sélectionnez le projet, le dossier ou l'organisation auquel vous souhaitez ajouter la nouvelle règle.

  3. Recherchez la règle Runtime Deployment Exemption (App Engine) dans la liste. Vous pouvez utiliser le champ Filtre en haut de la liste.

  4. Cliquez sur le nom de la règle. Vous pouvez également sélectionner Modifier la règle dans le menu contextuel.

  5. Cliquez sur Gérer la règle.

  6. Sélectionnez Personnaliser sous S'applique à.

  7. Sélectionnez Remplacer sous Application des règles.

  8. Cliquez sur Ajouter une règle sous Règles.

  9. Sélectionnez Personnalisé pour Valeurs de règlement.

  10. Sélectionnez Autoriser pour Type de règle.

  11. Dans Valeur personnalisée, spécifiez l'environnement d'exécution que vous souhaitez appliquer au sein de l'organisation. Les valeurs autorisées incluent les suivantes :

    • python27 pour autoriser les applications utilisant Python 2.7
    • java8 pour autoriser les applications utilisant Java 8.
    • php55 pour autoriser les applications utilisant PHP 5.5
    • Pour autoriser explicitement plusieurs environnements d'exécution, spécifiez python27, java8 et php55 ensemble. Par défaut, aucun environnement d'exécution n'est autorisé lorsqu'aucune règle n'est définie.
  12. Cliquez sur OK.

  13. Cliquez sur Enregistrer.

Une fois les modifications appliquées, cette règle active le déploiement des environnements d'exécution App Engine qui ne sont plus compatibles avec l'environnement spécifié.

gcloud

Exécutez la commande suivante :

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

Remplacez :

  • ORGANIZATION_NUMBER par le numéro de l'organisation à laquelle vous souhaitez appliquer la règle.
  • RUNTIME_ID par l'environnement d'exécution autorisé au déploiement.
  • RUNTIME_ID par l'un des ID d'exécution suivants:

    • python27 pour autoriser les applications utilisant Python 2.7
    • java8 pour autoriser les applications utilisant Java 8.
    • php55 pour autoriser les applications utilisant PHP 5.5
    • Pour autoriser explicitement plusieurs versions d'environnements d'exécution de langage de programmation, spécifiez python27, java8 et php55 ensemble. Par défaut, aucune version d'environnement d'exécution de langage de programmation n'est autorisée lorsqu'aucune règle n'est définie.