Retour sur la première édition de bdx.io

Le 17 octobre 2014 s’est déroulé la première édition de la conférence bdx.io (Bordeaux Développement eXperience). Elle s’est déroulée à l’Enseirb MATMECA. 4 amphis, 30 conférences, 15 communautés l’annonce donne envie. Organiser une conférence de cette envergure n’est pas simple, surtout pour une première édition. Qu’en était-il ? Je vous propose de (re)vivre cette journée à travers les talks auxquels j’ai assisté. Si vous préférerez regarder vous-même les présentations c’est par ici.

9H00: Keynote d’ouverture Nicolas Martignole

Sur la scène arrive le responsable de l’organisation, Frederic Camblor. Il présente les différentes conférences qui se déroulent en France et espère qu’un jour, lors de l’une de ces conférence, un slide présentera les conférences françaises et que bdx.io sera mentionné :-).
Petite présentation du projet qui a débuté il y a un an. Le jour J 300 participants dont 27 étudiants, 43 talks, 42 speakers, 16 membres du jury pour le CFP, 16 réunions entre les organisateurs (soit une centaine de burgers ingérés :-)) et 1 graphiste. Sold-out pour cette première édition. De quoi être satisfait.
C’est au tour de Nicolas Martignole de monter sur la scène pour débuter la keynote. Le thème : le développeur AOC
Petite musique d’attente le temps que Nicolas s’étire :-). C’est une conférence particulière pour lui, il apprécie tout particulièrement Bordeaux. La suite de la keynote porte sur une amusante métaphore sur le code et le vin. C’est la première fois que je vois une présentation faisant un parallèle entre une salle machine et une cave à vin :-). Il soulève des questions intéressantes comme Peut-on écrire du code qui dure ? et parle du code legacy.
Sa dernière question : Alors on code ?

10H00 : Cloud First Didier Girard

Présentation sur l’intérêt du Cloud Computing avec de nombreux exemples tirés de projets réels. Les problématiques du Cloud sont abordées comme la confidentialité des données (toutes les données ne sont pas éligibles au Cloud mais le Cloud peut répondre à beaucoup de problématiques).
Didier nous indique qu’il utilise la plateforme de Cloud de Google depuis 2008. Il présente toutes les technologies de cette plateformes de 2003 jusqu’à 2008.
Les besoins et les usages changent. Les offres en termes de plateforme aussi. Les offres IAAS et PAAS tendent à être remplacés par des VM managées telles que Docker.
L’avenir est au Cloud personnel : netflix, minecraft (lié à une anecdote, il faudra assister à la présentation pour la connaître :-))
Petite démo en live montrant comment monter une VM en quelques secondes.
Pour finir, il indique que la tendance actuelle n’est plus de stocker puis analyser pour restituer mais de capter|traiter|stocker|analyser|restituer des données en temps réel. Nous ne travaillons plus sur les mêmes échelles.
Il faut créer notre futur !

11H00: Live Coding AngularJs + RestX Xavier Hanin et Elian Oriou

La stack choisie est conséquente mais plutôt classique de nos jours : maven, grunt, bower, angularJS, sockJS, heroku, yeoman, rabbitMQ, codeship, mongoDB avec le driver Jongo. L’application développée est une application affichant des bouteilles de vin. Elian présente la partie front avec angularJS et Xavier s’occupe de la partie serveur avec RestX. Le tout développé avec IntelliJ.
Tout les éléments utilisés lors de la présentation sont accessibles à l’adresse suivante http://restx.io/vinio.html.
Le live coding en lui-même ne m’a pas particulièrement impressionné même si les 2 speakers sont de bons développeurs. La partie RestX reste toujours aussi bluffante. Beaucoup de frameworks devraient s’inspirer de ce qui est mis en place dans celui-ci.
Le point qui m’a le plus intéressé est la partie « monitoring ». Cette joyeuse équipe a développé un petit outil baptisé RTDM (RealTime Development Monitoring). Cette application permet de suivre en temps réel l’état des tâches réalisées mais aussi les étapes de constructions et de déploiement de l’application.
En résumé, Elian ou Xavier push sur github qui averti codeship, celui-ci déclenche le build et déploie l’application sur Heroku. Codeship envoie des requêtes (notifications) à RTDM avant et après chaque phase afin de mettre à jour l’IHM de RTDM.
N’oublions pas la petite phrase que les speakers ont lancé afin de justifier une simplification sur le verbe HTTP employé pour une mise à jour de donnée lors d’un appel de service angularJS : Le client est roi 🙂

12H20: Quickie – Presentation de BdxCoin Jordan Bouëllat

