24 avril 2012

Devoxx France première édition

La semaine dernière la twittosphère était animée par le tag #devoxxFr, première édition de la conférence phare dans sa variante Francophone. 

Voici, comme il se doit, mon petit résumé perso de ces trois jours très, très denses, avec pour commencer un aperçu de la moquette du Marriott qui en a laissé plus d'un dubitatif :



Day 1 : universités 

La première journée de Devoxx est consacrée aux "universités", des sessions longues : 3 heures (avec pause) pour couvrir en profondeur un sujet. Le sujet que j'avais proposé était en "backup", et j'ai donc attendu qu'un speaker rate une marche dans l'escalier. Au final, je suis bien content que tout le monde soit sain et sauf, un sujet de 3h étant tout de même assez délicat à préparer en une nuit ... 

Je suis allé voir la présentation des 5 mercenaires du DevOps, bien menée, dans un esprit de saine camaraderie, sur la base d'une petite histoire romancée d'un projet qui se "DevOps-ifie". Insistant sur les changements de comportements et d'organisation nécessaires, bien plus que sur l'outillage indispensable mais secondaire, la session était (amha) une très bonne présentation de la tendance DevOps, qui inspirera j'espère ceux qui l'auront suivie.

Henri Gomez étant de la partie, ils ont évidement dépassé le temps imparti, mais en tout cas j'ai apprécié ce sujet et je n'ai pas vu le temps passer pendant cette session. On pourra regretté de ne pas avoir eu une jolie démo de vagrant et puppet, mais bon, il fallait faire un choix pour rester dans le cadre de ces 3h d'universités: virer puppet ou virer Henri :D Par ailleurs, DevOps est trop souvent réduit à ces outils, qui sont particulièrement puissants et utiles, mais masquent le fond du sujet, aussi +1 pour ce talk.



En début d'après midi, je rejoins le hackerGarten, qui propose de contribuer à un projet open-source en présence de contributeurs prestigieux : Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Arnaud Héritier, ... La salle prévue a été complètement débordée par le succès de la session, et on a donc squatté le hall. Je n'ai malheureusement pas pu rester bien longtemps, mais j'espère avoir modestement contribué au succès de cette rencontre


L'après midi et la soirée étaient consacrée pour moi à une réunion CloudBees avec nos partenaires, puis à une soirée entre collègues pour fêter les 2 ans de CloudBees - et oui, je suis à Devoxx pour le boulot ;)

J'ai aussi profité de la journée pour faire un peu de pub discrète (mais si, mais si, j'aurais pu faire pire) pour le breizhcamp. Si les organisateurs ne peuvent autoriser n'importe qui à transformer la conférence en mur de petites annonces, porte ouverte à toutes les dérives, les exposants se sont montrés particulièrement réceptifs : ceux qui nous sponsorisent comme FastConnect ne se sont pas privés d'afficher leur soutien sur leur stand, d'autres comme Sfeir ne se sont pas trop formalisés de voir le logo de leurs concurrents sur les flyers que je leur ai laissé. 




Day 2 : conférences 

La matinée commence par les keynotes (plénières), pour laquelle l'équipe DevoxxFrance présente la conférence, une petite rétrospective du chemin parcouru depuis la première réunion du ParisJug dans une salle de 25 places (pour 40 présents) à l'organisation de DevoxxFrance, qui a fait salle comble avec 1450 participants. Détail amusant, sur toutes les photos présentées, il y a un gars en chemise orange :)


Stephan Jansen, Papa de Devoxx World (nouveau nom de Devoxx à Anvers), a ensuite présenté la plateforme Parleys à un public déjà conquis.

On change alors de registre pour une présentation de l'initiative "Fier d'être développeur", dans laquelle nous sommes nombreux à nous reconnaître, portée ici par Pierre Pezziardi, Boss chez Octo mais avant tout Geek et Développeur. Cette fierté, elle passe aussi par une remise en question de notre nombrilisme de développeur, fier de notre code et de ses détails technique, et à des kilomètres des besoins de l'utilisateur. Je n'en dit pas plus, rendez-vous au BreizhCamp, où ce sujet sera présenté en keynote ;)


