Les outils cachés du JDK

Coup de coeur, Les conférences

angeliqueMix-IT commence ce jeudi. Parmi les filles qui vont animer des conférences ou ateliers, Angélique Henry va parler des outils trop peu connus du JDK comme jstack ou jstat permettant de diagnostiquer assez rapidement les problèmes de production. Allons à sa rencontre lui poser quelques questions…

Agnès: Peux-tu te présenter ?
Angélique: Je travaille chez Worldline depuis que je suis sortie de l’école, ce qui fait un peu plus de 9 ans maintenant. Je n’ai quasiment travaillé que sur des projets où on faisait du développement et de la production en même temps, du coup pour moi les deux sont indissociables.

Je suis un peu dispersée et j’ai l’impression de ne rentrer dans aucunes cases, donc je préfère me présenter selon mes affinités:
– j’aime développer, aussi bien en java qu’en perl, javascript ou un autre language.
– j’aime la production, et surtout amener les projets à une production sans douleur : où l’application supporte des petites contrariétés sans broncher, où les reprises sont automatisées, les livraisons passent comme une lettre à la poste, et le monitoring est suffisament déployé. Au final une production où il n’y a rien a faire 🙂
– j’aime que les développeurs soient dans des bonnes conditions de travail: suffisament de tests en tout genre pour pouvoir faire du refactor sans peur, des process d’installation de projets les plus courts possibles et des process de livraisons rodés avec le minimum d’interventions humaines.
– je suis très curieuse, et j’aime tester des choses, surtout si je pense que j’y connais rien du tout pour voir jusqu’où j’arrive à me débrouiller.
– j’aime bien utliser les outils à disposition dans tous les sens, je suis totalement en phase avec « on fait ce qu’on peut avec ce qu’on a », et je rajouterais que ce n’est pas parcequ’on n’a pas l’outil idéal qu’on peut pas faire ce qu’on veut, ça demande juste un peu plus d’imagination.

Après un rude combat pour éviter la gestion de projet, combat bien connu des développeurs, j’ai réussi à obtenir un poste technique transverse depuis début mars. Mon rôle principal est d’aider les équipes projets et les développeurs un peu plus jeunes sur tout les aspects d’un projet, du développement à la production. Je me mets en immersion dans les équipes et j’essaie d’apporter des solutions techniques à leurs problématiques. Mon second rôle, que je prend très à coeur, est d’être impliquée dans les choix du management et mon point de vue est pris en compte dans les décisions. Et pour finir je suis aussi en charge d’animer et de faire progresser les collaborateurs techniques en m’occupant un jour par semaine d’une mini cellule d’innovation: les collaborateurs qui sont sur des projets « classiques » et qui ont envie de tester des choses peuvent venir me voir pour obtenir un jour par semaine dédié à l’innovation sur une durée déterminée.

Agnès: Tu vas parler des outils du JDK. Lesquels exactement ?
Angélique: Il y en a trois: jstack qui permet de faire un dump des threads en cours, jstat qui permet de voir l’évolution du garbage collector (GC) et de l’occupation mémoire et jmap qui permet de se balader dans la pile mémoire java. Ce sont des outils qui sont apparus sauf erreur de ma part avec java 5, et on en est à java 8, or ces outils ne sont toujours pas très bien connus des développeurs/exploitants java.

Agnès: Quelle est ton expérience sur ces outils? Les utilises-tu quotidiennement ?
Angélique: Ce sont des outils que j’ai découvert tardivement. Avec le recul, ces outils m’auraient vraiment facilité la compréhension de l’origine des problèmes sur les applications java lors de tests de performances à rallonge où sur des problèmes de production. J’ai commencé à progresser en analyse de mémoire Java pendant ma période Android où les OOM (Out Of Memory) sont plus que fréquents et fatals car ils entrainent le crash de l’application. Ensuite j’ai pu travailler sur un projet très grand public, très complexe avec beaucoup de données et beaucoup d’utilisateurs et où la moindre fuite mémoire ou blocage de thread est à impact direct et immédiat: jstat et jstack ont été mes meilleurs amis. Ils ont de gros avantages: ils ne nécessitent aucune modification de code java, et sont utilisables en ligne de commande via ssh sur les machines de production. Maintenant, comme je fait partie des rares personnes techniques qui ont un peu d’éxpérience et vu mon nouveau poste, je suis souvent appelée en renfort sur les problèmes de production java, donc j’utilise ces outils très fréquemment.

