Une recette de Monitoring-as-a-Service façon DevOps, partagée par Voyages-SNCF lors du Meetup "Paris Monitoring - le Monitoring revisité" du 17 mars 2016.
TOCK (The Open Conversation Kit) @ Meetup Open Transport
Monitoring une recette DevOps
1. 17 mars 2016
Paris Monitoring Meetup
« Le Monitoring revisité »
[MONITORING-AS-A-SERVICE]
UNE
RECETTE DEVOPS
PARTAGÉE PAR VOYAGES-SNCF
François Nollen
Maxence G. de Montauzan
2. RECETTE DE MONITORING DEVOPS
Introduction
Ingrédients
Préparation
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
3. RETOUR SUR PARIS MONITORING #3
http://fr.slideshare.net/FrancoisN0/devops-autres-tendances-monitoring
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
4. TENDANCES MONITORING
Superviser des KPIs fonctionnels
et métier (en plus du technique)
Se concentrer sur les alertes et
l’analyse automatique des données
Ouvrir la supervision aux développeurs
& ‘monitoring as a service’
Automatiser la supervision
& ‘monitoring as code’
Approches top-down,
Monitoring de Flux,
Hypervision, etc….
Détection avancée
d’anomalies, Machine
Learning, algorithmes,
etc….
DevOps, self-
service, etc….
Continuous Delivery,
monitoring hors-prod
iso-prod, etc….
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
5. FOCUS SUR UN MONITORING DEVOPS
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
6. FOCUS SUR UN MONITORING SELF-SERVICE
Quels plats proposer ?
Comment les présenter ?
Dans quel ordre ?
…
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
7. RECETTE DE MONITORING DEVOPS
Introduction
Ingrédients
Préparation
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
8. DES NORMES
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
On a commencé par le plus hétérogène :
les logs générés par les applications…
…on a même découvert quelques monstres au passage
9. DES BIBLIOTHÈQUES POUR <YOUR_LANGUAGE_HERE>
On a ensuite développé et
donné des libs aux équipes
pour implémenter des logs
et métriques normalisés
dans leurs applications
(Attention à ne pas sous-estimer la
charge en support et maintenance
de ces composants…)
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
10. François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
DE L’INFRA (« BIG DATA AS A SERVICE »)
Parce qu’une infra de
centralisation Big Data n’est
pas triviale pour un néophyte
11. DE L’INFRA (« BIG DATA AS A SERVICE »)
Objectif : une infra de centralisation à-la-demande
pour pouvoir développer et tester de bout en bout
n’importe où…
…sur les postes de dév,
dans des builds d’intégration
continue, de non-régression,
etc…
…même sans accès réseau
sur notre laptop de démo
peu performant et sous Windows !
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
12. DES FORMATIONS OUVERTES À TOUS
Outils et accès ne suffisent pas à
amener les dévs au monitoring…
…Il faut aussi sensibiliser,
former, accompagner
DevOps culture + outils
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
13. DES SERVICES DE VALIDATION
Pour vérifier le comportement
des applications
Pour validation ponctuellement ou automatiquement :
Script, CRON, Jenkins, Rundeck, etc.
Pour auditer/surveiller des
plateformes
Etc.
Pour tester en non-régression les
libs générant des logs normalisés
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
14. D’AUTRES SERVICES, COMME L’ANONYMISATION
Bien écouter les besoins des équipes,
même ce qui peut paraître à la marge
des problèmes de monitoring…
…in fine ce qui contribue à l’adoption des
services de supervision fait avancer le
monitoring DevOps en général
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
15. DES SOLUTIONS DE DÉPLOIEMENT
Déployer automatiquement les outils
de supervision (dashboards Kibana /
Grafana, alertes Seyren, etc.)
Pouvoir les livrer/déployer
avec les applications
Monitoring
as code !
Réduire ainsi les
différences d’outillage
entre les plateformes
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
16. DES TABLEAUX DE BORD (POUR TOUS LES BUDGETS)
Les formations rendent les développeurs
autonomes pour créer leurs dashboards…
…pour les autres ou ceux qui
n’ont pas le temps, il faut des
modèles déployables et
utilisables tout de suite
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
17. C’EST L’HEURE DE LA DÉMO !
1°) Activation de logs et
métriques (JMX, Graphite)
normalisés en mettant des
annotations sur des
services REST en Java
2°) Démarrage d’une
infra de centralisation
locale (sous Docker) 3°) Run de l’appli et
visualisation des
logs/métriques
générées dans Hadoop,
Kibana et Grafana
4°) Génération d’un
dashboard Grafana
à partir d’une config
JSON dans les
sources de l’appli
5°) Déploiement
automatisé du
dashboard sur
Grafana
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
18. RECETTE DE MONITORING DEVOPS
Introduction
Ingrédients …la suite !
Préparation
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
19. TOUJOURS PLUS DE TABLEAUX DE BORD!
Par plateforme, par application,
par client, par service, etc.
Pour différents cas d’utilisation :
monitoring, investigation, rapports
hebdo/mensuels, affichage TV…
Pour différents outils (Kibana,
Grafana) ou des rendus personnalisés
(Angular, Bootstrap, D3.js, etc.)
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
20. DES SERVICES D’ALERTES & DE NOTIFICATIONS
Les équipes demandent surtout des dashboards…
Mais il ne faut pas s’arrêter là - on sait qu’il est crucial
de développer l’analyse automatique et l’alerting
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
21. DES SERVICES D’ALERTES & DE NOTIFICATIONS
Par exemple, un service d’abonnement à des notifications email
ou IRC, ouvert à tous, où chacun choisit ses indicateurs et ses
propres seuils (sans interférer avec la supervision des Ops)
Par exemple, de nouveaux types d’alertes pour les Ops,
intégrant des indicateurs fonctionnels ou métier
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
22. DES ALTERNATIVES…
Puisqu’on ne propose pas une solution
monolithique… et que les équipes ont le choix…
Pour ceux qui n’utilisent pas toutes les briques,
de quoi se raccrocher au reste de la solution :
ponts, connecteurs, alternatives, etc.
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
23. DE LA CARTOGRAPHIE (AUTOMATIQUE!)
(La cartographie : tout le monde en veut…
…mais personne ne veut la faire)
Le déploiement automatisé a probablement un rôle à jouer (hooks carto dynamique)
Gagnant-gagnant : « décris-moi ton appli et ses outils de supervision
(dashboards, alertes, etc.), je les déploierai et la carto sera à jour »
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
24. François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
TOUJOURS PLUS D’INDICATEURS, DE LANGAGES…
Plus ils en ont, plus ils en veulent !
(à considérer comme un indicateur de succès !)
Libs : « Et pour mon appli PHP,
Python, Nodejs… ? »
Métriques : « A quand mes KPIs Omniture dans le
rapport hebdo Grafana ? Le nombre de JIRAs ouverts par la
Relation-Client dans mon dashboard de monitoring ? etc. »
25. DE L’ANALYSE AVANCÉE (MACHINE LEARNING)
Meilleure détection d’anomalies
Moins de faux positifs
Signaux faibles
Etc. Peu de solutions
ouvertes et
exploitables
"at scale" ?
créer une plateforme
ML opensource et
générique
créer un consortium avec
des partenaires industriels et
académiques
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
26. RECETTE DE MONITORING DEVOPS
Introduction
Ingrédients
Préparation …pour que la
sauce prenne !
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
27. OBJECTIFS / CRITÈRES DE SUCCÈS
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
Les équipes ont le choix.
Nos critères de succès sont :
ADOPTION et CONTRIBUTION
28. APPROCHE PRODUIT
Manifeste
Itérations
Idée originale : nommer un Product Owner
(pour un projet à vocation plutôt technique)
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
29. EQUIPE DÉDIÉE TRANSVERSE
Une petite équipe multi-localisée
et multi-profils (dév, archi, intég, ops)…
…du coup des défis supplémentaires (montée en
compétence permanente / truck factor), mais
définitivement une raison du succès du projet
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
30. OPENSOURCER NOS COMPOSANTS
Pour le moment en interne
(avec des contributeurs internes)…
…en espérant bientôt pouvoir
opensourcer notre stack plus largement
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
31. DOCUMENTATION
• Code (commenté)
• Documentation technique (Git)
• Documentation plus fonctionnelle
« PO-friendly » (wiki)
• Applications de démonstration
(une par langage) avec leurs
sources
• etc.
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
32. TESTS
Revue des fonctionnalités
(utilisées ou pas) par le PO
avec les utilisateurs
Tests automatisés pour la qualité,
mais aussi pour les contributeurs :
• Tests unitaires
• Code (Sonar etc.)
• Tests d’intégration (Selenium,
tests sur infra Dockerisée)
• Non-régression en perf
(Microbenchmark, Gatling)
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
33. TECHNOLOGIES ATTRACTIVES
(Même celles qui n’ont pas de lien
particulier avec le monitoring, à bien
choisir pour attirer les contributeurs)
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
34. François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
DÉMOS RÉGULIÈRES & COMMUNICATION
Mention spéciale pour le chat qui aide vraiment à créer une communauté
technique et distribuer le support au-delà d’une équipe dédiée : les utilisateurs
se répondent, les contributeurs échangent, etc.
35. MISE EN VALEUR DES CONTRIBUTIONS
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
• Communiquer sur les contributions en cours,
• Mettre en relation les contributeurs éventuels,
• Les conseiller, les accompagner,
• Leur proposer de présenter leur travail lors des démos,
• Etc.
36. …MAIS QUE VAUT UNE RECETTE
SANS PHOTO ??!
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
37. PHOTO APRÈS 6 MOIS : LES COMPOSANTS UTILISÉS
De plus en plus d’utilisateurs et de bouche-à-
oreille (on découvre de nouveaux utilisateurs
en prod ! …et c’est très bien)
1 point = 1 équipe
Des contributions qui vont de la pull request de 2 LoC …
au portage d’une lib pour un autre langage
Sans surprise les libs sont plus utilisées que les
dashboards, alertes et autres outils.
Probablement parce que c’est la responsabilité
historique des dévs (produire des logs).
Les autres services mettront plus de temps à
être adoptés.
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
38. PHOTO APRÈS 6 MOIS : LES FORMATIONS
Résultat : engouement pour une formation
pourtant longue (chacun se débrouille pour timer)
sur un sujet assez spécifique/technique…
…Preuve que le sujet intéresse au-delà des équipes
de supervision classiques
Tous profils d’inscrits : développeurs,
Ops, chefs de projet, curieux…
Ce que l’on propose, une journée complète pour :
• Comprendre l’architecture Big Data de centralisation des logs
• Etre autonome sur les outils Kibana et Grafana (théorie + TPs)
…DevOps wins!
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
39. A SUIVRE…
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
40. INSPIRATIONS ET AUTRES LIENS
Monitoring as a Service (James Turnbull, 2015)
A Monitoring Maturity Model (James Turnbull, 2015)
5 years of metrics and monitoring (Lindsay Holmwood, 2014)
Agilité & DevOps @ Voyages-sncf.com (2014)
DevOps & autres Tendances Monitoring
de grands acteurs du Web (François Nollen, 2015)
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
41. RETROUVEZ CE MEETUP SUR LE WEB
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
43. Rejoignez-nous ! Voyages-SNCF recrute.
http://jobs.voyages-sncf.com/
François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité
44. François Nollen :: Maxence G. de Montauzan
Paris Monitoring Meetup :: 17 mars 2016 :: Le Monitoring revisité