Paris JUG consacré aux serveurs d’applications

La soirée du 12 juin 2012 du Paris JUG était consacrée aux serveurs d’applications, et plus particulièrement à WebSphere 8.5, Resin et TomEE.

Pour une fois la salle, bien remplie, n’était pas complète, est-ce que la problématique des serveurs d’applications intéresse moins le public du JUG essentiellement constituée de développeurs ?
C’est bien dommage de ne pas vouloir mieux connaitre un outil que l’on utilise tous les jours et qui est essentiel pour les performances des applications.

La soirée a commencée par une première présentation d’introduction par Antonio Goncalves :

  • Rappel sur ce qu’est un serveur d’application, il y a encore beaucoup de gens qui n’ont pas compris ce qu’est un serveur d’application et son intérêt. En résumé c’est un moteur d’exécution des applications java (conteneur servlet/JSP +  conteneur  EJB) et des SERVICES : Pool de connexions, sécurité, transactions, load-balancing, fail-over, …),
  • Un petit topo sur le marché des serveurs d’applications : 3 milliards de $ en 2012, et de 5 milliards de $ en 2015 d’où une certaine concurrence,
  • Les facteurs de différenciation (démarrage, administration, add ons et clustering)
  • Et aussi un petit slide du Gartner qui positionne WebLogic comme étant le meilleur serveur d’application (pour ceux qui en douteraient mais bon on va ranger de côté les armes pour cette session).

Un petit retour sur le temps de démarrage des serveurs d’applications qui ont tous fait un vrai effort lorsque l’on voit l’exemple de JBoss 5 qui démarrait en 1 minute et Jboss 7 en 5s, il n’y a pas photo.
Il faut aussi reconnaitre qu’avec les notions de profils JEE (Web, Full), les serveurs d’applications ne démarrent pas forcément tout d’où les gains de temps et comme on a rarement besoin de tout c’est un gain intelligent.
Et d’ailleurs, ce critère de différenciation qu’est le démarrage n’en est plus un, vu qu’ils peuvent démarrer en quelques secondes. D’ailleurs je me pose la question maintenant de savoir ce que veut dire maintenant démarrer pour un serveur d’application à part l’affichage du mot clé « STARTED » ? Qu’est ce qui est vraiment chargé ? Est-ce qu’il y a du LAZY Loading des services ?  …

La présentation sur WAS était particulièrement intéressante et édifiante, et bravo quand même pour le consultant IBM pour sa franchise notamment sur le petit sondage live du début :

  • Combien de personnes utilisent WAS ?  50 personnes (sur environ 200 personnes dans la salle)
  • Qui aime ? 1 (tiens un gars d’IBM dans le public ?)

Et donc le constat est là, il n’y a pas vraiment de développeurs qui apprécient WebSpehre en développement et c’est bien ce qui a poussé IBM à « Essayer de regagner le cœur des développeurs« .

WebSphere possède donc maintenant un Liberty profile, qui est une version de WebSphere allégé et dédié au développement mais différent du web profile (plus light encore)
Les avantages :

  • Léger : 40 mb à installer au lieu des 3 DVD habituels et de la journée d’installation du produit quand cela se passe bien,
  • Rapide : 5 s pour démarrer,
  • Simple : 1 fichier de configuration XML partageable et modulaire (fractionnement possible en plusieurs fichiers), Un-zip pour l’installation et de plus basé sur OSGI Equinoxe.

Quelques autres notions intéressantes :

  • Classloader privé pour résoudre les problèmes de jars communs entre WebSphere et l’application,
  • Shared Libraries pour partager des jars,

Des notions intéressantes mais qui ont été réalisées dans WebLogic 10 il y a déjà plus de 5 ans …

Je ne suis pas fan de Websphere en développement (comme tout le monde sauf exception) mais j’ai trouvé qu’IBM a vraiment réalisé un vrai pas en avant vers les développeurs et l’on peut les saluer.
Après pourquoi seulement en 2012, l’inertie des grands navires informatiques …
Pour finir la démo, ne marche pas … comme quoi on ne veut quand même pas trop perturber les développeurs 😉

Après le JUG a continué sur une présentation de Resin par un utilisateur qui connait seulement depuis 1 mois mais qui a eu le courage de faire cette présentation
Petit sondage de début : qui a déjà utilisé Resin ? 5 personnes

Pourquoi alors Resin  est si peu connu alors que c’est un des plus vieux serveurs d’applications (1999,  la préhistoire du web) ?
Le constat :

  • Peu de documentations,
  • Licence obscur pendant longtemps,
  • Communication faible,
  • Et peu d’utilisateurs à part SalesForce.

Pourtant, c’est un des premiers serveurs d’applications Web Profile et il a une licence professionnelle pas trop cher (700$/ CPU) et quelques avantages intéressants :

  • Watchdog pour surveiller le serveur,
  • Implemtation CDI,
  • Cluster dynamique cloud ready,
  • Multi-tenancy.

Et enfin pour finir on a le droit à une présentation de TomEE
TomEE (sous projet d’Open EJB) est une surcouche à Tomcat pour atteindre le Web profile JEE6.

On peut citer notamment les modules présents dans cette implémentation :
Tomcat, OpenEJB, OpenJPA, OpenWebBean, MyFaces, Geronimo Transaction, …
et pour une version un peu plus avancée (au delà du web profile) : ApacheMQ, et Apache CXF.

Quelques autres avantages sont présents dans TomEE:

  • Integration facile avec Eclipse, Maven, …
  • Tourné vers cloud

Enfin pour conclure :
Les serveurs d’applications ont donc changés en prenant en compte maintenant les besoins de développeurs : le temps de démarrage, l’intégration des tests, …
Et l’on voit aussi l’évolution majeure des serveurs d’applications qui se préparent à tourner sur le cloud.

Quel est l’avantage alors des serveurs d’applications payant ?
WLS, Jboss et WAS ont des tas de trucs en plus : administration plus poussée avec une vraie consolegestion avancée des multiples serveurs, premières briques SOA, messaging, …

Quand je vois par exemple la configuration poussée que l’on peut avoir sur WebLogic seulement sur la problématique des Pools de connexions et les implémentations libres, il n’y a pas photo mais encore faut-il comprendre cette configuration, son intérêt et s’avoir s’en servir, l’expertise n’est pas morte … et aussi bien sur ils sont Full profil JEE : EJB remote, Timer, Web Services, REST, …