Agnès: Utilises-tu d’autres outils que ceux du JDK pour t’aider à diagnostiquer assez rapidement les problèmes de production ?
Angélique: Les outils les plus simples sont souvent les plus efficaces: les logs apache/nginx avec un petit awk servent a répondre à un nombre incroyable de questions: quelles sont les pages les plus consultées, les plus longues à être servies par le tomcat, avec le plus d’erreurs 500, depuis quand, depuis quelles IP, etc. Les logs tomcat sont aussi importants, par contre ils sont souvent difficilement utilisables depuis que les développeurs utilisent des debuggers sur leurs IDE: il n’y a plus aucun log en info ou warn pour comprendre le comportement de l’application, juste des stacktraces qui sont la plupart du temps inutilisables puisque sans contexte. J’utilise aussi les slow query de mysql: il y a très souvent des requêtes un peu tarabiscotées crées par les petits lutins cachés dans nos chers frameworks : hibernate, jpa, spring-data, etc : en général soit il manque des indexs, soit les requêtes sont inutilement complexes. Il y a aussi de simples services REST qui peuvent faciliter la production. Par exemple un service /ping qui teste si le serveur applicatif est up, un /ping/db qui teste si la base de données est ok, un /ping/interco1 qui teste l’interconnexion avec tel ou tel service, etc. C’est vraiment pas très compliqué à mettre en place sur les architectures projet moderne et c’est un gain de temps réel en diagnostic.

Dernièrement je me suis initiée à ELK (Elasticsearch Logtash Kibana) et j’ai pu faire des beaux dashboards de monitoring. Le monitoring est vraiment un point crutial pour la production, avec un historique suffisant ça permet en un coup d’oeil de voir si des choses ont dérapé depuis la dernière mise en production.

Agnès: Tu as rejoins les Duchesses il y a un an, l’équipe lyonnaise… Qu’est-ce qui t’a motivé à rejoindre le groupe et qu’est-ce que tu as envie d’y faire par la suite ?
Angélique: En fait je ne connaissais pas du tout les Duchesses. Etant maman, je préfère retrouver ma petite famille le soir, et du coup je ne vais jamais aux évènements en soirée tels que les User Groups (JUG, AUG, etc..). Par contre j’ai commencé à aller voir des conférences au devoxx et à mix-it. J’ai découvert les duchesses au BOF du devoxx de l’an dernier. Heureusement que j’ai un ami qui a mis les pieds dans le plat en me disant « mais tu fais pas partie des Duchesses, toi ? » pour que je me dise « tiens c’est quoi ce truc, je vais aller voir le BOF ». Et là ça a vraiment fait echo à un sentiment croissant chez moi : il y a des jours où je me sens seule. Oui il y a des femmes autour de moi, oui il y a des personnes techniques mais je ne rencontre jamais des personnes qui sont les deux à la fois :). Et là miracle, avec les Duchesses je rencontre enfin des femmes qui aiment l’informatique !
Pour l’instant je n’ai pas envie d’y faire plus que ce qu’on fait actuellement : être au courant des évènements (call for paper, code week…etc), se faire un resto de temps en temps, se retrouver sur des évènements et aider et motiver celles qui ont envie de se lancer pour faire des conférences.

