Choisir un environnement App Engine

Vous pouvez exécuter vos applications dans App Engine à l'aide de l'environnement flexible ou standard. 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 :

  • Le code source est écrit dans des versions spécifiques des langages de programmation compatibles :
    • Python 2.7, Python 3.7
    • Java 8, Java 11 (bêta)
    • Node.js 8, Node.js10
    • PHP 5.5, PHP 7.2 et PHP 7.3 (bêta)
    • Ruby 2.5 (bêta)
    • Go 1.9, Go 1.11 et Go 1.12
  • 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 :

  • Le code source est écrit dans une version de l’un des langages de programmation compatibles :
    Python, Java, Node.js, Go, Ruby, PHP ou .NET
  • 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.
  • Elle accède aux ressources ou services de votre projet Google Cloud Platform résidant sur 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 60 secondes - En savoir plus 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 (bêta), Node.js, Python 3.7, PHP 7.2, PHP 7.3 (bêta), Ruby 2.5 (bêta), Go 1.11 et Go 1.12 disposent d'un accès en lecture et en écriture au répertoire /tmp.
  • Python 2.7, Go 1.9 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 App Engine tels que NDB, l'API Users, Memcache, l'API Images, etc.
  • Oui pour Python 2.7, Go 1.9, PHP 5.5 et Java 8
  • Non pour Java 11 (bêta), Node.js, Python 3.7, PHP 7.2, PHP 7.3 (bêta), Ruby 2.5 (bêta), Go 1.11 et Go 1.12
Non
Accès au réseau
  • Oui pour Java 11 (bêta), Node.js, Python 3.7, PHP 7.2, PHP 7.3 (bêta), Ruby 2.5 (bêta), Go 1.11 et Go 1.12
  • Python 2.7, Go 1.9 et PHP 5.5 (facturation activée) : seulement via les services App Engine (sockets sortants inclus)
Oui
Possibilité d'installer des fichiers binaires tiers
  • Oui pour Java 8, Java 11 (bêta), Node.js, Python 3.7, PHP 7.2, PHP 7.3 (bêta), Ruby 2.5 (bêta), Go 1.11 et Go 1.12
  • Non pour Python 2.7, Go 1.9 et PHP 5.5
Oui
Localisation Amérique du Nord, Asie-Pacifique ou Europe Amérique du Nord, Asie-Pacifique ou Europe
Tarification 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

Pour une comparaison détaillée des environnements, consultez le guide de votre langage : Python, Java, Go ou PHP.

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 de l'environnement flexible est déterminée par l'emplacement que vous spécifiez pour l'application App Engine de votre projet GCP. Les services de gestion de Google veillent à ce que les instances de VM soient placées au même endroit pour des performances optimales.

Passer de l'environnement standard à 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, reportez-vous aux recommandations associées à Python, Java, Go et PHP.

Pour migrer des services spécifiques, consultez les instructions concernant Python, Java, Go et PHP.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation App Engine