Google App Engine, scalibilité et fiabilité en mode serverless

Google App Engine (GAE) est né en 2008. Il a fallu du temps pour faire comprendre son principe de PaaS (Platform as a Service) et voir les différents frameworks du marché s’adapter à ses spécificités. Son rôle est de permettre de créer des applications Web et des backends mobiles évolutifs, en faisant cette fois totalement abstraction de l’aspect serveur. On se concentre sur le code, et rien que le code.

Architecture Google App Engine

Google App Engine est prévu pour s’adapter à la charge

Il a fallu du temps pour faire comprendre son principe de PaaS (Platform as a Service) et voir les différents frameworksdu marché s’adapter à ses spécificités. Son rôle est de permettre de créer des applications Web et des backends mobiles évolutifs, en faisant cette fois totalement abstraction de l’aspect serveur. Si jamais l’application devient très populaire, App Engine se chargera de trouver les ressources nécessaires à son fonctionnement.

Snapchat est par exemple basé sur Google App Engine, ce qui a permis de gérer sa croissance sans problèmes, malgré une taille d’équipe réduite. De 0 à plusieurs millions d’utilisateurs, qui envoient plus de 700 millions de photos et vidéos chaque jour !

Google App Engine permet de faire du traitement batch

Autre aspect intéressant d’App Engine : sa possibilité de fonctionner de manière asynchrone. Une app d’e-commerce peut tout à fait valider une commande sur sa partie Web, afficher au client que tout s’est bien déroulé, mais générer le mail de confirmation et un PDF de facturation plus tard.

Google App Engine supporte plusieurs langages

Node.js, Java, Ruby, C#, Go, Python, et PHP sont les langages par défaut de ce système, qui peut en gérer plusieurs différents au sein de la même application. Il impose cependant certaines restrictions. On notera par exemple l’impossibilité d’écrire sur le système de fichier local ou d’installer des logiciels tiers.

Standard ou Flexible

Il faut aussi savoir qu’il existe deux environnements possibles pour App Engine : le standard et le flexible. Dans ce deuxième cas, on utilise Docker à la place des outils Google. Cela apporte une certaine souplesse au produit (accès en SSH, écriture éphémère sur le disque local, etc.) mais en contrepartie ça va ralentir le démarrage des instances en est ralenti (de l’ordre de la minute contre quelques millisecondes sur la solution Google).

Même si ces deux solutions sont disponbiles, la version standard devra toujours être préférée à la version flexible.

Comparatifs

A lire sur le même thème :