Agnès: Animes-tu des conférences ou ateliers depuis longtemps? Est-ce que c’est dur pour toi de te lancer dans l’exercice ?
Angélique: J’ai commencé progressivement par des mini présentations à mon équipe, puis à plus de personnes en interne de Worldline. Ensuite je me suis lancée dans une conférence de 20 minutes en anglais lors d’un évènement annuel de conférences toujours interne de Worldline. En rejoignant les Duchesses, ça m’a pas mal motivée à faire des choses hors Worldline. J’ai fait l’atelier d’initiation à Android lors de la code week de cette année bien aidée des Duchesses Lyonnaises et du Lyon Android User Group. Les retours de cet atelier ont été ultra positifs et ça m’a mise en confiance, du coup je me suis motivée à proposer quelque chose à mix-it: c’est pratique car sur place, en journée et j’ai beaucoup aimé y participer les années ou j’y suis allée en simple spectatrice.

C’est quand même pas facile de se lancer. J’ai fait pas mal de scène, mais toujours pour m’amuser: j’ai été dans des clubs de théatre, de cirque ou de danse et en ce moment je joue de la basse dans un groupe de musique où on se produit une à trois fois par an. Par contre animer une conférence ou un atelier, c’est se mettre sur le devant de la scène dans le cadre professionnel et ça change tout: c’est plus pour rigoler, ce sont mes compétences techniques et mon métier qui vont être jugés. Du coup j’ai envie que tout soit parfait et j’y passe beaucoup de temps. Je me demande comment font les personnes qui font des conférences un peu tout le temps et un peu partout, entre les déplacemement et les temps de préparation, je me dis que je n’aimerais pas faire ça toute l’année, mon travail au quotidien me plait trop pour que je le laisse de côté.

Agnès: Qu’est-ce que tu pourrais dire à celles qui ont peur de se lancer pour les encourager ?
Angélique: Entourez-vous des bonnes personnes: j’ai beaucoup de mal à avoir de l’assurance, j’ai besoin d’avoir des retours sur plein de choses et de voir que je vais dans la bonne direction.

Beta testez au maximum: essayez de trouver des cobayes et des relecteurs qui vont vous permettre de voir les faiblesses de vos présentations, qui vont vous poser des questions auxquelles vous n’aurez pas du tout pensé et que vous aurez très certainement le jour J.

Allez-y progressivement, il y a des évènements comme les human talks, les JUGs ou les brown bag lunchs en entreprises qui permettent de commencer avec un public restreint et je pense moins exigeant que sur les conférences

Merci Angélique!
On te retrouve donc à Mix-it pour ton atelier!

Agnès CREPET est Duchess France Leader, et fait partie de l'équipe fondatrice et organisatrice de la conférence Mix-IT. Elle a été également Lyon JUG Leader pendant plusieurs années. Elle a co-fondé avec trois autres développeurs passionnés Ninja Squad, et habite aujourd'hui à Amsterdam, et est en charge de l'IT de Fairphone qui conçoit des smartphones modulables, réparables et éthiques. Suivez-là sur Twitter!

Commentaires

  • L’interview est super sympa et c’est marrant de voir qu’une autre personne « développe et maintient des applications en production depuis 2006 » J.
    Pour les personnes qui n’auront pas la chance de venir au Mix-IT, est ce qu’il serait possible d’avoir les slides de la présentation ou bien est ce la prez sera filmée ? 🙂

    Merci.

  • Angélique Henry dit :

    Maintenant que le mix-it est passé je peux te répondre: les sources du projet java (un war spring boot) est disponible sur mon github: https://github.com/AngeliqueH/webapp-mixit-2015

    Le tutorial utilisé pour l’atelier est un fichier html statique disponible dans la webapp du projet github: https://github.com/AngeliqueH/webapp-mixit-2015/tree/master/src/main/webapp/atelier_mixit

    Les slides sont très peu nombreux, disponibles aussi dans la webapp: https://github.com/AngeliqueH/webapp-mixit-2015/tree/master/src/main/webapp/slides

    J’avais préparé une VM xubuntu avec un tomcat, la jdk et eclipse mat, mais en mettant le war dans un tomcat sur un linux tu devrais pouvoir dérouler les exercices.

  • Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée.

    Nom*

    Email

    Website

    7 − 4 =

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

    En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

    Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

    Fermer