dimanche 12 avril 2009

Quel crédit donner aux résultats affichés par le DashBoard de GoogleApp Engine (GAE) ?

Le DashBord de GoogleApp Engine (version java), présente des résultants intéressants, mais quelle est la vérité derrière ces données, la prochaine section on va tester les résultats.

Cette section a pour objectif : la Vérification de valeurs présentées par le Tableau de Bord de GoogleApp Engine (GAE) :

Pour cela, nous allons utiliser un outil de simulation classique dans le monde des études de performances : le fameux Jmeter

Installer un outil de simulation de charge

Télécharger jmeter à partir de http://jakarta.apache.org/jmeter/

Lancer Jmeter et créer un Script de simulation d'exécution de l'application

Attention, le teste a été réalisé à partir d'un ordinateur Portable connecté à Internet avec un débit limité, ADSL 1Mo (théorique), ça n'a pas de valeur intrinsèque pour mesurer les performances de la plateforme, mais permettra de comparer les résultats.)

On lance une simulation de 20 utilisateurs virtuels simultanés (20 Threads)

http://kbdsoft.appspot.com/

http://kbdsoft.appspot.com/pagesManagement.do

http://kbdsoft.appspot.com/menuManagement.do

http://kbdsoft.appspot.com/user.do

http://kbdsoft.appspot.com/audit.do

http://kbdsoft.appspot.com/rolesManagement.do

http://kbdsoft.appspot.com/index.do

Le scénario est exécuté 100 fois.

Exécuter la simulation de charge

Réaliser une simulation de montée en charge

On remarque qu'au début de la simulation

Après quelques minutes et à la fin des

Ce Tableau de Bord permet de suivre en temps réel le comportement de l'application : il s'agit de la mise en ouvre du concept SAM (Service Activity Monitoring, permet de suivre les SLA fixé dans le contrat, pour la version payante)

Ainsi, après 100 exécutions du script, les résultats présentés par Google sont résumés ainsi :

De l'autre coté, après la fin des 100 exécutions du script, les résultats présentés par Jmeter sont résumé ainsi :

Comparer les résultats de Jmeter et GAE

On remarque une bonne concordance des résultats (bien sûre il s'agit d'une simulation courte et pour avoir des résultats plus détaillés, il faut se rappeler que les mesures de performance doivent suivre une étude statistique et utiliser les lois de grands nombres)


Jmeter

Résultat vue par le client

GAE DashBord

Résultat vue par les serveurs de Google

http://kbdsoft.appspot.com/

1.135

1.2

http://kbdsoft.appspot.com/pagesManagement.do

2.265

2.4

http://kbdsoft.appspot.com/menuManagement.do

2.275

2.4

http://kbdsoft.appspot.com/user.do

3.411

3.6

http://kbdsoft.appspot.com/audit.do

1.142

1.2

http://kbdsoft.appspot.com/rolesManagement.do

1.144

1.2

http://kbdsoft.appspot.com/index.do

1.147

1.2

Total

12.59

13.5

Les résultats montrés par Google sont ainsi validé par les résultats de Jmeter, on peut se fier à ce tableau de Bord.

Conclusion :

Pour ce premier test, je suis « tombé sous le charme » : il m'a fallu moins d'une demi-heure pour déployer une ancienne application (simple) basée sur Struts sur le cloud de Google

Aucune modification n'a été nécessaire !

Certes : il n'y a avait pas de transaction, de base de données, de Spring, de Hibernate …

Un Tableau de Bord (DashBoard) permet de suivre l'activité de l'application et de voir les logs et les temps de réponse et même la facturation (n'a pas été testée dans ce tutorial).

Le travail avec GAE parait

  1. Simple

  1. Permet de recycler les « réflexes » des développeurs Java
  2. Permet de recycler les « anciennes application » Java
  3. Le Dashboard donne des informations proche de la réalité et vérifiables


La suite : continuer à tester :

-impact des bases de données (JDBC/JPA/JDO)

-L'utilisation des Framework classiques : Spring, JaxB, Axis, Hibernte


Le cloud coumputing en marche ...

0 commentaires :

Enregistrer un commentaire

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.