Dans un premier article nous avons présenté l'offre cloud d'Amazon Web Services. Nous allons aujourd'hui nous intéresser à son concurrent Google avec le Google App Engine. La forme sera ici similaire au premier article : il s'agit d'une cartographie où la description de chaque service fourni apparaît lorsque l'on survole la zone en question. Elle est également accessible en bas de page (cliquer sur la zone pour l'atteindre). Les zones de couleur claire représentent les fonctionnalités internes au fournisseur, les zones de couleur bleue les services interrogeables par l'utilisateur.
![AWS](GAE.png)
L'offre de Google a un positionnement différent de l'offre d'Amazon. Le contrat de service proposé repose entièrement sur une plateforme dans laquelle seront déployées des applications. Les services sont conçus pour être accessibles à travers les API Java ou Python mises à disposition. L'utilisateur de Google App Engine n'a pas à gérer les détails d'infrastructure (provisionning de machine même virtuelle), gestion du système d'exploitation. Pour que les applications déployées soient directement scalables, Google AppEngine impose des contraintes fortes sur l'utilisation des API : le temps de traitement est limité, le dataStore, un stockage faiblement relationnel, est le seul stockage persistant disponible sur cette plateforme. Ainsi autant une application conçue pour une machine virtuelle pourra fonctionner sans grande modification sur Amazon, autant les applications devront être spécialement conçues pour Google AppEngine. Les deux grandes forces de cette plateforme sont une offre d'appel gratuite, l'image de marque de Google et une promesse de scalabilité quasi illimitée. Offrir un déploiement gratuit lui permet d'être la plateforme de cloud la plus massivement testée par les développeurs. A l'inverse, Amazon, plus proche du modèle étude/production, est plus rassurant pour les entreprises. L'offre Google peut inquiéter du fait de la dépendance totale au géant du web mais ce problème de confiance se résoudra très certainement avec le temps et le nombre d'acteurs visibles utilisant cette plateforme.
La suite de ce document contient une version fixe du texte présent dans les info-bulles. Il s'agit du texte visualisé lorsque vous cliquez sur une zone de la cartographie.
Début de la version imprimable
Deux langages possibles :
Quotas : Ils existent à deux niveaux
Facturation L'utilisation de Google App Engine est facturé en fonction :
Description Stockage persistant de données structurées
Caractéristiques
!=
n'est pas supporté et une seule inégalité est possible par requête.Facturation et quotas
Description Stockage en mémoire de paires clé/valeur
Caractéristiques
Quotas Quotas sur : le nombre d’appels, la quantité échangée
Description Accès à des données situées chez Google via Internet
Caractéristiques
Quotas Quotas sur : le nombre d’appels, la quantité échangée
Description Manipulation d’images
Caractéristiques
Quotas Quotas sur : le nombre d’appels, le nombre de transformations, la quantité échangée
Description Service d’authentification et d’habilitation
Caractéristiques
Quota Aucun Quota
Description Service d'envoi de mails
Caractéristiques
javax.mail
)Facturation et Quotas
Description Service de messagerie instantanée
Caractéristiques
Facturation et quotas
Description Ordonnanceur
Caractéristiques
Appelle une URL au déclenchement. Ces URL peuvent être sécurisées car le CRON a les droits admin
Se configure par un fichier WEB-INF/cron.xml
Il est possible de mettre à jour uniquement les crons (AppCfg update_cron)
Ne fonctionne pas dans le serveur du SDK de développement
Format proche de l’anglais
Quota 20 tâches planifiées par application
Description Service d’exécution d’une file de tâches (queue + daemon)
Caractéristiques
Définition des fiches au format yaml
Une tâche est représentée par une requête (URL, paramètres, en-têtes, corps)
Possibilité de nommer une tâche (pour garantir l’unicité)
Les requêtes sont soumises aux mêmes quotas que toutes les requêtes (temps de traitement maximum de 30 s. …)
Les requêtes peuvent être protégées, l’exécuteur a les droits d’administration
La requête est rejouée si son code retour n’est pas 200
Il est prévu que chaque requête soit exécutée une seule fois mais GAE ne le garantit pas (un rejeu peut arriver en cas de crash)
Possibilité de configurer les files (ex. réglage du débit)
Les tâches sont traitées en FIFO (sans que cela soit une garantie) et peuvent être traitées simultanément
Une file par défaut est disponible (par défaut 5 tâches par seconde)
Facturation et Quotas
Le SDK de Google App Engine est publié en Open Source. Il fournit les librairies requises et un serveur de développement permettant de tester l'application sur tout poste de travail supportant le langage Java.
La console du Google App Engine permet d'administrer les applications. Parmi les fonctions disponibles on notera :
Fonctionnalité interne à Google App Engine Ils sont entièrement gérés par le Google App Engine. Les logs configurés dans l'application sont directement consultables dans la console.
Fonctionnalité interne à Google App Engine sur laquelle repose le DataStore. L'utilisateur n'interagit pas avec ce service. Le caractère non relationnel de la BigTable transparait cependant au travers des contraintes imposées par le DataStore. Le blog de google nous informe sur ce choix.
Fonctionnalité interne à Google App Engine sur laquelle repose la BigTable. C'est donc une brique très bas niveau de l'infrastructure de Google. L'utilisateur n'interagit pas avec ce service. Son utilisation par la BigTable ainsi que son architecture interne sont décrites dans des publications de Google..