Cette présentation a pour principal objectif de présenter l’histoire de Bitcoin et des cryptodonnées. Bitcoin a déjà 4 ans et valait à l’époque moins d’un euro. A l’heure où j’écris ces mots, le cours est à 283 euros et a atteint les 890 euros en 2013, ce qui montre sa grande volatilité.
Cette présentation mettait l’accent sur le meetup de la communauté BdxCoin qui contient plus de 60 membres.
« Le BdxCoin est un regroupement d’utilisateurs des différentes monnaies virtuelles telles que le Bitcoin, Litecoin et autre Dogecoin. Ce Meetup a pour but de réunir toutes les facettes de ce phénomène. Tous les seconds mercredi du mois nous partagerons autour du mining, trading et de l’utilisation commerciale de ces nouvelles monnaies. Nous essaierons de proposer chaque mois de nouveaux talks et un moment pour discuter autour d’un verre ! »

12H45: Quickie – Monitoring d’un compteur EDF avec Node.js Laurent Huet

Pour changer des habitudes, ce talk portait sur la création d’une application permettant de suivre sa consommation électrique en temps réel en se branchant à son compteur EDF.
La première étape consiste à créer un petit circuit électronique composé d’un optocoupleur et de 2 résistances. Il permettra de faire l’interface entre le GPIO du Raspberry PI et le compteur EDF.
« Il s’agit simplement de démoduler le signal sortant des bornes I1 et I2 du compteur via le petit circuit électronique. »
Le circuit est ensuite relié a la broche UART du GPIO du Raspberry Pi ce qui permet de récupérer les trames de données (50 par minute) du compteur EDF.
Une documentation est disponible sur les sorties de télé-information des appareils de comptage électroniques utilisés par ERDF.
Afin de décoder les trames téléinfo et de visualiser sa consommation électrique, Laurent a développé une petite application en node.js/angularJS/mongoDB disponible ici.

13H10: Quickie – De zéro à héros en 15 minutes avec Spring Boot Sébastien Deleuze

Sébastien présente le projet simplement : « Spring boot permet de faire du pair programming avec l’équipe Spring » :-).
Voici les principaux points abordés :

  • permet de commencer des projets rapidement avec des comportements par défaut
  • convention over configuration
  • des contrôleur par défaut pour visualiser ces beans, faire des dumps, vérifier ces mappings

Spring boot est à utiliser pour tout les nouveaux projets, petits ou grands.
Le temps de démarrage à tendance à être plus rapide qu’une application standard car Spring « a la main » sur le container Tomcat (embedded), ce qui lui permet de faire des optimisations sur le classpath scanning par exemple.

13
H35: Quickie – Shiro Games Nicolas Cannasse

Nicolas est le créateur de Haxe, un langage et un compilateur open source permettant de générer des applications dans de nombreux langages (Java, C++, Python, C#, PHP, Javascript).
Shiro Games est l’éditeur de nombreux Jeux vidéos dont Nicolas est le co-créateur. Il nous présente Evoland 2, un jeux reposant sur plusieurs gameplay et plusieurs styles graphiques (2D 8 bits, 2D 16 bits, 3D) différents. Tout a été développé avec Haxe. Le résultat est vraiment impressionnant.
Nicolas met l’accent sur le fait que, dans le domaine du jeux vidéo, la performance est un point très important qui est souvent mis de côté dans « nos grosses applications web ». Dans une entreprise, si l’application est lente, une solution bien souvent employée est de « gonfler » la machine, ce qui n’est pas une solution lorsqu’on développe des jeux vidéos.

14H00: Microservices avec Dart et Polymer Sébastien Deleuze

Ce tallk débute avec une présentation des microservices. Un des slides résume bien l’idée :
« Microservices are essentially fine grained SOA done right without vendor bullshit. »
Ensuite Sébastien nous parle d’OpenSnap qui est un SnapChat développé avec une stack moderne reposant sur une architecture contenant 2 microservices avec de l’asynchrone à tous les étages.
La stack utilisée :

  • client : Dart et Polymer
  • messaging : RabbitMQ, Stomp, SockJS
  • serveur : Dart et Redstone (framework REST en Dart)
  • persistance : MongoDB

Dart est bien mis en avant. Ce que j’ai retenu :

  • Dart est un standard ECMA
  • une application Dart (non transpilée) est environ deux fois plus rapide qu’une version JS
  • Dart est multi-plateformes, multi-navigateur, peut être utilisé dans un PAAS. Dart everywhere !

Sébastien nous présente les web components avec Polymer. Les composants abordés sont les imports HTML, la création de composant, les templates et le shadow DOM.
Polymer ne fourni pas de composants UI. Pour répondre à ce besoin, il faudra utiliser paper elements qui est une implémentation des recommandations Material Design de Google en Polymer.
Sébastien n’a pas utilisé Twitter Bootstrap car celui-ci s’intègre mal dans un environnement utilisant les web componenents (gestion du shadow DOM, gestion des éléments détachés du DOM).

15H00: Introduction à Clojure Jérome Moliere]

Jérome a 17 ans d’expérience en Java et a été illuminé depuis peu par la grace fonctionnelle.
La première partie de la présentation consiste à chercher le langage tournant sur une JVM qui répond au mieux à ces critères :

  • puissance et fonctionnalité
  • interaction avec Java
  • facilité de la maintenance du code écrit
  • adoption par la communauté
  • documentation