Ben Evans et Martijn Veburg du LondonJug mettent ensuite en scène l'avenir de Java dans un monde paradisiaque, avant de se grimer en bad-boys pour nous montrer la version infernale des mêmes prédictions, pour conclure sur notre rôle dans l'avenir de la plateforme : OpenJDK 7 a connu quelques déboires à sa sortie suite à des incompatibilités avec des projets open-source majeurs (Lucene entre autres). Pourtant, les builds de test du JDK étaient dispo de longue date et auraient pu éviter ce souci. Le programme AdoptOpenJDK a pour objectif de ne pas reproduire cette erreur pour Java 8.


Julien Ponge et Frederic Le Mouel présentaient l'un des côtés obscurs de la JVM : la manipulation de bytecode. Après avoir montré la structure générale de ce langage intermédiaire, ASM est présenté pour la production de bytecode à la volée (javassist est nettement plus facile à utiliser si vous voulez tenter l'expérience). C'est ensuite AspectJ puis byteman qui nous est proposé pour modifier le code exécutée par la JVM, suivi d'un projet de recherche encore en développement, JooFlux qui exploite invokeDynamic pour customiser les appels de méthode à la demande et à chaud. Salle comble pour un sujet qui passionne toujours les geeks, à mi chemin entre technologie avancée et magie noire.

Tous ceux qui voulaient découvrir le sujet en ont eu pour leur argent et sont repartis avec une liste d'outils à tester qui devrait les occuper jusqu'au prochain Devoxx. Et pour ceux qui en voulaient encore, la session InvokeDynamic qui suivait (et que je n'ai pas vue) était d'après ce qu'on m'en a dit encore plus "velue" :)


Julien Dubois présentait le développement d'une application "nouvelle technos", avec un regard intéressant : pas question ici de prendre toutes les technos Buzz-word du moment, mais juste ce qu'elles proposent d'intéressant et de mature. L'application en question est Tatami, un twitter intranet, dispo sur le github d'Ippon et qui a donné lieu à un concours de forks, et a permis à l'heureux gagnant de participer à Devoxx.

Une IHM en Twitter bootstrap, exploitant HTML5 pour ses aspects les plus matures et les plus "entreprise" (pas de 3D ici, ni de websocket qui ne passent pas le proxy). Le backend est développé en Spring pour son côté universellement connu des développeurs java, avec du Spring MVC+REST qui permet d'exposer rapidement le modèle métier. Avantage certain ici : même si les endpoints REST se multiplient, un designer Web/JS peut travailler facilement avec un Java-iste backend. Le stockage est confié à une base cassandra, dont la distribution et les performances sont un atout pour une appli de ce type. Enfin, la mobilité est assurée avec les mêmes API REST mais un frontend HTML5 orienté mobile, et packagé avec PhoneGap en application native.

Une session sympa, avec une vision pragmatique de l'adoption des nouvelles technos, et surtout une mine d'information sur le github Tatami et ses différents forks, pour découvrir d'autres approches (par exemple, une variante full JavaEE6)


Petite pause pour moi sur le stand Google à me goinfrer de barres glacées et à vous préparer une surprise - je n'en dirais pas plus (sinon ce ne serait pas une surprise !).


Ayant un peu discuté avec Petra Cross sur le stand, je n'ai pas été voir son talk sur les méthodes de développement de Google, sujet qui a fait salle comble (note: elle sera également présente à Mix-IT). J'ai été voir Sacha Labourey qui présentait la reprise du pouvoir par les développeurs, ou une introduction au PaaS (Platform as a Service). Là où DevOps cherche à réduire les murs entre les Devs et l'IT, le Cloud permet tout simplement d'éliminer le second acteur. Les équipes de développement peuvent alors bénéficier d'une liberté qui leur permet de répondre en un temps record aux demandes toujours plus urgentes, focalisés sur un niveau d'abstraction qui leur est propre, et non sur celui nettement plus bas qui est le quotidien de la production.

Exemple parlant : LooseIt, 2 millions d'utilisateurs, des pics de charge à 2500 requêtes/s, et ... 4 personnes pour porter l'entreprise ! Mettez vous dans la peau de Weight-Watchers, et demandez vous, avec votre IT traditionnelle, ses coûts de fonctionnement et ses délais de réaction, comment vous survivrez ?

Sacha en profite pour détourner les affiches électorales, histoire d'être en phase avec l'actualité :D

  

