SlideShare une entreprise Scribd logo
1  sur  18
GWT à l'épreuve du feu
     by Sami Jaber (DNG Consulting)
             twitter @samijaber
      http://www.dng-consulting.com




                                      1
Abstract
•   Qu'est-ce que le projet Cobra ?

•   Une démo, une démo, une démo !

•   Les défis techniques d'un tel projet




                                           2
Speaker
•   Consultant, formateur et fondateur de la société DNG Consulting,
    spécialisée dans le développement d'applications JEE et .NET
•   Auteur livre "Programmation GWT 2" paru chez Eyrolles
•   http://www.dng-consulting.com : expertise technologies Google
•   Blog : http://www.samijaber.com & Twitter : @samijaber
•   Projet réalisé en commun avec Palo-IT (http://www.palo-it.com)




                                                                       3
Arkadin & Cobra

 Spécialiste des services de collaboration à      Offrir le meilleur support possible à nos clients
    distance (160M€ CA, 1000 Collaborateurs)
                                                      avec notamment, un temps d’attente ou de
 Présence Globale (29 Pays, 25K Clients) avec        résolution de problème le plus court possible
    Forte Culture cliente locale (70% de nos
    ressources humaines, 15 langues)               Une application de gestion de conférences audio
                                                      & web, utilisée par les opérateurs de notre
 11M Conférences, 40M de Participants, 2.5B de       Service Client répartis sur un plan mondial (US,
    Minutes                                           UK, Asie, …)




                                                                                                         4
Cobra en image



                         Support Level



 Participants en
Liste des participants
    conférence

                                         5
LA DEMO, LA DEMO !


                     6
L'architecture technique Cobra
                                                                            clients




                                                                          Ponts téléphoniques
                                                                          Ponts téléphoniques
                                                                           Plateforme Audio
                                                                           Plateforme Audio
                                           COM (Component Object Model)




                                                                                                COM (Component Object Model)
                                 Cobra                                                                                           Cobra
                                 Backend                                                                                         Backend




          Cobra Server US                                                                                                      Cobra Server UK


                                                                                                                                                               Console
Console       Inter-Cobra communication
                    REST + RestEasy
                                                                                                                                   Inter-Cobra communication
                                                                                                                                         REST + RestEasy        GWT
 GWT

                                                                                                                                                                         7
Pourquoi le choix GWT
•   La culture et l'architecture en place dans la société aurait penché pour un
    choix .NET en Silverlight ou Flash (des compétences que nous avons par
    ailleurs)
•   … Mais les contraintes de délais, la nécessité de supporter du quasi temps
    réel et une ergonomie AJAX ont joué en faveur de GWT
•   Aujourd'hui, après 2 ans de développement (équipe de 6 à 8 personnes),
    ce choix s'avère plus que jamais pertinent
•   On estime à +100% la productivité générée par ce choix technique
•   Dans l'équipe, aucun développeur n'est un gourou de JavaScript et ne
    souhaite le devenir, on aime Java !

                                                                                  8
Les défis techniques
•   Un projet en mode agile
•   Gestion du push sur HTTP (GWT EventService – Atmosphere)
•   Ponts Java/COM, performances, fuites mémoire
•   Code Splitting
•   Tests fonctionnels avec Selenium
•   Le monitoring (DevOps)
•   Jboss 7.1, EJB 3/JPA 2



                                                               9
Gestion de projet en mode agile
•   Des itérations relativement
    courtes de 3 semaines                 JIRA
•   Un outillage SCRUM complet :
    JIRA, FishEye, SVN
    Jenkins (intégration continue)
    Confluence & Google docs
     (documentation & tests)
                                      FishEye
    QA Director (tests
     fonctionnels)

Transparence => Confiance
                                                 10
Défi technique principal : le push
•   L'application nécessitait de pouvoir recevoir une centaine d'évènements
    par seconde
•   Notre choix s'est porté sur GWT EventService, un framework
    OpenSource qui gère du short/long polling & streaming
•   Nécessité de patcher pour gérer plus finement certaines déconnexions
    réseau intempestives (merci l'Open Source!)
•   Nous avons également étudié le projet Atmosphere, un excellent produit
    même si peu mature au moment de notre évaluation
•   Cobra sait gérer aujourd'hui 25 appels par seconde et des centaines
    d'évènements par seconde (possible de faire mieux!)


                                                                              11
Communication avec .NET
•   Toute la plateforme destinée à gérer les conférences téléphoniques est
    développée en .NET (par les équipes Arkadin)
•   Il fallait un moyen performant en mode In-Process d'appeler des
    services .NET : nous avons opté pour COM (Component Object Model)
•   L'outil Java/COM retenu initialement, Comfyj de Teamdev, s'est avéré
    buggué (fuites mémoires, problèmes de perfs, …)
•   Nous avons dû le remplacer par un pont Open Source : Jacob, moins
    riche, moins documenté mais … OpenSource !
•   Après quelques patchs et optimisations, Jacob a tenu la charge


        Outils clés : DebugDiag, WinDebug, ProcExp
                                                                             12
Fragmentation du code JS
•    L'application est très importante, plusieurs dizaines de milliers de lignes de
     code
•    GWT propose une fonctionnalité très puissante, celle de générer plusieurs
     fichiers JavaScript
     des fragments de code chargés uniquement si l'utilisateur sollicite la
       fonctionnalité en question (à la manière d'un ClassLoader Java)
•    Le FrontEnd et le BackEnd ont été "codesplittés", ce qui a réduit
     considérablement le temps de chargement de l'application
     Un opérateur (non admin) ne charge ainsi à aucun moment le JavaScript
       de l'application de BackEnd


                                                                                      13
Plateforme JEE serveur
•   Jboss 7.1 : compatible OSGI, empreinte mémoire réduite, support EJB 3.1
    et JPA 2 (Java Persistence API 2)
•   Stack Metro (implémentation JAX-WS) pour la communication avec les
    WebServices .NET (Basic Profile)
•   Ehcache comme cache applicatif
•   Utilisation de REST Easy pour la communication entre les différents
    serveurs Cobra (lorsqu'un groupe de support est fermé, il communique
    avec un autre groupe actif dans le monde pour prendre le relai)
•   Grâce à ce mécanisme, un support 24/7 est possible !


                                                                              14
Tests fonctionnels (1/2)
•   Comme le montre la démo, cette application est très riche et très
    complexe
•   Les tests unitaires ne suffisent pas à garantir la qualité dans ce type
    d'application où l'interaction avec l'utilisateur est primordiale
•   Nous avons donc bâti un environnement de tests fonctionnels basé sur
    l'outil Selenium simulant des opérateurs de type "robots"
•   Un robot "client" entre en conférence puis est intercepté par un robot
    "opérateur" qui l'assiste, un robot agit à une vitesse qu'aucun humain n'est
    capable d'assurer manuellement avec un navigateur
•   Nous avons également utilisé ces robots pour nos benchs
•   Un humain peut se tromper en testant, pas un robot

                                                                                   15
Tests fonctionnels (2/2)
•    Piloter une IHM Web avec un robot nécessite de générer des identifiants de
     composants graphiques <div id="MoveToConf">…</div>
•    Plutôt que de "polluer" l'application de production avec des attributs ID dans
     les pages HTML, nous avons utilisé une autre fonctionnalité clé de GWT : Le
     Defferred Binding
     Permet de générer des fichiers JavaScript différents en fonction d'un
       paramètre personnalisé
     Le testeur charge http://server/cobra.html?debug=true et la production
       http://server/cobra.html (on fait ainsi l'économie de balises inutiles en
       production)

                                                                                      16
Monitoring & DevOps
•   Assuré par l'outil OpenSource JavaMelody (
    http://code.google.com/p/javamelody/)
•   Simple et peu intrusif mais surtout gère des indicateurs GWT (temps
    d'appels des services RPC)
•   Nous avons dû là encore le patcher pour le rendre compatible Jboss 7
    (encore merci à l'Open Source!)




                                                                           17
Et voilà, des questions ?




                            18

Contenu connexe

En vedette

Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity frameworkDNG Consulting
 
GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day DNG Consulting
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented ArchitectureDNG Consulting
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
Présentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTPrésentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTDNG Consulting
 

En vedette (7)

Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity framework
 
GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
Présentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTPrésentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWT
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 

Similaire à Session GWT Devoxx France 2012 Cobra

ToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéNicolas Deverge
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxMarc Bojoly
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent Biret
 
Témoignage client ProxiAD
Témoignage client ProxiADTémoignage client ProxiAD
Témoignage client ProxiADEclipseDayParis
 
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système JavaLes ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système JavaDocDoku
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanneDidier Durand
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...sebastienmoreno
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Camille Roux
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lroxmed
 
Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitGregoire Lejeune
 

Similaire à Session GWT Devoxx France 2012 Cobra (20)

ToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & Agilité
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
 
Flex4.5 air3.0
Flex4.5 air3.0Flex4.5 air3.0
Flex4.5 air3.0
 
Formation Google App Engine
Formation Google App EngineFormation Google App Engine
Formation Google App Engine
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)
 
Témoignage client ProxiAD
Témoignage client ProxiADTémoignage client ProxiAD
Témoignage client ProxiAD
 
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système JavaLes ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
Les ZAPeroTech #4 : REX Oracle Code One 2019 sur l'éco-système Java
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnit
 

Session GWT Devoxx France 2012 Cobra

  • 1. GWT à l'épreuve du feu by Sami Jaber (DNG Consulting) twitter @samijaber http://www.dng-consulting.com 1
  • 2. Abstract • Qu'est-ce que le projet Cobra ? • Une démo, une démo, une démo ! • Les défis techniques d'un tel projet 2
  • 3. Speaker • Consultant, formateur et fondateur de la société DNG Consulting, spécialisée dans le développement d'applications JEE et .NET • Auteur livre "Programmation GWT 2" paru chez Eyrolles • http://www.dng-consulting.com : expertise technologies Google • Blog : http://www.samijaber.com & Twitter : @samijaber • Projet réalisé en commun avec Palo-IT (http://www.palo-it.com) 3
  • 4. Arkadin & Cobra  Spécialiste des services de collaboration à  Offrir le meilleur support possible à nos clients distance (160M€ CA, 1000 Collaborateurs) avec notamment, un temps d’attente ou de  Présence Globale (29 Pays, 25K Clients) avec résolution de problème le plus court possible Forte Culture cliente locale (70% de nos ressources humaines, 15 langues)  Une application de gestion de conférences audio & web, utilisée par les opérateurs de notre  11M Conférences, 40M de Participants, 2.5B de Service Client répartis sur un plan mondial (US, Minutes UK, Asie, …) 4
  • 5. Cobra en image Support Level Participants en Liste des participants conférence 5
  • 6. LA DEMO, LA DEMO ! 6
  • 7. L'architecture technique Cobra clients Ponts téléphoniques Ponts téléphoniques Plateforme Audio Plateforme Audio COM (Component Object Model) COM (Component Object Model) Cobra Cobra Backend Backend Cobra Server US Cobra Server UK Console Console Inter-Cobra communication REST + RestEasy Inter-Cobra communication REST + RestEasy GWT GWT 7
  • 8. Pourquoi le choix GWT • La culture et l'architecture en place dans la société aurait penché pour un choix .NET en Silverlight ou Flash (des compétences que nous avons par ailleurs) • … Mais les contraintes de délais, la nécessité de supporter du quasi temps réel et une ergonomie AJAX ont joué en faveur de GWT • Aujourd'hui, après 2 ans de développement (équipe de 6 à 8 personnes), ce choix s'avère plus que jamais pertinent • On estime à +100% la productivité générée par ce choix technique • Dans l'équipe, aucun développeur n'est un gourou de JavaScript et ne souhaite le devenir, on aime Java ! 8
  • 9. Les défis techniques • Un projet en mode agile • Gestion du push sur HTTP (GWT EventService – Atmosphere) • Ponts Java/COM, performances, fuites mémoire • Code Splitting • Tests fonctionnels avec Selenium • Le monitoring (DevOps) • Jboss 7.1, EJB 3/JPA 2 9
  • 10. Gestion de projet en mode agile • Des itérations relativement courtes de 3 semaines JIRA • Un outillage SCRUM complet : JIRA, FishEye, SVN Jenkins (intégration continue) Confluence & Google docs (documentation & tests) FishEye QA Director (tests fonctionnels) Transparence => Confiance 10
  • 11. Défi technique principal : le push • L'application nécessitait de pouvoir recevoir une centaine d'évènements par seconde • Notre choix s'est porté sur GWT EventService, un framework OpenSource qui gère du short/long polling & streaming • Nécessité de patcher pour gérer plus finement certaines déconnexions réseau intempestives (merci l'Open Source!) • Nous avons également étudié le projet Atmosphere, un excellent produit même si peu mature au moment de notre évaluation • Cobra sait gérer aujourd'hui 25 appels par seconde et des centaines d'évènements par seconde (possible de faire mieux!) 11
  • 12. Communication avec .NET • Toute la plateforme destinée à gérer les conférences téléphoniques est développée en .NET (par les équipes Arkadin) • Il fallait un moyen performant en mode In-Process d'appeler des services .NET : nous avons opté pour COM (Component Object Model) • L'outil Java/COM retenu initialement, Comfyj de Teamdev, s'est avéré buggué (fuites mémoires, problèmes de perfs, …) • Nous avons dû le remplacer par un pont Open Source : Jacob, moins riche, moins documenté mais … OpenSource ! • Après quelques patchs et optimisations, Jacob a tenu la charge Outils clés : DebugDiag, WinDebug, ProcExp 12
  • 13. Fragmentation du code JS • L'application est très importante, plusieurs dizaines de milliers de lignes de code • GWT propose une fonctionnalité très puissante, celle de générer plusieurs fichiers JavaScript  des fragments de code chargés uniquement si l'utilisateur sollicite la fonctionnalité en question (à la manière d'un ClassLoader Java) • Le FrontEnd et le BackEnd ont été "codesplittés", ce qui a réduit considérablement le temps de chargement de l'application  Un opérateur (non admin) ne charge ainsi à aucun moment le JavaScript de l'application de BackEnd 13
  • 14. Plateforme JEE serveur • Jboss 7.1 : compatible OSGI, empreinte mémoire réduite, support EJB 3.1 et JPA 2 (Java Persistence API 2) • Stack Metro (implémentation JAX-WS) pour la communication avec les WebServices .NET (Basic Profile) • Ehcache comme cache applicatif • Utilisation de REST Easy pour la communication entre les différents serveurs Cobra (lorsqu'un groupe de support est fermé, il communique avec un autre groupe actif dans le monde pour prendre le relai) • Grâce à ce mécanisme, un support 24/7 est possible ! 14
  • 15. Tests fonctionnels (1/2) • Comme le montre la démo, cette application est très riche et très complexe • Les tests unitaires ne suffisent pas à garantir la qualité dans ce type d'application où l'interaction avec l'utilisateur est primordiale • Nous avons donc bâti un environnement de tests fonctionnels basé sur l'outil Selenium simulant des opérateurs de type "robots" • Un robot "client" entre en conférence puis est intercepté par un robot "opérateur" qui l'assiste, un robot agit à une vitesse qu'aucun humain n'est capable d'assurer manuellement avec un navigateur • Nous avons également utilisé ces robots pour nos benchs • Un humain peut se tromper en testant, pas un robot 15
  • 16. Tests fonctionnels (2/2) • Piloter une IHM Web avec un robot nécessite de générer des identifiants de composants graphiques <div id="MoveToConf">…</div> • Plutôt que de "polluer" l'application de production avec des attributs ID dans les pages HTML, nous avons utilisé une autre fonctionnalité clé de GWT : Le Defferred Binding  Permet de générer des fichiers JavaScript différents en fonction d'un paramètre personnalisé  Le testeur charge http://server/cobra.html?debug=true et la production http://server/cobra.html (on fait ainsi l'économie de balises inutiles en production) 16
  • 17. Monitoring & DevOps • Assuré par l'outil OpenSource JavaMelody ( http://code.google.com/p/javamelody/) • Simple et peu intrusif mais surtout gère des indicateurs GWT (temps d'appels des services RPC) • Nous avons dû là encore le patcher pour le rendre compatible Jboss 7 (encore merci à l'Open Source!) 17
  • 18. Et voilà, des questions ? 18