• 10 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 22/02/2021

Monitorez votre application

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Afin de savoir si le déploiement d'un système s'est bien déroulé, il est nécessaire de le monitorer, ou le superviser. Cela permet de prendre des décisions plus rapides, comme le rollback automatique d'une application si celle-ci ne fonctionne pas.

Les deux dernières étapes de notre pipeline de livraison continue sont donc le monitoring de l'application, afin de savoir si celle-ci fonctionne correctement, ou présente des erreurs, ainsi que l'activation de notifications en cas de problème, pour avoir un feedback rapide.

Supervisez votre application avec Prometheus

Dans cette section, vous allez ajouter dans GitLab la récupération des métriques de l'application. Lors du déploiement de l'application, des métriques sont exposées par Prometheus, qui est un des composants de notre stack technique.

Le serveur Prometheus est accessible sur le port 9091, auquel vous pouvez accéder en cliquant sur le numéro de port 9091 qui est apparu sur le site Play-with-Docker :

Accédez à Prometheus via le Play-With-Docker
Accédez à Prometheus via le Play-with-Docker

Ce serveur Prothemeus récupère énormément de métriques de l'application, des systèmes sous-jacents, ainsi que des images Docker, comme le nombre de connexions par seconde, le nombre de connexions total, etc. Il expose aussi des métriques applicatives, comme le nombre d'animaux créés ou mis à jour.

Pour récupérer ces métriques dans GitLab, il suffit d'aller dans le menu Settings, Integrations, puis Prometheus.

Ensuite, il faut activer l'intégration avec Prometheus, et le configurer. Cochez la case Active, renseignez l'URL du serveur Prometheus ; dans mon cas :http://ip172-18-0-8-biiabu86chi000em9j9g-9091.direct.labs.play-with-docker.com/ et sauvegardez :

Configurez Prometheus
Configurez Prometheus

Nous allons ensuite définir une métrique que nous allons suivre, afin de voir si l'application à un problème. Cliquez alors sur New Metric et ajoutez les informations suivantes :

Configurez une nouvelle métrique sur Prometheus
Configurez une nouvelle métrique sur Prometheus

GitLab va alors récupérer la métrique http_server_requests_seconds_count depuis le serveur Prometheus, et l'ajouter dans sa base de données interne. Suite à cela, nous pouvons alors voir les graphes de ces métriques dans le menu Operations, puis Metrics où nous avons l'évolution des connexions HTTP au fur et à mesure du temps :

Observez vos métriques
Observez vos métriques

Ces métriques sont très utiles pour prendre des décisions sur le déploiement en production. Ici, nous voyons que les connexions HTTP se font bien, et nous sommes donc confiants sur la mise en production.

D'autres types de métriques sont aussi accessibles via GitLab, afin de prendre des décisions et voir la productivité de l'équipe.

Par exemple, lors du précédent chapitre, vous avez déployé un environnement Canary afin d'analyser le comportement de l'application. Pour voir comment cet environnement se comporte et si celui-ci est viable, allez dans le menu Operations, puis Environments. Vous devriez voir votre nouvel environnement canary et voir les métriques associées :

Les métriques associées à Canary
Les métriques associées à Canary

Pour voir la performance et la productivité de l'équipe, GitLab intègre aussi des métriques concernant le code, les issues, ou encore le temps d'exécution des tests. Ces différentes métriques sont disponibles dans le menu Project, sous-menu Cycle Analytics.

Métriques Cycle analytics
Métriques Cycle Analytics

Les métriques les plus intéressantes sont celles qui fournissent des indicateurs sur la vélocité et la productivité de l'équipe. Par exemple, il est possible de voir le temps entre la création d'une issue et sa résolution dans la rubrique Review.

Il est possible de voir aussi le temps de déploiement sur les différents environnements. Plus cette valeur est petite, plus il est facile de déployer sur les environnements. Par exemple, dans l'exemple ci-dessous, le temps de déploiement sur l'environnement de Staging est de 3 minutes en moyenne. Avec un temps de déploiement aussi court, il est facile de déployer une correction en production assez rapidement

Métrique sur le temps de déploiement
Métrique sur le temps de déploiement

Il y a aussi d'autres métriques qui existent, concernant le code. Par exemple, vous pouvez voir le nombre de commits, ainsi que les différents contributeurs dans le menu Repository, sous-menu Contributors.

Métriques sur les contributeurs
Métriques sur les contributeurs

Il est aussi intéressant de voir le nombre de commits par jours, pour évaluer le temps de travail de chaque développeur. Cette métrique est disponible dans le même menu, sous-menu Charts.

Mettez en place des notifications Slack

La dernière étape est l'étape de feedback rapide. Cette étape est celle qui va nous permettre de faire le lien entre la production (ops), et les développeurs (dev). C'est une étape qui donne de la visibilité aux développeurs sur des problèmes qu'il peut y avoir en production. Plus rapide est la détection des problèmes, plus rapide est leur correction

Cette étape est le lien final qui permet d'avoir notre amélioration continue durant tout le cycle de vie de l'application. GitLab permet l'intégration avec beaucoup d'applications tierces. L'intégration la plus simple est l'intégration email. Afin d'intégrer GitLab avec l'email, allez dans le menu Settings, sous-menu Integrations. Dans ce menu, choisissez "Email on push". Sur le prochain écran, cochez la case Active, renseignez votre mail et cliquez sur "Test settings and save changes".

Activez les notifications
Activez les notifications

Vous allez maintenant être alerté des différents commits qu'il pourrait y avoir sur le contrôle de code source. Mais l'intégration n'est que partielle avec l'email. Le mieux est d'intégrer un outil comme Slack qui prendra toutes les notifications de GitLab, et les affichera dans un channel dédié à votre application. Pour intégrer Slack, il suffit d'aller dans le menu Integrations, et de choisir Slack Notifications.

Activez les notifications Slack
Activez les notifications Slack

De cette page, vous allez être invité à créer un webhook Slack afin de l'intégrer dans votre repository GitLab.

Choisissez un channel dédié à votre application afin de recevoir tous les messages associés. Attention, les messages sont nombreux. Je vous conseille de ne pas l'ajouter dans le channel Général.

Configurez le channel Slack où recevoir les notifications
Configurez le channel Slack où recevoir les notifications

Une fois le webhook créé, copiez l'URL délivrée par Slack afin de la coller dans GitLab.

Lorsque l'intégration avec Slack est finie, vous recevrez tous les messages des événements GitLab dans le channel associé.

Slack avec vos notifications de Gitlab
Slack avec vos notifications de GitLab

En résumé

Dans ce chapitre, vous avez mis en place la supervision de plusieurs métriques de votre application en production grâce à Prometheus et GitLab. Puis, vous avez configuré GitLab pour que des notifications d'alerte vous soient automatiquement envoyées sur Slack en cas de problème.

Ce dernier chapitre conclut notre cours sur l'intégration continue et la livraison continue. Vous avez vu tout le long de ce cours comment mettre en place les différentes étapes nécessaires, de la compilation au déploiement en production, en passant par les différents tests possibles et la création d'environnements. Nous avons aussi vu comment gérer la qualité de notre application, afin de maîtriser la dette technique générée par les différents développement et développeurs de notre application.

J'ai été ravi de travailler sur ce cours, et j'espère qu'il vous permettra de réaliser vos projets ! Rendez-vous dans la dernière évaluation de ce cours, pour vérifier que vous avez bien acquis les compétences. 🙂

Exemple de certificat de réussite
Exemple de certificat de réussite