fabernovel loader

May 28, 2018 | 9 min de lecture

Dev

Devoxx 2018 : retour sur les conférences qui nous ont inspirés

Cette année nous étions nombreux à fouler les allées du Palais des Congrès pour participer à la 7ème édition de Devoxx France. Cet événement, qui ne cesse de croître, réunit les développeurs passionnés autour des sujets très variés : Web, sécurité, technologies, Cloud, organisation …

Les visiteurs ont pu découvrir sur notre stand un jeu concours, que nos équipes ont créé lors du dernier Hackday et gagner deux Super Nintendo Mini. Une fois le stand installé, il était temps d’assister aux conférences.

Les équipes techniques de FABERNOVEL TECHNOLOGIES ont pu profiter du programme riche et varié proposé par les différents speakers, dont un workshop et un BOF de Fabian, l’un de nos Technical Lead.

Dans cet article, nous allons vous résumer les points clés des talks auxquels nous avons pu assister et ce que vous avez manqué si vous n’étiez pas présent.

LE MERCREDI

Prometheus un outil pour les monitorer tous, par Ivan Beauvais

Dans son talk Ivan Beauvais nous a partagé son expérience sur le monitoring d’applications web avec Prometheus.

Il a montré comment en utilisant le DSL officiel pour Java nous pouvons facilement exposer des métriques métier avec très peu de code.

Il nous a aussi montré brièvement comment, à partir de quelques exportateurs, nous pouvons tout centraliser dans Grafana et gérer les alertes sur Slack. Chez FABERNOVEL TECHNOLOGIES nous avons également créé des exportateurs maison notamment pour Kafka.

Dans la globalité un très bon parcours de l’outil !

Introduction to Data Streaming, par Clement Escoffier et Galder Zamarreño

Durant cette université, Clement Escoffier et Galder Zamarreño nous ont introduit à la notion de réactivité dans son sens le plus large. Ils ont défini certains principes comme μservices et ont introduit des outils comme Spark, Openshift avec des démonstrations de spark streaming, et Vert.x

Nous avons ensuite approfondi la notion de streaming, en nous appuyant sur l’exemple de la mise en place d’un service d’analyse des données du transport ferroviaire Suisse.

Cette université est un bon début pour s’initier au développement de systèmes réactifs et au data streaming. Visant un public large et non d’experts elle débute en abordant ces deux sujets en surface, quoique devenant plus technique sur la fin.

Pour consulter le code c’est par ici.

#serverless – 🛳 mettez-le en œuvre dans votre entreprise et arrivez à bon port, par Ludovic Piot, Laurent Grangeau, Adrien Blind et Laurent Doguin

Cette université proposait plusieurs points de vue sur la notion de serverless, ses avantages et ses inconvénients. Chaque point de vue était défendu par une société différente qui a des stratégies et besoins différents de toutes les autres.

Les présentations étaient accessibles aux développeurs, cependant plus tournées vers les contraintes d’OPS et de mise en production. Elle était également pragmatique avec la proposition de solutions intermédiaires.

LE JEUDI

Le Smart Building : par où commencer ? par Olivier Sellès

Cette keynote était pour nous la plus intéressante de la matinée. Nous vous la recommandons vivement.

Nous avons tendance à imaginer l’informatique comme étant des applications sur ordinateur ou mobile. Mais c’est aujourd’hui bien plus que ça et peut impacter en bien ou en mal notre quotidien. Avec le smart building, nous pouvons voir une disruption dans la gestion des bâtiments présents et futurs, bâtiments dans lesquels nous vivons et travaillons au quotidien.

Génération de code, moteur Catalyst : Démystifions Apache Spark, par Marc Alonso et Adrien Besnard de chez Octo

Après un bref rappel de ce qu’est Spark et du vocabulaire qu’on rencontre en l’utilisant (RDD, DataFrame, …), Marc et Adrien ont introduit le projet Tungsten, qui améliore les performances en termes de CPU et aboutit à la génération de code à la volée.

