Retour sur le Devoxx 2016

devoxx 2016

En 2016, le Devoxx FR du 20 au 22 avril, a encore une fois été une très belle édition.

Au Palais des congrès de la porte Maillot, le Devoxx est le rendez-vous de sociétés dynamiques et de développeurs créatifs et passionnés. Il y plane un esprit d’innovation, de découverte, de curiosité et d’échange.

Beaucoup de bonheur pendant 3 jours !

Cette année, les thèmes de conférences et d’ateliers portaient sur :

  • le DevOps,
  • les technologies du Big Data,
  • l’IoT et la mobilité,
  • la JVM et Java,
  • l’UX et les technologies Web,
  • le cloud et la scalabilité,
  • l’agilité et les tests
  • la sécurité

Plus de 300 conférences, des ateliers « Hand’s On », des « Tools In Action », des Hackergarten, des intervenants célèbres, un café philosophique, ainsi qu’une soirée d’échange avec les start-ups.

Nous n’avons évidemment pas pu tout voir, mais voici une synthèse de notre expérience, accompagnée de quelques pointeurs sur les conférences auxquelles nous avons pu assister.

VertX : passez de 0 à micro héros – Clément Escoffier – RedHat

Un atelier de 3 heures pour construire une architecture micro-services à l’aide de VertX.

La stack technique du Hand’s on inclut :

  • Java 8
  • Vertx 3 (développement asynchrone non bloquant)
  • Docker (simulation d’un système distribué)
  • Hazelcast (clustering)
  • HTML 5 / CSS / Javascript (fromt-end pour la construction d’un dashboard de gestion de stocks options)

6 modules sont intégrés via HTTP, le service de découverte VertX, le clustering Hazelcast et le bus de message de VertX (échange de messages).

VertX

VertX est un « Toolkit » permettant de construire des applications distribuées :

  • Réactives et proches de la gestion événementielle
  • Non bloquantes, en exploitant le pattern de la boucle de thread et des « acteurs » (similaire à Node JS)
  • Polyglottes (codées en Ruby, Php, Java, Javascript …)
  • S’exécutant sur la JVM

A la différence de Node JS, VertX peut directement exploiter les architectures multi-cœurs et gérer une « thread loop » par cœur de processeur.

Vous pouvez trouver le tutoriel complet disponible à cette adresse : http://vertx-lab.dynamis-technologies.com/

Event storming – comprendre le métier autrement

Au cours de cette session, 3 consultants indépendants lyonnais (Florent Pellet, Emilien Pecoul et Clément Bouillier) nous ont présenté la technique d’event storming, à savoir : comment monter un atelier d’échange entre ingénieurs et experts métier pour construire un modèle (commun) du métier que le système informatique adresse ?

Après avoir constitué 4 équipes, nous nous sommes lancés dans un atelier de modélisation sur un thème métier donné (Jeu de Mario, gestion des commandes …).

L’atelier a amené les équipes à explorer l’espace du problème (le domaine) en matérialisant les événements, les actions et les concepts, par des post-it de couleur.

Cette technique s’inscrit dans la démarche de Domain Driven Design dont les bases théoriques ont été posées par Eric Evans en 2004. Elle permet de rapidement mettre en évidence le contexte métier d’un projet.

Feign In Action – Igor Laborie

La session a démontré l’utilisation de Feign pour la réalisation d’un client de services REST. Feign est un client REST open-source de Netflix.

C’est effectivement un outil très commode de part la simplicité et le minimalisme du codage requis pour l’implémentation d’un client de service web REST.
Vous pouvez trouver des exemples d’utilisation sur Github – Feign : https://github.com/Netflix/feign.

« SQL on everything » avec Apache Drill

Tugdual Grall de MapR a présenté Apache Drill. T. Grall a démontré l’utilisation de Drill sur un cluster de serveurs et sur une installation locale.
Drill permet d’utiliser SQL pour effectuer des requêtes sur des sources de données diversifiées et notamment sur des bases de données distribuées du Big Data.

Un outil extrêmement commode et puissant, qui permet d’effectuer les jointures et les opérations d’agrégation du SQL sur des fichiers (CSV, Parquet, Avro) et des bases de données (Oracle, HBase, MySQL, Mongo DB …) de manière « transparente ».
Drill permet ainsi d’exploiter les compétences en SQL (sans nécessiter l’apprentissage d’un nouveau langage), mais aussi d’exploiter directement les outils adaptés au SQL (Excel, Qlik, reporting / analytics / BI …)
Drill permet de découvrir les schémas à la volée, sur des systèmes « sans schéma ».

