Si vous avez déjà utilisé Google App Engine, vous savez que c’est l’un des moyens les plus rapides pour obtenir de l’idée au prototype., Tant que vous vous conformez aux restrictions sandbox, vous n’avez pas besoin de configurer des serveurs, d’installer des packages ou d’effectuer l’une des tâches DevOps fastidieuses qui vous ralentissent.
avec L’introduction de L’environnement flexible App Engine (anciennement connu sous le nom de machines virtuelles gérées), Google a levé de nombreuses restrictions sandbox et ajouté plus d’runtimes intégrés, y compris Node.js et Ruby. Vous pouvez même tout personnaliser en spécifiant votre propre Dockerfile!
Voir la comparaison ici.
Cependant, cette flexibilité a un prix., L’environnement Flexible est plus lent à déployer et ne peut pas évoluer aussi rapidement que l’environnement Standard. Le déploiement par défaut est également exagéré pour le prototypage.
la plus grande différence à mon avis est l’absence de « échelle à zéro. »Avec App Engine Standard, si personne n’utilise votre application, il arrête tout. Au moment où un utilisateur visite, App Engine fait tourner une instance en millisecondes pour servir la nouvelle demande. Combiné avec le généreux niveau gratuit, vous n’avez pas vraiment à vous soucier des coûts d’infrastructure pour les prototypes., Actuellement, l’environnement Flexible a besoin d’au moins une instance en cours d’exécution pour desservir le trafic et il n’y a pas de niveau gratuit.
examinons quelques bonnes pratiques pour le prototypage avec L’environnement Flexible qui peut minimiser le coût.
mise à jour 2019: je recommande fortement D’utiliser Cloud Run au lieu D’App Engine Flex pour la plupart des tâches. À mon avis, il combine le meilleur de la norme App Engine (pay per use, scale to zero) avec App Engine Flex (flexibilité, Dockerfiles). Le seul avantage majeur de Flex est la plus grande taille d’instance.,
nous allons lancer un Nœud.js app sur L’environnement flexible du moteur D’application. L’application par défaut.yaml ressemble à quelque chose comme ceci:
runtime: nodejs
env: flex
Déployer avec la gcloud commande:
$ gcloud app deploy
Après le déploiement de l’application, nous pouvons vérifier les « Instances” de la section de l’App Engine pour voir la suivante:
Par défaut, il lance deux n1-standard-1 VMs., Ceci est conçu pour fournir une plus grande fiabilité.
regardons le coût mensuel de ce déploiement. J’ai configuré ce déploiement par défaut dans le calculateur de tarification Google Cloud ici.
C’est plus de 80 $par mois!
bien que ce prix serait bien si vous serviez du trafic de production, c’est assez ridicule au stade du prototypage.
première étape: réduire le nombre d’instances
Nous pouvons réduire nos coûts de moitié en lançant une instance au lieu de deux. Pour ce faire, activez la mise à l’échelle manuelle (vous n’avez pas besoin de mise à l’échelle automatique pour un prototype) et définissez les instances sur 1., Vous pouvez en savoir plus sur la mise à l’échelle ici.
de Modifier l’application.yaml:
runtime: nodejs
env: flex
manual_scaling:
instances: 1
cela réduira notre coût d’environ 80 $à 40!! Nice!