Agence web » Actualités du digital » Comment fonctionne l’App Engine sans serveur de Google?

Comment fonctionne l’App Engine sans serveur de Google?

moteur d'application

App Engine est un service de calcul sans serveur entièrement géré de Google Cloud Platform qui simplifie considérablement la gestion d’un backend de microservices. Il est construit autour d’une évolutivité élevée sans avoir à gérer vos propres serveurs.

Qu’est-ce qu’App Engine?

App Engine est essentiellement un ensemble de microservices. Les applications traditionnelles sont généralement monolithiques, ce qui signifie que vous exécutez un gros service d’exécution sur un serveur qui gère tout. Cependant, ce qui se passe généralement dans le monde réel, c’est que différentes parties de cette application subissent différentes quantités de trafic, d’utilisation et de charge globale. Vous vous retrouvez avec des goulots d’étranglement, où vous aimeriez pouvoir extraire une partie de votre backend et en exécuter plusieurs instances pour répondre à la demande.

Le principe de conception des microservices résout ce problème. Dans un backend basé sur un microservice, chaque service ne gère que ce qui lui est demandé. Cela vous permet de déployer plusieurs copies des services dont vous avez davantage besoin. Il vous permet également de déployer facilement des mises à jour uniquement sur les services à mettre à jour.

Il est courant d’utiliser des services de calcul sans serveur tels que AWS Lambda Functions ou GCP Cloud Functions pour déployer facilement des fonctions individuelles en tant que services. App Engine est très similaire, mais il est beaucoup plus puissant car il est spécialement conçu pour les backends de microservices.

moteur d'application

Tout comme Cloud Functions, vous n’avez pas besoin de gérer de serveurs sous-jacents. Il vous suffit de télécharger votre code, de sélectionner un moteur d’exécution et de le laisser s’exécuter. Si vous utilisez l’environnement flexible, vous pouvez déployer votre application en tant que conteneurs Docker, ce qui permet une plus grande flexibilité.

Cependant, contrairement à Cloud Functions, vous devez toujours exécuter des «instances» de chaque service. Vos frais sont basés sur cela et non sur des appels de fonction individuels, car rien de tel qu’un démarrage à froid n’est disponible. (Vous pouvez réduire à 0 instances dans l’environnement standard, mais les démarrages à froid seront lents.)

App Engine prend actuellement en charge les environnements d’exécution suivants, mais si vous utilisez l’environnement flexible, vous pouvez exécuter des environnements d’exécution personnalisés dans des conteneurs Docker.

  • Python 2.7, Python 3.7
  • Java 8, Java 11
  • Node.js 8, Node.js 10
  • PHP 5.5, PHP 7.2, PHP 7.3 et PHP 7.4 (bêta)
  • Ruby 2.5 (bêta)
  • Go 1.11, Go 1.12, Go 1.13 et Go 1.14 (bêta)

Pour le stockage et la persistance des données, il existe une banque de données intégrée, mais elle est progressivement supprimée au profit de Firestore, une base de données de documents NoSQL proposée dans le cadre de la plate-forme Firebase. Il dispose d’un mode Datastore spécifiquement pour la compatibilité avec le datastore intégré d’App Engine. Il existe également un Memcache en tant que service, des files d’attente de tâches personnalisées et des tâches Cron disponibles depuis la console App Engine.

Si vous souhaitez commencer, Google propose de nombreux didacticiels intégrés à partir de la console App Engine.

Environnements standard ou flexibles

App Engine propose deux environnements différents parmi lesquels vous pouvez choisir, avec leurs avantages et leurs inconvénients.

Le premier, et par défaut, est l’environnement standard. Ce mode fonctionne comme un moteur de calcul, avec des classes d’instances et des configurations de VM prédéfinies où vous serez facturé toutes les heures en fonction de l’utilisation. Bien entendu, vous n’avez pas à les gérer vous-même. App Engine s’en chargera et l’environnement est mis en bac à sable. Cet environnement présente l’avantage de déploiements rapides et la possibilité d’une réduction d’échelle nulle, même si les démarrages à froid peuvent encore être lents.

Cependant, avec la norme, vous n’obtenez pas d’accès SSH, ni de processus d’arrière-plan comme cron (bien que Google le fournisse en tant que service géré). Il y a un coût de démarrage et d’arrêt de 15 minutes de temps d’instance, vous voudrez donc éviter une mise à l’échelle automatique trop agressive.

L’environnement flexible utilise des conteneurs Docker pour tout exécuter. Cependant, si vous utilisez l’un des environnements d’exécution pris en charge, vous n’aurez peut-être pas besoin de gérer le conteneur vous-même. Vous obtenez un accès SSH, beaucoup plus de flexibilité (c’est dans le nom) et une prise en charge des processus d’arrière-plan. Cependant, les déploiements et le démarrage prennent quelques minutes et vous n’avez pas accès à certains services App Engine intégrés tels que Memcached.

★★★★★