Retour sur Devoxx Paris 2016
Avec près de 2500 participants et plus de 200 présentations, Devoxx est un rendez-vous incontournable pour les développeurs. Je vous propose de retrouver ici un rapide compte-rendu des sujets qui m’ont le plus intéressé.
Feign(ant) in action par Igor Laborie
Ce Tools-in-Action (démo de live-coding de 30 minutes) visait à présenter Feign, un client http (très) léger et très simple d’utilisation. C’est donc un client permettant de faire des appels REST simplifié au maximum… et il faut dire que le pari est réussi.
Grâce aux annotations, le code est extrêmement lisible. De nombreux encodeurs/décodeurs sont disponibles pour manipuler différentes sources de données (json, xml, …). Il est aussi possible d’écrire le sien. Bref, vous l’aurez compris, si vous êtes feign(ant) c’est l’outil parfait pour requêter une API REST.
Dropwizard : création de services REST « production-ready » en 25mn par Alexander Dejanovski
Dropwizard est le pendant de Feign mais côté serveur. En effet, c’est un framework léger pour développer des services REST. Il ne contient presque pas de dépendances (un seul jar) mais peut s’agrémenter de nombreux modules. Il est simple à prendre en main, contient plusieurs services de supervision, la gestion des timeouts (via Hystrix) et de nombreux autres fonctionnalités. Un régal!
Analyzing Images with Google’s Cloud Vision API par Sara Robinson
Ce quickie (15 minutes) visait à présenter l’API Google Vision et Google speech. Avec Vision, vous pouvez faire un apel REST (avec une image en pièce jointe) et l’API vous retourne une liste de mots-clés la décrivant, ainsi qu’une liste de lieu pouvant correspondre. Chaque prédiction étant associée à la pertinence du résultat renvoyé (un pourcentage).
Quand à Speech, il propose la même chose mais avec un fichier son. Le résultat étant le texte présent dans l’enregistrement sonore. Il s’agit donc d’un service REST faisant de la reconnaissance vocale, et le temps de réponse du service semble très rapide.
Débridez les performances de vos applications avec Chronicle Queue par Thierry Abaléa et Riad Maouchi
Ce Tools-in-Action présentait Chronicle Queue, une librairie de messaging en Java très performante. Mais attention: il s’agit de faire de la communication entre processus et non entre machine distantes. La contrainte étant donc que les processus vont tourner sur la même machine, en local. Du coup, on arrive à des latences de l’ordre de la microseconde !
Pour ce faire, Chronicle va se baser sur des fichiers en Memory Map File, afin d’obtenir d’excellentes performances sur les opérations de lecture/écriture pour de gros volumes de données.
Outre les performances, on peut noter deux points intéressants: l’API est désignée pour produire moins d’une Garbage Collection par jour (!). Et l’on peut utiliser des Locks d’affinité. C’est à dire forcer un Thread à s’éxecuter toujours sur le même coeur CPU (ce qui permet d’éviter les switch de contextes particulièrement coûteux lorsque l’on vise de la faible latence).
Performance: Java vous déclare sa flamme par Vincent Beretti et Nicolas Peters
FlameGraph est un outil développé par Brendan Gregg, l’expert performance de Netflix. Il s’agit d’un agent Java (avec un overhead inférieur à 3%) et qui, avec les scripts associés, va permettre de générer un SVG de l’utilisation du CPU de l’application. Le graph, bien qu’assez repoussant au premier abord, s’avère d’une grande facilité à la lecture et à l’analyse. Je l’ai même trouvé plus pratique que les ténors que sont YourKitProfiler et JProfiler.
L’autre point qui mérite d’être noté, c’est que FlameGraph permet de mesurer le temps passé dans la contention (les synchronized par exemple). Ce qui permet de détecter des problèmes de performances ardus.
Rawr. Unified time series expressions with Timelion par Rashid Khan
Timelion est un plugin pour Kibana (ELK) permettant de traiter des séries temporelles. Il introduit des fonctions et une syntaxe afin de créer des dashboard ayant pour base des Time Series.
L’outil est simple, intuitif et très puissant. Si vous connaissez la stack ELK et que vous souhaitez traitez des données temporelles, alors c’est l’outil qu’il vous faut.
Timelion : la composante chronologique de Kibana
Terracotta Off-Heap pour les nuls par Ludovic Orban
Terracotta Off-Heap est une librairie permettant de créer des Maps stockées hors de la heap. C’est à dire qu’elles ne sont pas gérées par le Garbage Collector. On peut donc l’utiliser pour faire tourner des JVM de plusieurs To de mémoire sans subir les désagréments d’un Full GC.
Durant cette présentation, le speaker a présenté les principes de cette librairie puis live-codé plusieurs exemple pour montrer sa simplicité d’utilisation.
Crédit photo : Java User Group Belgium