Du monitoring à la matière noire

J’ai participé au Breizhcamp cette année avec une présentation sur le monitoring.

Au passage merci aux organisateurs pour cette édition 2014. Les conférences sont toujours l’occasion de discussions passionnées sur les sujets les plus chaud du moment et puis c’est cool finalement de pouvoir assister à des conférences sans rien avoir à faire. Bravo aussi à l’initiative de faire un repas ouvert à tous le jeudi soir. On a ainsi pu partager les discussions passionnées des speaker diners avec d’autres passionnés.

Le but ce cette présentation est de revoir un peu nos idées reçues sur le monitoring. Même si le sujet n’est pas forcément très hype, Lean et Devops changent notre vision des mesures et les outils BigData viennent à notre secours.

La présentation se trouve .

Sébastien Brousse a twitté sur une partie de la présentation où je fais un détour par la matière noire. Je pense que le rapport avec le monitoring est peu évident sans les explications que j’ai donné de vive voix et le slide ne vous sera pas forcément d’une grande aide.

Pour ceux qui n’étaient là en attendant la vidéo voici les explications et même quelques infos supplémentaires.

Mais pourquoi la matière noire ?

Non, je n’ai pas changé de métier, la présentation parlait bien de monitoring.

Tout d’abord il y a peu de femmes dans l’informatique et donc dans les conférences, et c’était l’occasion d’avoir deux grandes dames avec nous, Margaret Burbidge et Vera Rubin, deux astrophysiciennes.

La première a imaginé le concept de matière noire, la seconde a poursuivi les travaux et mis au point une méthode pour prouver son existence.

Nous on est n’est pas des astrophysiciens, je vais rester à un niveau assez général. Pour les détails, sur la matière noire je vous renvoie à Wikipedia.

Des galaxies prises en excès de vitesse

Cette découverte a un rapport avec le monitoring parce que tout ça découle de problèmes de mesure.

Les astronomes avait constaté depuis longtemps que les galaxies spirales tournaient trop vite par rapport à la masse qu’elles sont supposées avoir d’après les mesures.

Plusieurs hypothèses ont été avancées pour expliquer cette bizarrerie en particulier l’imprécision des mesures.

Dans les années 1970, Margaret Burbidge a refait les mesures avec toute la précision des moyens de l’époque. Et là, ça ne collait toujours pas.

Plutôt que de remettre en cause les mesures, Margaret Burbidge a remis en cause le raisonnenment. Si la vitesse ne colle pas avec la masse, c’est que la masse n’est pas celle que l’on pense.

A cette époque on évalue la masse à partir des objets que l’on peut observer au téléscope, donc ceux qu’on peut voir parce qu’ils émettent de la lumière. Par conséquent, elle en a déduit qu’il y a dans les galaxies quelque chose qui a une masse mais que l’on ne voit pas parce que ça n’émet pas de lumière. C’est le concept de matière noire.

Vera Rubin qui travaillait avec Margaret Burbidge a apporté des éléments de preuve en mettant au point une méthode de calcul de la masse basée sur l’influence gravitationnelle de la galaxie sur son environnement, ce qu’on appelle la masse dynamique. A la différence de la masse lumineuse, la masse dynamique est compatible avec la vitesse de rotation des galaxie spirales. Et la masse dynamique basée directement sur l’effet de la masse n’a pas de raison d’être fausse, ce qui justifie qu’il y a un élément non visible ayant une masse.

Bon, d’accord mais moi je mesure des requêtes HTTP

Ok, nous on ne mesure pas des galaxies, mais même si on peut parfois regarder le serveur, enfin la boîte, finalement ce qu’on mesure est tout aussi peu visualisable.

Cette histoire montre que c’est important de mesurer de la bonne manière.

Si on mesure des effets indirects, on est dépendant d’un modèle. Ce modèle c’est l’idée qu’on se fait du fonctionnement du système et il peut être faux.

Dans un certain nombre de cas, cette mesure indirecte marche, par exemple la masse lumineuse convient pour les objets très lumineux comme les étoiles. Mais de temps en temps, ça ne marche pas.

Bien sûr, on n’a pas toujours la possibilité de mesurer l’effet direct, et de temps en temps on doit se baser sur une mesure indirecte parce que c’est plus abordable. Dans ce cas il faut rester vigilant, et savoir remettre en cause le modèle qu’on se fait du système.

Notre matière noire

Qu’est ce que c’est notre matière noire à nous les informaticiens ?