Les Key Notes

Les Key Notes (jeudi et vendredi matin) portaient sur les thèmes suivants :

  • La médecine de demain (Jean Michel Billaut)
  • The impact of code in society (Joël Spolsky de Stack Overflow)
  • L’entreprenariat au féminin (Natacha Quester-Séméon)
  • De l’utopie de la fin du travail au digital labour (Sébastien Broca)
  • Algorithmes, les nouveaux pouvoirs du développeur (Fabrice Epelboin)
  • Le Service Public à l’heure d’internet (Matti Schneider)

Jean-Michel Billaut a présenté sa vision des transformations que la médecine va connaître au cours des 10 prochaines années : « La grande disruption ».

« Nous n’allons plus être malades. » « Nous allons passer d’un mode curatif à un mode prédictif. »

Le séquençage génétique va nous permettre l’interprétation de chacun de nos gênes.

Combiné aux technologies informatiques du big data et du deep learning, les données génétiques des hommes et des femmes vont permettre de développer une médecine de précision, mathématique.

La médecine traditionnelle qui existe depuis Hippocrate va être abandonnée, au profit d’une médecine basée sur les données.

Jean-Michel Billaut Devoxx

Retours de JM Billaut sur sa page Facebook : https://www.facebook.com/photo.php?fbid=10153413931186123.

Joel Spolsky, fondateur de Stack Overflow a présenté sa vision du rôle des développeurs dans la transformation de la société.

Natacha Quester-Séméon a attiré l’attention de l’audience sur la nécessité d’intégrer les femmes dans les projets et les organisations informatiques.

En citant Ada Lovelace (fille de Lord Byron et auteur du premier programme informatique) elle a présenté l’importance d’intégrer les femmes dans le débat citoyen et la transformation humaniste de la société. «L’égalité hommes-femmes est l’affaire de chacun».

La conférence de Fabrice Epelboin a porté sur l’impact fort qu’ont les développeurs sur la société. Les algorithmes façonnent notre avenir et ont plus d’impact que ceux qui votent les législations censées le réguler. Avec de grands pouvoirs, viennent de grandes responsabilités, et c’est désormais aux développeurs de créer et de renouveler les utopies que nos politiques sont incapables d’imaginer.

 

Fabrice Epelboin

Domain Driven Design

Cyril Martraire, fondateur du groupe « Software Craftmanship » de Paris a présenté sa vision du DDD.

Sa présentation était très intéressante, basée sur des exemples concrets.

Partant des constats suivants :

– Le salut ne vient pas forcément des frameworks et des technologies

– Le risque est dans le métier. La valeur est dans le métier.

L’approche DDD rend au métier une place centrale dans le développement logiciel.

Dashing 2 en 1, pour un dashboard étincelant

Un framework de construction de dashboard pour le monitoring des métriques Agiles d’un projet.

Un outil très productif et pertinent. A utiliser sur tous les projets « Agiles » ! http://dashing.io/

100% Stateless avec JWT (JSON Web Token)

Une présentation des JSON Web Token une approche stateless de gestion de la session utilisateur, facilement scalable.

Plus de stockage de session côté serveur. Plus de réplications de session sur le cluster.

Très couramment utilisé dans un contexte de mise en œuvre d’OAuth2 (mais pas seulement), Il s’agit d’une technique a retenir pour l’implémentation de l’authentification et de la gestion de la session des applications web à client Javascript / HTML5 / CSS.

IOT Streaming and Machine Learning to make Music !!

