Cet article est une ébauche concernant un logiciel.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Google App Engine
Description de l'image Google App Engine icon.jpg.

Informations
Développé par Google
Dernière version 1.9.0 ()
Écrit en PythonVoir et modifier les données sur Wikidata
Environnement World Wide Web
Type Programmation Web
Site web site officiel

Google App Engine (GAE) est une plateforme de conception et d'hébergement d'applications web basée sur les serveurs de Google.

Historique

La première version de ce service (appelée 'beta'), est sortie en avril 2008, avec la possibilité d'enregistrer uniquement des comptes gratuits[1]. 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.

 :

 :

 :

 :

 :

 :

 :

 :

 :

Fonctionnement

Google App Engine permet entre autres la création de base de données (appelées datastore) et la gestion des utilisateurs.

Fonctionnement général

Architecture du Google App Engine
Architecture du Google App Engine

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).

Utilisateurs 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.

Sandbox

Afin de protéger le système, les applications sont exécutées dans un Sandbox. Ce qui implique certaines contraintes :

Langage 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.

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.

Python

Pour créer un hello world avec Google app Engine, utilisant le "framework" webapp :

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, webapp World!')

application = webapp.WSGIApplication(
                                     [('/', MainPage)],
                                     debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

Java

Exemple de code pour une servlet helloworld :

package helloworld;

import java.io.IOException;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
   
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
              throws IOException {

        resp.setContentType("text/plain");
        resp.getWriter().println("Hello ");
   }
}

Services

Google fournit pour différents langages de programmation un ensemble d’API permettant d’accéder à différents services.

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

Google Cloud SQL

En , Google ajoute une base de données SQL sans entretien, qui supporte JDBC et DB-API[2]. 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 [3].

Contexte technologique

Le service Google App Engine vient concurrencer ceux d'Amazon 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[4].

Voir aussi

Notes et références

Liens internes

Liens externes

Sur les autres projets Wikimedia :