Sans vouloir vous spoiler, c’est Clojure qui sort vainqueur 🙂
En terme de fonctionnalité Jérome attend d’un langage fonctionnel qui repose sur une structure immutable et un REPL.
D’où son intérêt sur l’homoiconicité du langage. C’est à dire que son AST et sa syntaxe sont isomorphiques :-).
Clojure étant basé sur LISP, de nombreuses possibilités sont offertes par ce langage :

  • calcul scientifique
  • manipulation de données
  • intelligence artificielle
  • du web côté serveur (nombreux frameworks)
  • du web côté client avec CojureScript

Jérome met ensuite l’acent sur le fait que la communauté est réduite mais très active. De nombreux projets sont disponibles sur github dont immutant qu’il affectionne tout particulièrement.
Il nous présente ensuite tout l’outillage autour de Clojure :

  • clojar : un maven repository pour les projets Clojure
  • leiningen : un sbt
  • counterClok : plugin Eclipse

Terminons cette présentation par la conclusion de Jérome sur l’apprentissage de Clojure : Vous allez souffrir … Mais dieu que c’est bon …

16H10: Docker de Zéro à Héros Nicolas de Loof

Le premier constat de Nicolas est que nous développons sur un environnement, testons sur un autre et mettons en production sur un dernier.
Pour pallier à ce problème, une solution consisterait à utiliser des VM. L’inconvénient de ce type de solution est le coup engendré par l’émulation des composants géré par l’hyperviseur.
Une solution simple, serait donc de supprimer cette couche, c’est ce que permet Docker. En contrepartie, Docker impose de tourner sur une machine ayant un OS Linux. Pour les utilisateurs de Windows et Mac, il faudra utiliser boot2docker qui contient une distribution de Linux légère permettant de faire tourner Docker.
Nicolas met l’accent sur le fait que l’on peut faire tourner n’importe quoi sur Docker et qu’il s’intègre parfaitement dans une démarche Devops. Dans la démarche un build Docker remplacerait le traditionnel « mvn install ». Par contre, il y a une règle d’or à respecter : 1 process per container !
Cette règle implique beaucoup de changements en terme d’architecture. Elle met notamment en avant le bon vieil adage « diviser pour mieux régner« . L’utilisation du pattern ambassadeur est vivement encouragé.
Les architectures micro-services ont tous leurs sens dans ce contexte.
Il faut penser autrement : Un nouveau monde est à créer !

17H10: RUN|PROVISION|DEPLOY Your workstation in production Jean-Loïc Hervo

Le thème de cette présentation est le déploiement continu. Ce sujet est traité à travers trois problématiques :

  • l’environnement d’exécution
  • le provisioning
  • le déploiement

Pour le premier point, Jean-loïc nous présente le gestionnaire de VM Vagrant. Comme, pour docker, un fichier de description permet de centraliser le paramétrage permettant d’installer tout un environnement d’exécution.
Pour le provisioning, c’est l’outil Ansible qui est présenté. Jean-loïc nous indique qu’il a aussi essayé Pupp
et et Chef mais trouve Ansible plus simple. il souligne aussi le fait qu’Ansible est une très bonne solution pour permettre d’installer et de mettre à jour Docker.
Pour le déploiement, Capistrano est mis en avant. Cet outil est développé en Ruby mais peut être utilisé pour déployer des applications dans n’importe quel langage.
Jean-Loïc nous montre, via un terminal, un ensemble de commande permettant d’utiliser chacun de ces outils. Il souhaite nous montrer qu’avec cette pile logicielle, il est possible de mettre en place du 0 down time rolling updates.
Côté bonnes pratiques, il conseille à minima de respecter les 12 factors et de ne pas hésiter de tester ces outils sur Digital Ocean.

18H10 – L’after

Après cette journée bien remplie, nous nous sommes retrouvés autour d’un verre. Ambiance très sympathique avec les speakers, les organisateurs et les développeurs. Nous avons pu faire connaissance avec le fameux burger qui a été ingéré tant de fois par les organisateurs 🙂

Conclusion

Cette première édition a été une réussite, avec des présentations très variées permettant ainsi de mieux connaître les différentes associations de développeurs présentent dans la région Bordelaise. Le fait que nous ne soyons pas en surnombre, que toute les salles proposaient des pupitres pour les portables ainsi qu’un réseau wifi avec un bon débit a permis de rendre cette conférence très agréable.
Félicitations à l’équipe d’organisation (Frédéric CAMBLOR, Josselin AUGUSTE, Pierre BOUSQUE, Laurent FORET, Rémi GOYARD, Christophe PICOT, Damien VARRON), au jury du CFP (Josselin AUGUSTE, Millicent BILLETTE, Martine BORNERIE, Pierre BOUSQUIE, Eric COLLINET, Bastian GALLAY,Rémi GOYARD, Florian GUERIN, Christophe LABOUISSE, François MASUREL, Marie-Aline MILLOT, Sylvain PEIGNEY, Christophe PICOT, Damien VARRON) et « Vivement la seconde édition !« 

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

%d blogueurs aiment cette page :