Ils ont ainsi reproduit les différentes étapes, pour une requête donnée, permettant au moteur d’optimisation Catalyst de faire son travail.

Pour ce faire, il s’agit de :

  1. Parser la requête: la tokenizer de manière à former un arbre syntaxique et ainsi décrire les différentes étapes sous-jacentes à la requête.
  2. Planifier et exécuter cette requête via un plan d’exécution logique (les opérations ensemblistes nécessaires à l’exécution de la requête) puis physique (la réalisation concrète des opérations ensemblistes): des optimisations seront réalisées sur chacun de ces plans.
  3. Générer dynamiquement les opérateurs qui permettent d’optimiser certaines étapes en regroupant les plans d’exécution physiques, limitant alors les étapes et appels virtuels.

Ces opérateurs fonctionnent uniquement avec les DataFrames et sont compliqués à debugger. L’équipe de Catalyst en a écrit un nombre important ce qui permet un gain important de performance dans les nouvelles versions de Spark.

Cette présentation est basée sur une série d’articles disponibles sur leur blog et sur un papier qui propose la génération de code pour limiter les impacts CPU du plan d’exécution.

…but why are we then still writing JavaScript? par Wolfgang Goedel

Derrière ce titre accrocheur se trouve une réflexion sur l’état actuel du Javascript et les risques d’un langage de haut niveau (un moyen pour capturer les patterns, la composition et l’abstraction).

Nous discutons du coût d’une abstraction. Puis nous comparons du code fonctionnel (une abstraction), que beaucoup de développeurs ont aujourd’hui du mal à lire, avec un texte juridique, qui même écrit dans le langage que nous connaissons est compliqué à déchiffrer: il s’agit uniquement d’un jargon qu’il est nécessaire d’apprendre pour rentrer dans un domaine.

Wolfgang conclut que bientôt la programmation fonctionnelle deviendra commune et des mots comme “map”, “fold” ou “flatMap” rentreront dans le langage courant des développeurs.

DDD & Event Sourcing à la rescousse pour implémenter la RGPD ? par Guillaume Lours et Jérôme Avoustin

La RGPD, une question épineuse aujourd’hui. Dans ce talk, Guillaume Lours et Jérôme Avoustin nous présentent des alternatives pour y répondre avec des pratiques connues DDD et Event Sourcing.

Ils ont passé beaucoup de temps à présenter les principales règles du RGPD qui impactent nos développements. Ensuite, ils ont abordé la façon dont ils l’ont intégré dans un exemple d’application qu’ils ont présenté à un salon. Bien que l’ensemble de la présentation doit être replacée dans son contexte, ils proposent une solution qui ouvre des pistes de réflexion.

Le sujet des données personnelles dans un Event Store n’a pas été abordé dans la présentation, c’est par une unique question à la fin que nous avons pu en discuter rapidement: cela doit être évité autant que possible, ce qui demande d’utiliser de l’Event Sourcing en combinaison avec d’autres méthodes de stockage, ou via l’utilisation d’une clef de chiffrement qui pourrait être “oubliée” lorsqu’un utilisateur demande une suppression de ses données.

Le Web décentralisé, par Antoine Cailly

Une présentation sur la culture du web décentralisé où sont abordés plusieurs nouveaux protocoles d’échange comme IPFS, Dat qui utilisent un système P2P. Le web décentralisé permet de sortir d’un modèle avec un unique point d’échec, mais aussi de contrôle, qui serait le couple Google/Facebook.

Antoine nous a expliqué le fonctionnement à haut niveau de mécanismes comme DHT, Merkle-trees ou CRDT et fait une démonstration de ce qu’il est possible de faire aujourd’hui avec un twitter décentralisé sur un navigateur utilisant le protocole Dat, Beaker.

Twitter’s quest for a wholly Graal runtime, par Christian Thalinger

Christian travaille sur la JVM depuis plus de 13 ans, et plus précisément sur la compilation Just In Time.

Il travaille maintenant chez Twitter et nous a expliqué les modifications qu’il a opéré au niveau de la JVM pour améliorer les performances CPU des applications chez Twitter (92% Scala, le reste en Java natif).

