Objectif
Ce tutorial a pour but de présenter la démarche à suivre pour déployer une application web Java EE dans la plateforme PaaS de Google : Google appengine.
Pour présenter GAE (Google appengine) : il suffit de pense à un serveur d'applications java capable de supporter une charge importante. Bien sûre, plusieurs API java ont été désactivé, ce qui rend impossible de deployer telqu'elles les applications J2EE classique.
Il permettra de :
- Tester GAE : Faire un premier test du PaaS (Plateforme As A Service) de Google avec java
- Vérifier la courbe d’apprentissage
- Tester les outillages offerts par Google
- Vérifier la qualité des informations présentées par le Tableau de bord : dans le sens vérifier la validité des informations données par le Tableau de Bord (DashBorad) de Google par rapport à des mesures réelles.
Ce tutorial présente une démarche pour passer du monde de développement en local vers l’univers de l’hébergement d’une application dans une infrastructure de type Cloud : Google App Engine. Il couvre les points importants pour créer un compte Google App Engine, le déploiement des versions et le suivi de l’activité de l’application à travers la console d’administration.
GAE c’est quoi ?
Google App Engine est une une plateforme permettant de déployer des applications web Python et maintenant Java, directement dans les Datacenters de Google.
Le découpage des rôles est simple : le développeur crée son application et la déploie dans l’infrastructure de Google App Engine et Google s’occupe de gérer la montée en charge de l’application et facture le temps consommé (après dépassement d’un quota gratuit).
Introduction
On l’attendait pour le milieu de l’année 2009, mais Google vient de la lancer officiellement au début de second trimestre 2009 : La « déclinaison » java de sa plate-forme Googe App Engine est désormais là.
C’est logique : il fallait réagir rapidement : pour faire barrage à Microsoft Azure.
Google se devait de riposter et proposer une alternative pour les développeurs.
La manœuvre est habile : supporter Java 6 et offrir un plugin Eclipse, permettrait à Google d’élargir la base de développeurs cible.
Google vise ainsi à faciliter la réutilisation de code source des applications existantes et à introduire les langages dynamique de type Groovy…
Préparer l’environnement
Créer un compte sur Google App Engine
Pour pouvoir créer un compte Google App Engine, il faut posséder compte email sur Gmail. Ce compte Gmail sera l’identifiant unique à utiliser pour se connecter ( Google a adopté le principe de l'OpenID)
Trois étapes pour créer un compte Google App Engine
ü Demander la création d’un compte le compte
ü Attendre l’arrivée d’un code secret par SMS pour compléter la création du compte GAE
ü Créer une application
Le lien : http://appengine.google.com/
Donner un numéro de GSM, pour recevoir le code d’authentification
En moins d’une seconde j’ai reçu le code du compte par SMS
L’étape suivante consiste à inscrire le code dans la page d’authentification.
Renseigner l’identifiant de l’application
Et le titre.
Ce dernier pourra être changé dans la suite
Enfin, l’application est crée
Application Registered Successfully
The application will use kbdsoft as an identifier. This identifier belongs in your application's app.yaml file as well. Learn more Note that this identifier cannot be changed.
Installer le plugin Eclipse de Google App Engine
J’ai commencé par télécharger Eclipse
La version recommandée est Eclipse 3.4 (Ganymede)
http://code.google.com/intl/fr/eclipse/docs/install-eclipse-3.4.html
Puis utiliser le lien suivant pour installer le pluging Eclipse pour GAE :
http://dl.google.com/eclipse/plugin/3.4
Choir les modules à installer
Vérifier l’installation
Et le paramétrage
Si besoin vérifier la configuration de GWT (Google essaye bien sûre de favoriser GWT, mais l’outil n’est pas limité à GWT)
Développer l’application
Les étapes à suivre dans ce tutorial
a. Récupérer une ancienne application web J2EE (faire un simple Hello World n’a pas d’intérêt, on sait d’avance que ça va marcher)
b. Créer un projet Déployer en local
c. Créer un projet Déployer dans les nuages (GAE)
d. Tester
Choix de l’application test :
Afin d’éviter le « Hello World » j’ai récupéré une ancienne application simple à partir de mon serveur SVN. J’ai choit une application simple pour tester un seul aspect à la fois. L’application date de 2005, cela me permet de vérifier la capacité de GAE à pérenniser les investissements.
En effet, s’il fallait réécrire toutes les applications avant de les déployer sur le Cloud : le concept n’aura aucune chance de survire au BUZZ.
Il s’agit d’une application Web traitant de l’aspect navigation et MVC. Elle est basée sur
· JSP
· Struts
· Struts Menu
Ce tutorial a pour objectif de « prendre la température » de ce que propose Google dans son PaaS, et de vérifier le prédicat suivant : « les développeurs java vont pouvoir capitaliser sur leurs expériences et utiliser les réflexes et habitudes,
Les aspects avancés ne sont pas inclus : ni base de données, ni Spring, ni Hibernate, ces aspects seront testés dans une phase ultérieure.
Cela permettra de vérifier si « dans les nuages », un développeur Java va se sentir « comme chez soit»
Création du projet Web :
La création d’une application est similaire à la création d’une application web avec WTP
J’ai crée ma premier WebApplication
Une fois crée le projet est une application web J2EE classique.
La principale nouveauté est la présence d’un fichier de config spécial de GAE
appengine-web.xml :
<sessions-enabled>truesessions-enabled>
Il suffit de copier les fichiers sources de l’ancienne Application « Version classique 2005 » dans le projet GAE qui vient d’être créer J’ai copier le contenu source de mon ancienne application (date de 2005) J’ai pris le soin de changer web.xml en conséquence J’ai exécuté dans l’environnement local |
Exécuter en local
J’ai exécuté dans l’environnement local
Ça marche
On observe une console de déploiement
Cette console n’est pas connu par les développeurs Java EE web d’Eclipse,
Mais elle n’a pas de grande difficulté à l’ appréhender
Ça permet par exemple de lancer le serveur d’application de GAE (du Jetty apparemment)
Le résulta est le suivant
Ça rappelle, à l’identique, le résultat de l’exécution de l’application sur Tomcat en 2005
Mais attention la premier exécution d’un menu n’a pas fonctionné : en effet,
Ça ne marche pas
Google n’aime pas trop l’usage de la session, et impose qu’on le déclare officiellement Il a raison, les pb de perf… Bon, ce n’est pas grave, Il suffit d’ajouter dans le fichier appengine-web.xml (web-inf/)
<sessions-enabled>truesessions-enabled>
Ainsi le fichier appengine-web.xml
Relancer et ça marche |
Déploiement dans les nuages (GAE)
Le déploiement dans les nuages
Le déploiement est assez simple : un menu Google est ajouté :
Renseigner le mot de passe de votre compte Gmail
Le log du déploiement
Le module est nommé par Google « com.oxia.gae.kbd.Kbd » (le package par défaut de l’application est com.oxia.gae)
Et voilà
Une fois déployé et ça marche : il suffit d’ouvrir le lien http://kbdsoft.appspot.com/ dans un navigateur web : une application web déployé dans les nuages
1 commentaires :
un tres bon tuto que j'en ai fortement profité
Enregistrer un commentaire