La journée se termine avec la soirée "meet and greet", qui - DevoxxFrance oblige - ne tourne pas à la bière / frite mais au vin rouge / fromage :) Je reprends ici quelques instants ma casquette CloudBees (sponsor de la soirée avec SonarSource et Atlassian) pour assister mes collègues sur le stand, avant de rejoindre une trentaine de user-groups présents pour les BOFs. "Birds Of a Feather (eat together)" : profitons d'être tous présents à Devoxx pour prendre 1h et discuter ensemble. Pendant le BOF JUG-leaders, la question récurrente des relations avec Oracle ("qui", "comment", "pourquoi") n'avance pas vraiment, et nous glissons vers des discussions sur nos besoins d'échange d'info.


Pas de décision tranchée au final, mais des initiatives pour "fluidifier" les échanges entre JUGs sont possibles. Dans les autres salles, les Android-addicts, Javascript-istes, Scala-mens ou JDuchess profitaient de ce moment pour discuter de leurs communautés respectives.

Retour sur le stand CloudBees, mince ce n'est pas moi qui gagne la tablette Android - en même temps, on me dit à l'oreillette que je n'avais pas le droit de jouer... Un petit verre de vin rouge, et on part chercher un resto qui accepte 25 geeks bruyants pour terminer la soirée.

Devoxx c'est aussi - beaucoup - surtout ? - des rencontres, et des liens à construire dans notre communauté. Nicolas Martignole citait le jour ou il s'est trouvé à manger un morceau à Anvers à côté d'un gars, responsable des APIs chez Google (Patrick Chanezon) ... une rencontre inattendue, et une soirée inoubliable. Ce genre de rencontres, on en a tous à raconter, avec parfois des demandes en mariage.

Day 3 


La journée commence à nouveau par les keynotes. La première, par Monsieur X d'IBM (qui préfère rester anonyme) a été un carnage. Slideware indigeste et un discours sans intérêt. De toute évidence préparée sans réaliser le public à qui elle s'adressait, les twitts se sont multipliés pendant ces 30 minutes de souffrance, écroulant complètement le réseau 3G dans le secteur, et obligeant l'équipe à annoncer une panne du twittwall pour ne pas mettre le speaker en mauvaise posture devant des messages de plus en plus virulents.

Patrick Chanezon prend alors la parole (après avoir furtivement affiché son client twitter, petit cachotier) et nous fait respirer un grand bol d'air frais et salvateur avec une présentation, à nouveau dans l'esprit "fier d'être développeur", mais cette fois mise en scène sur la trame du film the Artist, pour aboutir sur la révolution Cloud en marche qui redonne le pouvoir aux développeurs.


-> http://www.slideshare.net/chanezon/devoxx-france-2012-portrait-du-developeur-en-the-artist

Enfin, Neal Ford a pris la parole pour nous expliquer en quoi les abstractions que nous empilons en couches successives peuvent biaiser voir condamner notre travail, comme par exemple l'icône "disquette" pour la sauvegarde sous Word 2010, ou ... Maven (sic). Une maîtrise complète de l'art de la présentation et de Keynote fait de ce show un régal pour les yeux

Maven, rigide et dogmatique ? Ca se saurait !

J'ai ensuite rejoint le temps d'une itération l'équipe de CodeStory, dont la salle n'a pas désemplie pendant deux jours, et qui a donné à tous ceux qui sont passés une redoutable leçon de bonnes pratiques de développement et d'agilité, du genre qui va faire mal lundi en retournant au boulot. Si nous avions affaire à la crème du développeur, sélectionnée par les étapes successives du challenge CodeStory, il y avait là une source d'inspiration démesurée sur tout ce qu'on peut mettre en place pour améliorer nos développements au quotidien. Sortant de cette session, il me semble INDISPENSABLE qu'on mette en place un coding dojo à Rennes, si l'aventure vous tente ...



Seul quickie auquel j'ai assisté, la session d'Arquilian d'Alexis Hassler était, optimisée pour placer deux démos dans ce format difficile de 15 minutes, et m'a conforté dans mon choix de l'inviter au BreihzJug le 14 mai ! Je n'en dirait donc pas plus ...