Entre 22h et 2h du matin, Fred Cecilia détourne les outils de machine learning et de big data pour faire de la musique (notamment en utilisant Wekinator – http://www.wekinator.org/).

Une présentation très sympathique agrémentée de musique live, jouée sur une Wii balance board et une Wii remote.

The State of Open Source Licensing

Conférence rafraichissante de Richard Fontana, qui a parlé de code sans en montrer une seule ligne 😉 Son propos portait sur les licences open-source : déclin de la GPL et des licences copyleft du début de l’open source ; POSS, logiciels post open-source qui n’ont pas de licence explicites car les développeurs s’en fichent …

Il a expliqué en quoi pas de licence explicite ne voulait pas du tout dire « sans droit », comme le pensent souvent à tord les développeurs. D’où les efforts de Github pour inciter les développeurs à choisir une licence pour leur code source (MIT, la plus permissive, de plus en plus souvent).

Sécurisez vos applications Web gratuitement en quelques minutes avec Let’s Encrypt

Une excellente session de « Tools In Action » présentée par Damien Lecan de SQLI Nantes. Damien a montré comment configurer SSL ou TLS gratuitement et simplement sur un Web HTTP en utilisant Let’s Encrypt – https://letsencrypt.org/.

Let’s Encrypt propose un client qui permet, automatiquement, de générer des certificats gratuits, de les utiliser pour configurer TLS dans Apache et de les renouveler quand ils arrivent à expiration !

Des contributions de la communauté existent dans d’autres langages ce qui permet de mettre en œuvre les mêmes principes dans une application Web NodeJS par exemple.

How to stop wasting your time and start performing useful code reviews ?

Une approche extrêmement pertinente présentée par Maria Khalusova de Jetbrains sur la façon d’organiser et de réaliser des revues de code :

  • Comment présenter les code reviews ?
  • Comment les organiser (le processus) ?
  • Comment en tirer le meilleur ?
  • Comment mener des revues de code sans déclencher une guerre ?
  • Comment écrire une code review ?
  • Comment recevoir un feedback ?

Beaucoup d’intelligence et de « sagesse » à introduire dans nos pratiques de projet – Présentation Devoxx Belgium : https://youtu.be/VRnMzMpSeag

Hibernate tu connais … mais en fait tu connais pas

Emmanuel Bernard de Red Hat a présenté Hibernate ORM 5 et ses dernières améliorations. La discussion a ensuite évolué vers Hibernate Search (full text sur Lucene et Elastic Search), OGM (pour la persistance polyglotte (Infinispan, Neo4J, Redis, Ehcache, Cassandra, CouchDB) sur des bases de données NoSQL), Validator.

Une présentation claire et très intéressante par un des principaux contributeurs d’Hibernate d’aujourd’hui.

HTTPS n’aura plus de secret pour vous

Grégory Paul a décrit le protocole HTTPS : HTTP encapsulé au sein de SSL ou de TLS dans ses détails.

Il a inscrit son discours dans une perspective : le passage à HTTPS de la quasi totalité des applications web est en marche et certaines API ne déjà fonctionnent plus sous HTTP.

Les diapositives de la présentation : https://paulgreg.me/https-slides/.

Devoxx4kids

Jigsaw par Rémi Forax

La révolution jigsaw (JSRF 376) est en marche. Pour le meilleur et peut-être le pire. Ce qui est sûr c’est qu’il y aura un avant et un après Jigsaw. Pour rappel, cette spécification désigne la modularisation de Java. Considéré comme un serpent de mer dans l’écosystème, dû au temps de gestation de cette spécification, Jigsaw n’a jamais été aussi avancé.

Il reste encore du travail, tout n’est pas encore finalisé. Mais les patterns de la modularisation sont bien là.

Dorénavant un projet java embarquera par défaut un module représentant le minimum vital. Il s’agit du module java.base. Un module java est un simple package contenant le fichier module-info.java. Le tiret étant normalement interdit dans le nommage des fichiers, cela rend ce fichier automatiquement identifiable. C’est le même principe que pour le package-info.java

L’une des difficultés auxquelles Java est confronté est la gestion des dépendances : le « Jar Hell ». Pour résumer, le classpath Java est lu séquentiellement, et cela pose souci.

Explication par l’exemple:

Imaginez avoir embarqué par erreur, plusieurs versions d’une même librairie (dieu sait que cela peut se produire facilement). Le classpath étant lu séquentiellement, cela peut potentiellement fonctionner si la librairie valide est la première à être chargée et provoquer une exception dans le cas contraire.

La modularisation Java 9 adresse ce problème. Elle permet également de réduire la taille des applications. En utilisant la notion de modules, les jars perdent mécaniquement du poids. Mais cela nécessite quelques efforts de refactoring.

Rémi Forax a présenté comment modulariser du code « legacy » (une opération que les projets devront certainement réaliser pour migrer vers Java 9). En partant d’une application type, R. Forax a montré comment mettre en évidence les dépendances à l’aide de jdeps (outil en ligne de commande). Puis R. Forax a isolé les modules et réduit leur surface d’exposition. Une fois cette étape franchie, il suffit de rassembler les briques et le tour est joué.

La démonstration faite en séance a permis de se projeter avec optimisme vers Java 9. Il reste néanmoins encore un peu de travail avant la livraison officielle, mais Java est sur le point de vivre une nouvelle révolution.

 

Auteurs : Eric Manuguerra Directeur Technique SQLI Suisse, Vincent Piard Expert Technique SQLI Nantes, et Damien Lecan Directeur Technique SQLI Nantes.

 

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription newsletter

Ne manquez plus nos derniers articles !