Il parle notamment de son implication dans le projet Graal qui a amené une optimisation CPU de l’ordre de 10% permettant alors une économie impressionnante en puissance machine demandée pour supporter la charge des différents services chez Twitter.

Le lendemain, Christian a fait une deuxième talk sur le sujet: “Graal: How to use the new JVM JIT compiler in real life”. Il explique en détails l’installation et les impacts en terme de performance, bref, comment utiliser Graal dès aujourd’hui sur un vrai projet.

LE VENDREDI

Quand je serai grand je monterai une équipe full remote ! par Yves Brissaud (FPE)

Yves Brissaud, tech Leader chez Squarescale, nous propose son retour d’expérience sur la mise en place d’une équipe en télétravail et ceci dès la création de l’entreprise. Chez eux, il n’y a pas de bureau, donc toute l’équipe est en full remote et distribuée, les membres sont répartis sur plusieurs continents avec des décalages horaires.

Durant 45 minutes, le conférencier réalise un tour complet et concret du télétravail, avec les éléments qui fonctionnent bien, les difficultés rencontrées et les solutions mises en place. Il nous présente comment son équipe est passée de trois à une dizaine de personnes et quels impacts cela a eu sur leur méthode de travail. Il aborde également les outils utilisés avec leurs avantages et inconvénients.

Sans surprise, Yves Brissaud conclut sa conférence en recommandant le télétravail et nous, qui le pratiquons depuis des années chez FABERNOVEL TECHNOLOGIES, ne pouvons qu’être d’accord avec lui !

A Brief, Opinionated History of the API, par Josh Bloch

En tant que développeurs, nous utilisons des APIs tous les jours – mais nous sommes nous demandé qui a inventé le concept même d’API ? Josh, en tous cas, a dû se poser la question lorsqu’il a été consulté par le juge chargé du jugement en première instance de l’affaire Oracle vs. Google, sur le copyright des APIs Java.

Le résultat est d’abord un voyage dans le temps, jusqu’au travaux de Maurice Wilkes sur l’ordinateur EDSAC (opérationnel en 1949 !), ainsi qu’une réflexion sur la définition même de ce qu’est une API.

Surtout, Josh en a profité pour conclure en rappelant l’importance des APIs dans toutes l’industrie logicielle, et surtout de la possibilité de les ré-implémenter indépendamment, une pratique qui paraissait la norme jusqu’à présent… Mais qui pourrait être menacée aux Etats-Unis par les rebondissements légaux d’Oracle vs. Google.

Graal: How to use the new JVM JIT compiler in real life, par Christian Thalinger

Après nous avoir expliqué la veille les avantages de Graal, il était temps de répondre à la question suivante : comment pouvons nous tester Graal pour nos applications dès maintenant ? Christian y a répondu par une démo “sans filet” – en partant du provisionning de la machine virtuelle sans même un JDK installé, jusqu’aux benchmarks comparatifs. Bonne nouvelle : c’est très facile à partir du JDK 10 !

Cette démo était surtout l’occasion de mettre en avant les spécificités amenées par l’écriture de Graal en Java (plutôt qu’en C++ pour le compilateur C2 qu’il remplace) : occupation mémoire à prendre en compte directement dans le heap space Java plutôt que dans le heap space natif, compilation du compilateur lui même durant les premières secondes d’exécution du programme… Mais nous avons pu voir un gain de performance allant jusqu’à dépasser 20 % dans le cas extrême (sur un benchmark bien choisi) !

Cet article a été rédigé avec la participation de toute l’équipe de FABERNOVEL TECHNOLOGIES qui a participé à Devoxx 2018 : Ali, David, Denis, Egor, Charlotte, Youssef, Guillaume, Thomas, Fabian, Gaëtan, Fabien, Nadiya.

Ces sujets vous intéressent ?

Rejoignez-nous !
logo business unit

FABERNOVEL TECHNOLOGIES

150 talents pour répondre aux défis technologiques de la transformation digitale.

à lire