Ce sont les caches, les buffers, les load balancers, les heuristiques sur les files d’attente, les optimisations de JVM, tout un tas de mécanismes internes au système qui le rendent plus performant, mais qui font aussi que certaines de nos mesures ont un comportement erratique ou n’ont plus de sens dans certaines situations.

Au final, mesurer correctement les performances d’un système ou d’une application informatiques est une activité qui réserve toujours des surprises. On ne peut pas se contenter de poser des sondes au petit bonheur la chance sans comprendre ce qu’on fait. Il faut comprendre le système et comment il fonctionne pour le mesurer correctement.

On a un peu plus de chances, en cas de doute on peut souvent se reporter à la documentation (quoique à la réflexion pas toujours) ou demander au développeur (enfin des fois … ).

Mais par contre, un cache c’est beaucoup moins beau sur les photos qu’une galaxie spirale.

Les images proviennent toutes de la galerie d’images de la Nasa.

Publicités

Présentation Devops au Women Techmakers Nantes

Dans le cadre du Women Techmakers Event de ce mois de mars, le Women in Technology et le GDG de Nantes organisent une soirée spéciale.

Au programme, la présentation de Women in Technology, un retour sur l’entrepreneuriat par Anaïs Vivion, et une présentation plus technique sur DevOps que j’assurerai.

La présentation se trouve en ligne ici.

Devoxx4Kids au Breizhcamp

Devoxx4Kids était au Breizhcamp pour une session le 13 Juin et le support au BreizhKids le 15 Juin.

Tout d’abord si Devoxx4Kids ne vous dit rien, c’est un projet open source qui regroupe les initiatives pour donner aux enfants le goût de la programmation, de la robotique et de l’ingénierie en général. Vous pourrez trouver des liens vers la communauté en langue française à partir de cette page Devoxx4Kids.

Dans la session, Audrey Neveu et moi avons partagé nos pratiques avec celles de bretons tout aussi passionnés que nous.

Voici un résumé des discussions. N’hésitez pas à faire des retours sur vos expériences avec ces jeux.

L’article est en deux partie, les plus petits et la programmation visuelle dans celui ci et l’apprentissage des langages sera dans un seond article.

Les tout petits

Avant la maîtrise de la lecture même les outils de programmation visuelle sont difficile à utiliser. Quelques pistes sur des jeux plutôt orientés vers la l’enchaînement logique d’opérations.


Robozzle : c’est un jeu en ligne dont le but est de sortir le petit robot du labyrinthe en écrivant un programme fait de mouvements de déplacement (aller tout droit, tourner à gauche, etc). Ce programme est ensuite joué et il marche ou pas. L’interface est en anglais mais le jeu est essentiellement graphique.

DrTechniko est un jeu à base de cartes où l’enfant doit déplacer un robot dans un parcours en ordonnant les cartes représentant divers mouvements. En général le robot est joué par un adulte.

Je sais lire !

OK, montre moi ça. On va pouvoir passer à des jeux basés sur la programmation visuelle.

Le plus connu est Scratch qui existe maintenant en 2 versions, la version 1 à installer et une toute nouvelle version 2 en ligne et en Flash qui demande soit un accès Internet soit d’installer un serveur local et un OS acceptant un player Flash :-/.

Scratch c’est aussi un réseau social permettant de partager ses projets.

C’est un outil de programmation visuelle basé sur des éléments colorés de divers types que l’on peut combiner pour déplacer un objet dans la scène, raconter des histoires, ou faire réagir l’objet à des actions sur le clavier.

L’accès est possible à partir de 6 ans, accompagné pour arriver à lire facilement les instructions et organiser son raisonnement, et autonome à partir de 8 ans. Le logiciel est en français si votre OS est en français.

Scratch a des extensions pour faire de la programmation visuelle d’autres types d’appareils comme par exemple Ardublock pour les Arduino. Il tourne aussi sur Raspberry Pi.

Je vous laisse découvrir l’excellent Mycophone à base d’Arduino dont l’auteur était parmi nous.

Alice est un jeu équivalent à Scratch mais pour faire des animations 3D. Il est écrit en Java.

L’accès est quand même plus compliqué et il n’est pas adapté aux moins de 10 ans. L’interface est moins intuitive, les déplacements des personnages et de la caméra en 3D sont plus compliqués et donc les fonctions sont moins évidentes. Le logiciel a un version française dans les options.

Mon robot défend ma chambre

Bien sûr nous n’avons pas oublié le Lego Mindstorm. Je l’ai mis un peu à part car contrairement aux logiciels précédents celui-ci n’est pas gratuit.

