Choisir un environnement App Engine

Vous pouvez exécuter vos applications dans App Engine à l'aide de l'environnement flexible App Engine ou de l'environnement standard App Engine. Vous pouvez également choisir d'utiliser simultanément les deux environnements pour votre application et permettre à vos services de tirer parti des avantages respectifs de chaque environnement.

Environnements App Engine

App Engine est parfaitement adapté aux applications conçues à l'aide d'une architecture de microservices, en particulier si vous décidez d'utiliser les deux environnements. Consultez les sections suivantes pour connaître et comprendre l'environnement qui répond le mieux aux besoins de votre application.

Quand choisir l'environnement standard ?

Les instances d'application s'exécutent dans un bac à sable, à l'aide de l'environnement d'exécution d'un langage compatible de la liste ci-dessous.

Applications nécessitant un scaling rapide.

L'environnement standard est optimal pour les applications présentant les caractéristiques suivantes :

  • L'application est destinée à fonctionner gratuitement ou à très faible coût. Vous ne payez que ce dont vous avez besoin et quand vous en avez besoin. Par exemple, votre application peut évoluer jusqu'à 0 instance en l'absence de trafic.
  • Elle subit des pics de trafic soudains et extrêmes qui nécessitent un scaling immédiat.

Quand choisir l'environnement flexible ?

Les instances d'application s'exécutent dans des conteneurs Docker sur des machines virtuelles (VM) Compute Engine.

Les applications qui reçoivent un trafic constant connaissent des fluctuations de trafic régulières ou respectent les paramètres permettant un scaling progressif à la hausse ou à la baisse.

L'environnement flexible est optimal pour les applications présentant les caractéristiques suivantes :

  • L'application s'exécute dans un conteneur Docker comprenant un environnement d'exécution personnalisé ou un code source écrit dans d'autres langages de programmation.
  • Elle utilise des frameworks qui incluent du code natif ou dépend de ces frameworks.
  • Accède aux ressources ou aux services de votre projet Google Cloud qui résident dans le réseau Compute Engine.

Comparer les fonctionnalités générales

Le tableau suivant résume les différences entre les deux environnements :

Fonctionnalité Environnement standard Environnement flexible
Délai de démarrage de l'instance Secondes Minutes
Délai maximal avant expiration de la requête Dépend de l'environnement d'exécution et du type de scaling. 60 minutes
Threads en arrière-plan Oui, avec restrictions Oui
Processus en arrière-plan Non Oui
Débogage SSH Non Oui
Scaling Manuel, basique, automatique Manuel, automatique
Scaling à zéro instance Oui Non, minimum 1 instance
Écriture sur le disque local
  • Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11 et Go 1.12+ disposent d'un accès en lecture et en écriture au répertoire /tmp.
  • Python 2.7 et PHP 5.5 ne disposent pas d'un accès en écriture au disque.
Oui, éphémère (disque initialisé à chaque démarrage de VM)
Modification de l'environnement d'exécution Non Oui (via Dockerfile)
Délai de déploiement Secondes Minutes
Correctifs de sécurité directs automatiques Oui Oui (exclut l'exécution d'image de conteneur)
Accès aux API et services Google Cloud tels que Cloud Storage, Cloud SQL, Memorystore, Google Tasks et autres. Yes Oui
WebSockets Non
Java 8, Python 2 et PHP 5 fournissent une API Sockets propriétaire (version bêta), mais l'API n'est pas disponible dans les versions d'exécution standard plus récentes.
Oui
Possibilité d'installer des fichiers binaires tiers
  • Oui pour Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11 et Go 1.12+.
  • Non pour Python 2.7 et PHP 5.5.
Oui
Emplacement Emplacements pour l'environnement standard Emplacements pour l'environnement flexible
Tarifs Basée sur les heures d'utilisation d'instance Basée sur l'utilisation du processeur virtuel, de la mémoire et des disques persistants

Consultez également la comparaison détaillée des environnements.

Comparer l'environnement flexible à Compute Engine

L'environnement flexible App Engine présente les différences suivantes par rapport à Compute Engine :

  • Les instances de VM de l'environnement flexible sont redémarrées chaque semaine. Lors des redémarrages, les services de gestion de Google appliquent les mises à jour nécessaires du système d'exploitation et de sécurité.

  • Vous disposez toujours d'un accès root aux instances de VM Compute Engine. Par défaut, l'accès SSH aux instances de VM dans l'environnement flexible est désactivé. Si vous le souhaitez, vous pouvez activer l'accès root aux instances de VM de votre application.

  • Les déploiements de code peuvent prendre plus de temps, car les images de conteneur sont générées à l'aide du service Cloud Build.

  • La région géographique d'une instance de VM à environnement flexible est déterminée par l'emplacement que vous spécifiez pour l'application App Engine de votre projet Google Cloud. Les services de gestion de Google veillent à ce que les instances de VM soient placées au même endroit pour des performances optimales.

Migrer de l'environnement standard vers l'environnement flexible

Si vous possédez une application dans l'environnement standard, vous souhaiterez peut-être déplacer certains services vers l'environnement flexible. Pour plus d'informations, consultez les recommandations dans le tableau de comparaison des environnements.

Pour migrer des services spécifiques pour Python, Java, Go et PHP, consultez la page Migrer des services de l'environnement standard vers l'environnement flexible.

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de l'environnement standard Ruby en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits offerts pour exécuter, tester et déployer des charges de travail.

Profiter d'un essai gratuit de l'environnement standard Ruby