Archive

Archives pour 02/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: , ,

Les tweets de la semaine !

  • Graal : le compilateur dynamique Java pourrait être utilisé dans les JVM pour de meilleures performances : http://t.co/XHyR8Ayq #
  • Adobe détaille la roadmap et sa vision du futur de Flex : http://t.co/kJNZTI9H #
Categories: Divers Tags: ,

BDD – Spécifications éxécutables à Grenoble

Le premier atelier autour de l’approche BDD (Behavior Driven Development) organisé par le CARA (Club Agile Rhône Alpes) s’est déroulé Jeudi 9 février dernier à Grenoble dans les locaux d’Orange Labs.

Une bonne vingtaine de participants ont eu la chance de pouvoir profiter d’un tel événement dont l’organisation était parfaitement maîtrisée. L’assemblée se composait essentiellement de personnes familières des méthodes agiles et à peu près équitablement réparties entre product owners et développeurs.

Tout d’abord quelques mots sur le concept…
Dans la droite ligne du « manifeste agile« , BDD est une méthode de développement par les tests qui privilégie la collaboration active entre tous les acteurs d’un projet et la recherche de feedback rapide.
Cette approche est à la frontière entre le TDD ( unit Tests Driven Development) et l’ATDD (Acceptance Test Driven Development) centré sur les « user stories » basées le modèle :

En tant que [rôle] je veux [fonctionnalité] dans le but de [bénéfice]
As a … I want … so that …

Les tests BDD sont quant à eux, formulés en tant que scénario (exemple concret) selon le modèle suivant :

Etant donné [un contexte], quand [un événement se produit], alors [vérification du résultat attendu].
Given … when … then …

Les tests BDD peuvent être, en quelque sorte, comparés à des tests unitaires formulés dans un langage (associé à du code exécutable) compréhensible par tout membre du projet non technique.
Un vocabulaire commun et métier se profile alors entre MOA et MOE dénommé « langage omniprésent » que cherche également à mettre en valeur l’approche DDD (Domain Driven Design). Ces tests sont bien évidement inclus dans la chaîne d’exécution de la plate-forme d’intégration continue.

Concernant le déroulement de la journée, la matinée a donné l’occasion de faire naître un échange fourni et plutôt positif sur la base de retour d’expérience dans la mise en œuvre de BDD au sein des différentes entreprises présentes.
Divers workshops ont pris le relais l’après midi autour des propositions de sujet apportées par les participants. Chacun à pu avoir l’occasion de réfléchir sur des questions telles que : Un product owner doit il être technique ? Quels sont les tests dont la nature est plutôt proche de BDD ou de TDD ? mais également de participer à des présentations de framework comme Cucumber, RobotFramework et SpecFlow ou encore à des jeux de mise en situation de rédaction de tests.
La gestion (indexation, recherche, génération de document) de l’ensemble des tests constituant ainsi les spécifications fonctionnelles du produit semble souffrir pour le moment du manque d’outils adaptés.

A noter également la présence de Laurent Bossavit venu prendre part aux débats et nous informer de l’éventuelle mise en place de master classes BDD au travers de l’institut agile.

Le BDD semble pour le moment cantonné à un groupe d’early adopters et les organisateurs de cette journée se sont pris à rêver de la naissance d’une communauté BDD suite à cette événement. Maintenant que la dynamique est lancée, d’autres sessions devraient venir confirmer cet engouement dans les prochains mois, avec qui sait, peut être un prochain coding dojo BDD attirant non seulement des développeurs mais autant de product owners ?

Affaire à suivre…

Les tweets de la semaine !

  • 7 erreurs fréquentes lors des tests logiciels : http://t.co/4DFzShsh #
  • L'inventeur de JavaScript donne son avis sur le langage Dart de Google http://t.co/81BDDi2W #
  • Oracle veut un comité unique pour gérer les specs Java et donc la fusion des comités actuels Java EE/SE et Java ME http://t.co/7yILwjaq #
  • Your Brain on Scrum http://t.co/EAJxVkab – il y a des raisons scientifiques à l'efficacité des méthodes agiles #
Categories: Divers Tags: ,