Il faut un robot et un ordinateur pour faire tourner le logiciel avec lequel on conçoit le programme du robot. Il faut aussi pas mal de temps pour assembler le robot, même le plus simple, le robot qui tire des billes lorsqu’il détecte un intrus.
C’est un jeu plus mobile et plus tactile que les précédents qui aborde la programmation par le déplacement du robot et la gestion des capteurs. C’est adapté au 10 ans et plus.

Dans le prochain article, les plus grands avec l’apprentissage des langages de programmation.

Devoxx d’un point de vue très … objectif

Devoxx pour la plupart des gens c’est une avalanche de technologies. Pour moi cette édition de Devoxx a été consacrée à une seule technologie, celle des appareils photos.

Je sais maintenant à peu près à quoi servent la moitié des boutons et molettes de mon appareil. Les photos ne sont pas trop mal, probablement pas aussi propres qu’elles auraient dû être. Je ferai mieux la prochaine fois 😉

infographie-devoxx-2013

Tests de performance au YaJUG

J’ai uploadé les slides de la présentation sur les tests de performance que j’ai faite au YaJUG fin Octobre.

Les présentations, la mienne, celle de Stéphane Landelle sur Gatling, et celle d’Antonio Gomes Rodrigues sur JMeter ont été filmées par le YaJUG et seront disponibles sur Parleys dans l’espace du YaJUG http://www.yajug.org/confluence/display/Public/Past+Events+2012.

A cette occasion je me suis rendue compte qu’on connait des petits trucs que les autres n’utilisent pas forcément.

Mon truc c’est d’utiliser les profils Firefox pour éviter la reconfiguration du proxy.

JMeter, comme la plupart des outils de test de charge, utilise un proxy HTTP pour enregister une séquence d’actions  que vous jouez dans votre navigateur et générer un squelette de scénario de test. Pour que cela fonctionne, il faut configurer un HTTP Proxy Server dans JMeter, puis aller dans la configuration du navigateur pour indiquer  le port du proxy et enregistrer le scénario. Si vous ne l’avez jamais fait, la procédure complète se trouve là http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf

Première chose, le HTTP Proxy Server n’est pas toujours sur un port pratique. Il est par défaut sur le port 8080, ce qui est ennuyeux si vous avez aussi un Tomcat sur la même machine. Le navigateur trouvera bien quelque chose sur le port 8080, mais ça n’est pas votre proxy.

Une fois le port changé et les options de filtrage configurées, je sauve cet élément en utilisant « Save Selection As … ». Ceci permet de le réimporter plus tard en utilisant la fonction « Merge » dans le menu. Donc voilà, mon port est 4567.

 

Ensuite, il faut créer un profil dans Firefox qui passera toujours par Proxy sur le port 4567.

Il faut activer le Profile Manager car il n’est pas actif par défaut. La procédure varie selon les OS. Pour MacOSX, la procédure se trouve ici, pour Windows il faut ajouter -ProfieManager à la fin de  la ligne de commande du raccourci.

Au prochain démarrage, Firefox vous proposera de choisir un des profils existants et vous pourrez créer un profil JMeter.

Il y a un autre intérêt à passer par un profil spécifique. Vous laisserez ce profil vierge de tout add-on et vous éviterez ainsi de devoir configurer des filtres au niveau du proxy pour ignorer les requêtes émises en continu par ces extensions.

La prochaine fois, il n’y a plus rien à faire. Vous importez l’élément HTTP Proxy Server sauvegardé, vous le démarrez, vous lancez Firefox avec le profil JMeter et tout marche.

Présentation Clojure au JUG Summer Camp

J’ai le plaisir de faire une présentation Incanter / Clojure au JUG Summer Camp. Le but est de couvrir quelques librairies utiles pour faire des analyses et des rapport sur de grosses masses de données.

Le code des exemples se trouve sous Github https://github.com/cfalguiere/ClojureBigDataJugSummerCamp2012

Les slides de la présentation en pdf sont sur SlideShare

 

Présentation Performances à Toulouse et Bordeaux

Voici les slides de la présentation que j’ai faite aux JUGs de Toulouse et Bordeaux le 7 et 8 décembre.

 

Je voudrais remercier ces JUGs ainsi que les deux genigraph.fr qui a publié un compte rendu sur son blog. Le JUG de Toulouse a également fait un compte-rendu de la soirée.

Une session similaire a été enregistrée par le JUG de Lausanne.