- Accueil
- TUTORIELS
- CLOUD COMPUTING
- Google App Engine (GAE)
Google App Engine (GAE)
INTRODUCTION
Google App Engine (GAE) constitue un cadre Google Cloud permettant le déploiement et l'exécution de code sur les serveurs de Google. Cela offre un accès public via une URL. Cette plateforme, lancée en version bêta en avril 2008, facilite la création d'applications web à fort trafic. Elle propose des avantages tels que la gestion des bases de données et la gestion des utilisateurs du site. Les développeurs bénéficient de l'infrastructure de Google, déchargeant la gestion de l'hébergement. Cette plateforme repose sur les serveurs de Google, assurant une technologie fiable et rapide. Nous explorerons son historique, ses fonctionnalités, Google Cloud SQL, le contexte technologique, les avantages, les limites, et les coûts de GAE.
I- HISTORIQUE
La première version de ce service (appelée 'beta'), est sortie en avril 2008, avec la possibilité d'enregistrer uniquement des comptes gratuits1. L'offre de cette première version propose 500Mo de stockage persistant, et suffisamment de bande passante et de capacités de calcul pour servir 5 millions de pages par mois. Toutefois il est possible d'acheter davantage de ressources.
Depuis, de nombreuses fonctionnalités sont venues étayer l'offre de ce service ainsi que des outils facilitant le développement et la gestion des applications.
Avril 2008 :
• Premier lancement du service Google App Engine fournissant des outils de développement ainsi que les API pour le langage Python.
• Sortie de la première version du SDK.
Mai 2008 :
• L'outil Google App Engine Launcher est disponible sur MacOS.
• Ajout des APIs Image Manipulation et MemCache.
• Les inscriptions au service sont désormais ouvertes au public.
Juillet 2008 :
• Possibilité d’héberger jusqu’à 10 applications au lieu de 3.
• Possibilité d’exporter les logs.
Décembre 2008 :
• Outils de monitoring pour chaque application (temps CPU utilisé, niveau d’utilisation du disque, bande passante du réseau consommée,).
Avril 2009 :
• Support du langage Java et de Cron.
• Sortie d’un plugin Google pour Eclipse [archive] qui facilite le développement et l’intégration d’applications GWT (Google Web Toolkit).
Juin 2009 :
• Possibilité de planifier des tâches automatiques avec l’API Task Queue.
• Support de Django Septembre 2009 :
• Support du protocole XMPP (messagerie instantanée)
• Python Google App Engine Launcher disponible sur Windows.
Octobre 2009 :
• Réception des emails directement depuis l'application.
Novembre 2011 :
• Support officiel du produit par Google (qui n'est plus en bêta)
II- FONCTIONNALITÉS DE GOOGLE APP ENGINE
1- Fonctionnement général
La figure présente de manière globale le fonctionnement de la plate-forme. Les requêtes sont traitées par le Load Balancer qui a pour rôle de répartir les charges sur les différents Clusters à tolérance de pannes. Pour la partie persistance, la base de données DataStore repose sur le SGBD, BigTable, développé en interne par Google. Le langage de requêtes associé à BigTable est GQL (Google Query Langage).
Architecture de Google App Engine
2- Utilisateur et sécurité
Cette gestion des utilisateurs est une extension de celle utilisée par Google : l'utilisateur s'authentifie en utilisant son compte Google (Gmail par exemple). Les applications créées ne sont ainsi pas amenées à gérer la création des comptes, la gestion des données utilisateur ou la récupération des mots de passe. Ce service, libère aussi le développeur d'application de négocier la sécurité avec l'utilisateur. Cela permet aussi à l'utilisateur final de ne pas avoir à s'authentifier lorsqu'il visite un nouveau service App Engine.
3- Sandbox
Afin de protéger le système, les applications sont exécutées dans un Sandbox. Ce qui implique certaines contraintes :
• Les écritures de fichiers ne sont pas autorisées
• La création de sockets n’est pas autorisée
• Les applications ne peuvent pas lancer de Threads
• Les processus tournant depuis plus de 30 secondes sont arrêtés
Les extensions C pour Python sont désactivées
4- Langages de programmation
Au moment du lancement, seule l'utilisation de Python au travers d'une version limitée du framework web Django, du framework web webapp proposé par Google (c'est celui qu'utilise le tutoriel) ou sans framework web : un simple CGI en Python suffit. L'interface Web Server Gateway Interface (WSGI) est aussi disponible. Google a indiqué que, dans le futur, d'autres langages seraient disponibles.
• Depuis le 7 avril 2009, le langage Java est utilisable à partir la version 1.2.0 du SDK.
• Depuis le 10 mai 2011, avec la version 1.5.0, est disponible le langage Go (mais encore de façon expérimentale pour l'instant).
Les outils fournis par google : Le SDK open source (sous licence Apache) contient un serveur de développement ainsi que divers utilitaires pour gérer l'application sur le serveur de Google. Pour programmer une application Google App Engine Java, il existe un plugin pour Eclipse qui permet de développer et de mettre en ligne l’application. Le support du serveur de développement est disponible pour Netbeans.
5- Services
Google fournit pour différents langages de programmation un ensemble d’API permettant d’accéder à différents services.
• Memcache : un cache au-dessus de la base de données.
• URL Fetch : pour faire des requêtes HTTP/HTTPS sur un autre serveur.
• Email : afin d’envoyer et de recevoir des emails.
• Images : pour manipuler des images (rotation, dimension etc.)
• Google Accounts : permet d’utiliser les comptes Google pour des identifications au sein d’une application.
• XMPP : pour envoyer et recevoir des messages au format XMPP (utilisé dans Google Talk) • Task Queues : des tâches de fond en file d’attente.
• Cron : pour la planification des tâches à exécuter de manière récurrente pour, par exemple, envoyer une newsletter chaque mois.
• Channel API : créer une communication entre navigateur et serveur (push). C'est une implémentation de Comet avec l'aide d'une bibliothèque javascript.
• Backends: créer des instances permanentes d'une application avec un accès à plus de mémoire (nouveauté de la version 1.5.0)
• Pull Queues: Comme les Task Queues mais l'application choisit des tâches dans la queue pour les exécuter (au lieu d'être servie) (nouveauté de la version 1.5.0)
Les services Google App Engine de base sont gratuits, mais soumis à des quotas. Il est possible d’acheter un quota plus large pour chaque service. Le tableau ci-dessous indique les quotas gratuits et payants pour les requêtes et les accès en base de données.
Quotas globaux du Google App Engine
Service |
Quota gratuit / jour |
Maximum du quota payant / jour |
Nombre de requêtes |
1,300,000 |
43,000,000 |
Bande passante entrante |
1 GB |
1,046 GB |
Bande passante sortante |
1 GB |
1,046 GB |
Temps CPU |
6.5 heures |
1,729 heures |
Nombre d’appels à la base de données |
10,000,000 |
140,000,000 |
Taille des données |
1 GB |
Pas de maximum |
III- Google Cloud SQL
En octobre 2011, Google ajoute une base de données SQL sans entretien, qui supporte JDBC et DB-API. Ce service vous permet de créer, configurer et utiliser des bases de données relationnelles avec les applications App Engine. Moteur de base de données MySQL version 5.1.59 et la base de données ne doit pas être supérieure à 10 Go.
IV- CONTEXTE TECHNOLOGIQUE
Le service Google App Engine vient concurrencer ceux d'Amazon
Theme : Google App Engine et Java 8
nommé Amazon Web Services (AWS) et de Microsoft nommé Windows Azure. Ce sont des lots de services applicatifs qui permettent à une application web de stocker des données et d'exécuter du code sur leurs serveurs respectifs.
Beaucoup d'analystes techniques avaient prédit l'arrivée de Google dans ce créneau. « Google finally realizes it needs to be the web platform » a écrit Mike Masnick, qui publie le blog Techdirt.
V- AVANTAGES ET LIMITES DE Google App Engine
1- Avantages de Google App Engine
Google App Engine présente un certain nombre d’avantages par rapport à ses concurrents. Jetez un coup d’œil.
i. Facilité d’utilisation
Google App Engine permet aux développeurs de se concentrer sur l’écriture du code. Il leur évite de devoir s’occuper de tâches telles que la gestion et la configuration des serveurs. En conséquence, ils orientent leurs efforts vers la gestion et le déploiement du code.
L’App Engine aide les utilisateurs à utiliser la plateforme en nuage sans effort, de sorte qu’ils peuvent choisir de se concentrer sur l’exécution simultanée d’applications et de processus. Google App Engine gère le trafic par le biais d’un approvisionnement, d’une surveillance et d’un correctif automatiques.
ii. Hébergement évolutif
Les développeurs et les entreprises du monde entier préfèrent Google App Engine en raison du niveau d’évolutivité qu’il offre. En optant pour cette plateforme, les entreprises prennent une longueur d’avance sur leurs concurrents, car elles peuvent se développer sans se soucier des exigences d’évolutivité.
La plateforme de développement en cloud de Google App Engine est conçue pour une mise à l’échelle automatique en fonction de la demande croissante. Lorsque la demande augmente en raison d’un afflux important de trafic, les ressources sont automatiquement augmentées. Il se réduit également lorsque les besoins sont réduits.
iii. Une mise sur le marché plus rapide
Google App Engine est connu pour être une plateforme qui assure une mise sur le marché plus rapide de vos applications professionnelles à forte valeur ajoutée. C’est
essentiel dans les cas où les exigences évoluent rapidement, car les délais de
Theme : Google App Engine et Java 9
lancement doivent être maintenus. Les outils et fonctionnalités pratiques de cette plateforme permettent de réduire le temps de test, et les délais de lancement s’en trouvent réduits.
iv. Service géré
Google App Engine permet aux développeurs d’ajouter le code de leurs applications sur la plateforme de Google et se charge de la gestion de l’infrastructure. Il permet également de sécuriser vos applications web et d’en assurer le fonctionnement. Les propriétaires et les développeurs d’entreprises peuvent être assurés que leurs applications et leurs données sont protégées contre les logiciels malveillants et autres problèmes.
v. Un ensemble diversifié d’API
Google App Engine est livré avec de nombreuses API et plusieurs services qui permettent aux développeurs de créer des applications polyvalentes. Parmi les fonctionnalités, citons le stockage dans le cloud de Google App Engine, l’accès aux journaux des applications, la prise en charge de SSL, Google Cloud Endpoint, les API (utilisateur, URL Fetch, Channel, fichier, XXMP, Memcache), les services de vitesse de page, Blobstore, etc. Ce sont des éléments essentiels qui garantissent une bonne expérience de développement.
2- Limites de Google App Engine
Bien qu’il s’agisse d’une excellente plateforme, elle présente quelques inconvénients. Quelques exemples, ci-dessous :
i. Verrouillage des vendeurs
Le verrouillage des fournisseurs est une limitation importante de Google App Engine, car les utilisateurs sont confrontés à des problèmes de migration des données vers d’autres bases de données NoSQL. Le portage d’applications d’une plateforme à une autre peut être un véritable défi.
ii. Accès en lecture seule au système de fichiers
Les utilisateurs de Google App Engine doivent travailler avec un accès en lecture seule au système de fichiers, ce qui dissuade de nombreux utilisateurs potentiels. Il ne permet pas d’écrire dans des fichiers locaux, et les données doivent être stockées dans une configuration distribuée.
iii. Tous les langages et frameworks ne sont pas pris en charge
App Engine n’offre pas de support pour tous les langages de programmation et frameworks largement utilisés. Les utilisateurs sont limités aux langages Node.js, Java, Ruby, C#, Go, Python ou PHP. Les utilisateurs doivent s’en remettre à la fonction d’exécution personnalisée pour utiliser d’autres langues.
iv. Coûteux par rapport à un déploiement IaaS pur
Google App Engine est une option coûteuse par rapport aux solutions d’autohébergement. Il est comparativement plus onéreux qu’un déploiement IaaS, et les coûts peuvent augmenter en fonction de la croissance des besoins.
v. Le support client n’est pas parfait
Google laisse les utilisateurs d’App Engine sur leur faim car son support client n’est pas parfait.
VI- COÛT DE GOOGLE APP ENGINE
Google App Engine propose à ses utilisateurs un plan basé sur l’utilisation. L’avantage est qu’il existe un quota gratuit pour tester le service sans frais. La tarification de Google App Engine est segmentée en modèles standard et flexible afin de répondre aux différents besoins des utilisateurs. Les deux modèles de tarification incluent les coûts des produits Google Cloud, le cas échéant. Jetez un coup d’œil aux deux environnements tarifaires ci-dessous :
Catégorie |
Quota gratuit |
Plan payant |
Les quotas libres de Google App Engine offrent |
Modèle de paiement au fur et à mesure (basé sur l’utilisation). |
|
de petites quantités de ressources pour les |
L’App Engine est basé sur un modèle de paiement à l’utilisation ou à l’usage. |
|
applications. Les utilisateurs sont facturés |
Les utilisateurs sont facturés pour les produits et les modules complémentaires qu’ils utilisent. |
|
pour toute ressource supplémentaire qu’ils |
Ils peuvent se faire une idée des prix en utilisant le calculateur de prix du site Google Cloud. |
|
finissent par utiliser au-delà de ce qui est donné gratuitement. |
i. Environnement standard
La tarification pour l’environnement standard commence avec le quota gratuit. Les utilisateurs sont facturés davantage lorsqu’ils dépassent les ressources limitées du quota gratuit. Les taux horaires de facturation varient en fonction des classes d’instances, et il existe deux types de mise à l’échelle, à savoir la mise à l’échelle de base et la mise à l’échelle manuelle. Les heures supplémentaires des instances ne sont pas prises en compte lorsque le nombre d’instances inactives dépasse le nombre spécifié par l’utilisateur.
Services gratuits |
Services payants |
- Le trafic du réseau de revenu est gratuit. |
- Sortie du réseau |
- Envoi d’emails |
- Données stockées dans le Blobstore |
- Memcache partagé |
- Memcache dédié |
- Cron |
- Logs API |
- API (files d’attente de tâches, images, |
- Recherche API |
fichiers, utilisateurs) |
ii. Environnement flexible
Le plan tarifaire de l’environnement flexible ne comporte pas de quota libre. Dans ce plan, les applications des utilisateurs ont des déploiements de machines virtuelles.
La facturation de la machine virtuelle se fait à la seconde, avec un coût d’utilisation minimal de 1 minute. Les frais sont principalement déterminés par les variables suivantes :
• vCPU
• La mémoire
• Réseau
• Disque persistant
VII- CAS PRATIQUE
Étape 1 : se connecter a console.cloud.google.com avec un compte google cloud. Puis rechercher App Engine dans la barre de recherche.
Étape 2 : Créer une Instance App Engine : choisir une région pour votre instance
Etape 3 : choix de la technologie a utiliser (java, python…)
Création de cloud SQL
Étape 1 : rechercher Cloud SQL et choisir créer un instance.
Étape 2 : donner les propriétés de votre instance cloud sql
Étape 4 : Valider la création et terminer
CONCLUSION
Parvenu au terme de notre chapitre il en ressort que la première version du GAE vois le jour en 2008 et a beaucoup évoluer et ne cesse d’être amélioré ; le GAE permet principalement la création des bases de données grâce au Google Cloud SQL et la gestion des utilisateurs ; Google App Engine fait face a beaucoup de concurrence notamment ceux d’Amazon et de Microsoft sans oublier qu’il possède autant d’avantages que d’inconvénients, il dispose de deux environnements ; l’environnement standard qui est dispose d’un version gratuit et d’un autre payant et l’environnement flexible qui est particulièrement payant . Google App Engine est l’une des offres PaaS les plus populaires et les plus utilisées
Ajouter un commentaire