Publié le 11 septembre 2019, mis à jour le 23 janvier 2024.
L’objet de cet article est d’expliquer, sans rentrer dans des considérations techniques, ce qu’est le monitoring dans le domaine du DevOps. Il sera suivi d’autres articles sur les différentes notions à connaître pour comprendre le monde du DevOps.
Qu’est-ce que le monitoring ?
En français, le terme monitoring peut être traduit par “surveillance” ou "supervision". Il s’agit de détecter et de comprendre les problèmes qui peuvent survenir lors de l’utilisation d’un site web ou d’une application. Nous verrons un peu plus tard en quoi le monitoring est indispensable à une démarche DevOps.
Observabilité
L'observabilité est le pilier d’une démarche de monitoring. Il s’agit de pouvoir répondre en temps réel à la question “que se passe-t-il ?”. Dans un contexte DevOps, il faut envisager deux niveaux d’observabilité : bas niveau et applicative.
Observabilité bas niveau : ce qu'il se passe dans mon système
- Consommation de mémoire
- Consommation de réseau
- État de mes clusters Kubernetes etc…
Observabilité applicative : ce qu'il se passe dans mon service
- Bugs
- Performances.
Dans une démarche DevOps, l’intérêt est de lier les deux car les corrélations sont très fortes. Une augmentation de la consommation de mémoire (observabilité bas niveau) m’aidera à comprendre d’où vient la baisse de performance d’un fonctionnalité applicative (observabilité applicative).
C’est donc un outil précieux pour aider les développeurs et les Ops à communiquer, avoir des indicateurs communs, et donc faciliter une culture DevOps
Exemples de solutions APM (Application Performance Management) :
- Datadog
- New Relic
- Kibana (Elasticsearch)
L’alerting
On sait donc analyser ce qu’il se passe dans le système grâce au monitoring. Encore faut-il être au courant quand un incident survient. C’est la fonction de l’alerting, qui permet d’intervenir le plus vite possible, afin de limiter l’impact de l’incident en question.
Petite comparaison :
Scénario 1
10h : Le système de paiement d’un site d’e-commerce spécialisé dans la grenadine crash
10h15 : 100 utilisateurs ont tenté d’acheter une bouteille de grenadine mais n’ont pu accéder à la page de paiement
10h16 : Le 101ème client, énervé, envoi un mail au service client pour se plaindre du problème
10h20 : Le service client, réactif, remonte le problème au service informatique
10h30 : Le message atteint l’équipe technique concernée qui commence à traquer le bug en question. Entre temps, 100 autres utilisateurs ont quitté le site sans pouvoir acheter de grenadine.
Résultat : Avant l’intervention des développeurs, la marque a raté 200 ventes et mécontenté 200 clients.
Scénario 2
10h : Le système de paiement d’un site d’e-commerce spécialisé dans la grenadine crash
10h : Un mail/slack automatique est envoyé à l’équipe technique pour remonter l’incident
10h01 : Un développeur commence à traquer le bug
Résultat : Avant l’intervention des développeurs, la marque a raté 2 ventes et mécontenté 2 clients.
Suivi des KPI’s
Une autre fonction du monitoring, apparue plus récemment, est de permettre de suivre l’évolution des indicateurs business.
Ainsi, lorsque les outils de monitoring sont en place, il est possible de suivre l’impact des mises à jour de l’applicatif auprès des utilisateurs. Un bon monitoring vous donnera, par exemple, toutes les données permettant de mesurer votre taux de conversion.
Une fois votre nouveau tunnel de paiement mis en place, cette mesure permettra de connaître l’impact exact de cette nouvelle feature sur le comportement de vos utilisateurs. Par exemple, si le taux de conversion s’est amélioré depuis l’implémentation du nouveau tunnel de paiement.
Monitoring et DevOps
Comme nous l’avons vu, le monitoring est un excellent outil de communication entre développeurs et Ops. Il aide à aligner leurs enjeux, découvrir les corrélations entre les problèmes qu’ils rencontrent, et à avoir des discussions factuelles. Si votre but est de construire une culture de collaboration avec des objectifs communs, le monitoring est votre allié.
Le monitoring est aussi intimement lié au DevOps car il est indispensable pour la mise en place d’une feedback loop efficace. La feedback loop est un des concepts clé du mouvement DevOps. En voici une illustration
Toute l’idée est de mesurer l’impact d’une action pour connaître son efficacité et continuer à apprendre. C’est le monitoring qui vous permettra cette mesure, à vous ensuite de définir les bonnes données à faire remonter pour récupérer les informations qui vous paraissent les plus pertinentes.
Être prévenu en cas d’incident, en trouver rapidement la cause et suivre les KPI’s, voici les grandes fonctions du monitoring. Si vous souhaitez rentrer dans le détail, et découvrir les outils de monitoring les plus utiles pour Kubernetes ou voir les autres outils DevOps qui existent, n’hésitez pas à aller lire ces articles !
Nos experts peuvent également vous accompagner pour la mise en place de monitoring si besoin.