Google présentait ensuite Guava, au cours d'une session d'introduction bien rodée et rythmée, qui m'a parmi de découvrir cet outil qui vient compenser de nombreux manques du JDK. A inclure d'urgence dans votre boite à outil.

Didier Girard et Ludovic Champenois présentaient Google AppEngine, réutilisant l'application développée en codeLab mardi. GAE est un conteneur de Servlet adapté spécifiquement au contexte Cloud, et ne faisant aucun compromis. Il fournit de nombreuses API certes propriétaires, mais optimisées pour un usage dans ce contexte et qui permettent de développer des application performantes et complètement scalable.

Alors que j'ai lancé un script JMeter bourrin sur l'appli pendant la session, le pic de charge montré en live était en effet parfaitement absorbé par l'application. Après ce test pirate, Ludo risque de recevoir une facture ... de quelques cents, car le cloud c'est aussi une réduction drastique des coûts.

Si la polémique sur le changement de tarif à fait du bruit dans la blogosphère, l'attrait pour la plateforme n'a pas faiblit. Une architecture correctement pensée pour limiter les accès au storage permet de rester dans des coûts ridicules : le coût d'exploitation de l'appli "A bon entendeur"  de Didier, c'est deux cafés par jour !

-> slides
info : Didier sera présent au BreizhCamp pour rejouer le codeLab et co-animer avec Guillaume Laforge et votre serviteur une université Cloud

Après cette dernière session (pour ce qui me concerne), j'ai eu le plaisir de constater que mon score sur le stand Infine n'avait pas été battu et je peux donc rédiger ce blog depuis un Macbook Air flambant neuf ;)

Bravo en tout cas à l'équipe de DevoxxFrance pour un dévouement et un engagement énorme, qui remonte bien au delà de cette seule semaine à être sur le pied de guerre chaque jour à 6h, et qui a su garder le sourire tout le long de la conférence, gérant les inévitables grains de sables dans les rouages dont les participants n'ont pas imaginé l'existence. Une petite pensée pour leurs familles qu'ils ont embarquées dans cette folle aventure.


Merci à tous, et après un succès de cette ampleur, rendez-vous en 2013 !

Les photos sont extraites des albums de Pierre-Antoine, Arnaud et Claude


22 avril 2012

Jenkins User Conference Paris

La semaine a été marquée par le succès de Devoxx France, mais je tiens tout de même à revenir sur la Jenkins User Conference qui avait lieu mardi, et qui a attiré un peu plus de 100 personnes.

Cette journée, focalisée sur Jenkins, était l'occasion de découvrir des pratiques avancées, de nouveaux plugins, ou tout simplement de rencontrer les principaux committers du projet.


Pour ma part, je présentais avec Mathieu Ancelin le plugin build-flow - dont je vous reparlerais prochainement sur ce blog - en mode live démo, et j'apportais ma contribution au workshop animé par Stephen Connolly - ici en train de nous dire les trois seules phrases qu'il connait en Français, dont "la souris est sous la table" - l'équivalent pour nous de "Where is Bryan ? He's in the kitchen".



Pour la petite histoire, la couleur du T-Shirt officiel était bleue, mais mes collègues me connaissant bien m'en ont commandé un orange, + un second violet (qui est ma seconde couleur préférée) - je suis donc en possession de deux collectors ;)

De nombreux contributeurs (Grégory Boissinot, Henri Gomez, Arnaud Héritier, Olivier Lamy, ...) présentaient un sujet, avec un programme riche dont vous pourrez retrouver le contenu en ligne prochainement (laissez nous le temps de faire le montage :P)

A l'exception du talk (très intéressant) sur le couplage Tycho + Jenkins + Sonar + JaCoCo pour les développements Eclipse RCP, qui a subi des soucis de Wifi, heureusement sans impacter le contenu du talk, tout s'est déroulé sans accroc et la conférence a été un grand succès. De nombreux échanges très enrichissants et de délicieux petits fours on conclus cette belle journée.

Prochaine étape du JUC-Tour : New York

Si vous voulez organiser près de chez vous un "Jenkins User Meeting" en soirée dans un JUG ou équivalent, contactez-moi.

Jetez un oeil à l'album photo de Pierre-Antoine Grégoire , et ou explorer la timeline twitter #jenkinsconf pour vous faire une idée de ce que vous avez manqué ;)