Accueil > Actualités > Lyon Jug du 21 février 2012

Lyon Jug du 21 février 2012

Le sujet du jug de ce jour était double: l’open-source en SSII, et la démonstration d’une future fonctionnalité de Glassfish, le rolling-upgrade, justement développé par une SSII spécialisée en open-source.

L’open-source en SSII

Jérôme Petit, Directeur de l’activité Nouvelles Technologies du SI à SERLI, nous a  présenté les possibilités de contribution open-source en SSII. Cette société réalise 10% de ses développement en open-source, ce qui représente 1200 jh.

Il nous a exposé le comment et le pourquoi de l’open-source en SSII.

Pour contribuer en open-Source, il faut communiquer avec les managers responsables des composants open-source, (Emmanuel Bernard pour Hibernate par exemple), ensuite il faut gérer le projet comme un projet classique, en respectant les délais par exemple, et non pas uniquement sur le temps d’inter-contrats.

Les raisons pour lesquelles on peut contribuer en open-source semblent poser un problème commercial: il y a des cas particulier où le projet est sponsorisé par un éditeur open-source, mais en général, il faut contribuer sans facturation client.

Dans ce cas les intérêts se situent dans ce que l’on appelle les cercles vertueux, à partir d’une contribution open-source on gagne :

  • d’une part en compétence interne: cela apporte une expérience plus exigeante aux collaborateurs et entraine de plus des recrutements de profils plus qualifiés
  • d’autre part  sur la visibilité de l’entreprise auprès de clients : cela donne une meilleure image de l’entreprise au point que les clients viennent spontanément: c’est finalement moins couteux, et plus valorisant qu’une campagne de publicité.

Le rolling-upgrade

La fonctionnalité de Rolling-Upgrade nous était présentée par son développeur: Marian Muller.

Ce sujet avait été présenté au DEVOXX de l’année dernière. On a eu droit à une impressionnante démonstration en live de déploiement Glassfish. Surtout impressionnante de facilité: grâce à cette fonctionnalité une simple ligne de commande permet de déployer une application en quelques secondes, et surtout sans interruption de services.

La fonctionnalité de rolling-update fait suite à la fonctionnalité de « application versionning » développée également par SERLI et déjà présente dans Glassfish 3.1: http://weblogs.java.net/blog/serli/archive/2010/08/30/how-use-glassfish-application-versioning

Pour illustrer les difficultés d’en faire autant avec les outils actuels, Robert, la mascotte de l’entreprise montrait son contentement et son mécontentement faces aux solutions actuelles et futures.

Robert (j'ai l'impression de l’avoir déjà vu à la télé)

Si on veut assurer une continuité de service aujourd’hui, il faut un cluster de serveur Glassfish, basculer toutes les sessions vers un serveur hébergeant la version inchangée pendant le déploiement, déployer la nouvelle version sur les autres serveur, et relancer la bascule vers la totalité des serveurs. Ces opérations sont manuelles et fastidieuses pour l’équipe d’exploitation chargée du déploiement.

Face à ce constat, on nous montre ensuite la même opération avec le rolling-upgrade, une simple ligne de commande et l’application est déployée, les clients Web n’ont pas vu la coupure du serveur. Robert est content.

L’astuce de l’évolution est d’insérer un « RequestHolder » qui maintient les requêtes entrantes actives le temps de la bascule entre ancienne et nouvelle version, et ce afin d’empêcher les erreurs 404 et 503 de se produire pendant le déploiement.

La ligne de commande :

$asadmin enable foo:BETA-1.1 –rolling-upgrade

Cependant, tout n’est pas encore parfait puisqu’avec ce déploiement on perd les sessions, provoquant par exemple la déconnexion.  Une évolution future est prévue pour rétablir les sessions dans la nouvelle version déployée afin d’éviter les déconnexion.

Grâce à cette fonctionnalité de Glassfish 4.0 tout déploiement sera totalement transparent pour l’utilisateur, tout en restant très simple pour l’équipe d’exploitation.

Categories: Actualités Tags: , ,
  1. Pas encore de commentaire
  1. Pas encore de trackbacks