L'environnement standard App Engine comporte deux générations d'environnements d'exécution. Les environnements d'exécution de deuxième génération améliorent considérablement les fonctionnalités d'App Engine et suppriment certaines des limitations propres aux environnements de première génération. Cette page décrit les similarités et les différences entre les environnements d'exécution de première et de deuxième génération.
Deuxième génération | Première génération | |
---|---|---|
Langues disponibles |
Python 3 Java 11+ Node.js PHP 7/8 Ruby Go 1.12+ |
Python 2.7 Java 8 PHP 5.5 Go 1.11 |
Extensions de langages et compatibilité avec la bibliothèque système | Toute extension ou bibliothèque | Python 2.7, PHP 5.5: extensions et bibliothèques utilisant la liste d'autorisation Java 8, Go 1.11: toute extension ou bibliothèque |
API compatibles |
Pour accéder aux services complets de Google Cloud, utilisez les bibliothèques clientes Cloud Open Source. Lors de la mise à jour vers les environnements d'exécution Python 3, Java 11+ ou Go 1.12+, vous pouvez continuer à utiliser de nombreux services groupés App Engine. Pour en savoir plus, consultez les guides Python 3, Java 11+ et Go 1.12+. |
Bibliothèques clientes Cloud et services groupés App Engine |
Pour le stockage de fichiers blob volumineux, utilisez Cloud Storage ou continuez à utiliser le service groupé de l'API Blobstore d'App Engine. |
API App Engine Blobstore | |
Pour la persistance des données, utilisez Firestore en mode Datastore et Cloud SQL pour le stockage relationnel. Vous pouvez également continuer à utiliser le service groupé de l'API App Engine Datastore. |
API App Engine Datastore | |
Pour l'exécution de tâches différée, continuez à utiliser l'API Deferred (Python), l'API DeferredTask (Java) et l'API Delay (Go). Les utilisateurs PHP peuvent continuer à spécifier une exécution différée via le service groupé de l'API Task Queues.
Vous pouvez également mettre en œuvre la fonctionnalité différée à l'aide de Cloud Tasks. |
API App Engine Deferred | |
Pour le traitement des images, vous pouvez utiliser Cloud Storage pour diffuser des images directement, ou utiliser un réseau de diffusion de contenu (CDN) tiers ou une bibliothèque de traitement d'images.
Vous pouvez également continuer à utiliser le service groupé de l'API App Engine Datastore. |
API App Engine Images | |
Pour les messages entrants ou sortants, continuez à utiliser le service groupé de l'API App Engine Mail. Pour la messagerie sortante, vous pouvez également utiliser un fournisseur de messagerie tiers tel que SendGrid, Mailgun ou Mailjet. Une alternative tierce recommandée pour la messagerie entrante n'est pas disponible pour le moment. |
API App Engine Mail | |
Pour mettre en cache des données d'application, créez une instance Memorystore et connectez-la à votre application à l'aide de l'accès au VPC sans serveur. Vous pouvez également continuer à utiliser le service groupé de l'API App Engine Memcache. | API App Engine Memcache | |
Pour obtenir des index de documents inclus dans l'index de recherche, hébergez les bases de données de recherche en texte intégral du type ElasticSearch dans Compute Engine, et accédez-y à partir de votre service. Google Cloud Marketplace propose également un service Elasticsearch basé sur SaaS. Vous pouvez également continuer à utiliser le service groupé de l'API App Engine Search. | API App Engine Search | |
Pour exécuter des tâches externes, laissez le service groupé de l'API App Engine Task Queues pour les files d'attente d'envoi et de retrait, ou migrez les files d'attente d'envoi vers Cloud Tasks. et les files d'attente de retrait vers Pub/Sub. |
API App Engine Task Queue | |
Pour l'authentification des utilisateurs, continuez à utiliser le service groupé de l'API App Engine Users ou migrez vers un service d'authentification décrit sur la page Options d'authentification des utilisateurs. | API App Engine Users | |
Accès au réseau externe | Accès complet | Python 2.7, PHP 5.5 : via l'API URL Fetch Java 8, Go 1.11 : accès total |
Accès au système de fichiers | Accès en lecture/écriture à /tmp |
Python 2.7, PHP 5.5 : aucun Java 8, Go 1.11 : accès en lecture/écriture à /tmp |
Environnement d'exécution du langage | Environnement d'exécution Open Source non modifié | Modifié pour App Engine |
Mécanisme d'isolation | Bac à sable de conteneur basé sur gVisor | Bac à sable de conteneur basé sur gVisor |
Compatibilité des environnements d'exécution App Engine de première génération
Les environnements d'exécution App Engine de première génération ne sont plus compatibles. Google n'appliquera plus les mises à jour de sécurité ni les correctifs aux composants de l'environnement d'exécution qui ne sont plus compatibles.
Pour en savoir plus sur la formule d'assistance des environnements d'exécution de première génération, consultez les pages Compatibilité avec les anciens environnements d'exécution et les Cycle d'exécution.
Similarités entre les environnements d'exécution de première et de deuxième génération
- Le scaling est presque instantané afin de répondre aux pics de trafic
- Les applications sont créées à l'aide du même processus de conception
- Les services en disponibilité générale disposent du même contrat de niveau de service
- Les commandes
gcloud
compatibles sont identiques et l'interface de la console GCP reste la même - Version gratuite
Ressources de migration d'environnement d'exécution de première à deuxième génération
Des guides de migration sont disponibles pour chaque environnement d'exécution de langage sur la page Support à long terme.