Temps de lecture : 1 Minutes

Les métriques DevOps expliquées : Comment suivre et optimiser votre pipeline de développement

Senior Manager - Cloud & Infrastructure

An experienced and adaptable IT leader, Gopalakrishna Raju boasts over 18.5 years of expertise in service delivery management, project management, and database administration. A strong advocate for continuous service improvement and automation, he strives to bring productivity and cost benefits for clients. Certified in Oracle, AWS, and Microsoft Azure, he has received numerous accolades, including the Top Achiever FY23 Spot Award at Zensar and multiple awards at Wipro. When not busy setting up operational models, and delivering successful outcomes, he enjoys playing badminton and cricket.

Nous, les humains, aimons brouiller les lignes, et l’une de ces tentatives est le DevOps. Avec DevOps dans l’anneau du SDLC, les choses ont changé et qu’est-ce que c’est ? Le suivi de facteurs clés tels que la performance, la qualité et la vitesse des applications devient un processus continu. Sans ces mesures, il peut être difficile de prendre des décisions fiables et fondées sur des données. Mais à quelle échelle mesurer la performance ? C’est là qu’interviennent les métriques. Les mesures DevOps fournissent les informations nécessaires pour s’adapter, optimiser et, en fin de compte, fournir de meilleurs logiciels, plus rapidement. Ce blog explique pourquoi les mesures DevOps sont importantes. Il aborde également les différents points à prendre en compte lors de leur utilisation pour prendre des décisions.

Pourquoi garder un œil sur les indicateurs DevOps ?

Vous pouvez atteindre les objectifs suivants en gardant un œil sur les indicateurs DevOps :

  • Examinez les tendances à long terme à l’aide de données sur l’observabilité.
  • Configurez des alertes utiles avec un signal fort et peu de bruit.
  • Créez des tableaux de bord pratiques pour faciliter l’établissement de rapports et la planification.
  • Créez des accords de niveau de service (SLA), des objectifs de niveau de service (SLO) et des objectifs de niveau de service (SLI) réalisables.
  • Créer un répertoire interne des meilleures pratiques en matière d’ingénierie logicielle.

Il est bon d’être “guidé par les données”, mais il y a un risque de se laisser submerger par les analyses. Pour démontrer la valeur d’un projet, il vous suffit de quelques mesures.

Quatre indicateurs DevOps essentiels à surveiller

Les quatre indicateurs DevOps sont également connus sous le nom de “quatre clés” et servent de référence pour évaluer les performances d’une équipe DevOps, allant d’un score faible à un score d’élite. Un score “faible” indique une performance médiocre, tandis qu’un score “élite” signifie des progrès exceptionnels dans la réalisation des objectifs DevOps. L’équipe DevOps Research and Assessment (DORA) de Google a identifié quatre mesures principales, divisées en mesures de vitesse (DF et CLT) et en mesures de stabilité (MTTR et CFR), comme indicateurs de la performance DevOps :

Indicateurs DORA Metrics de la performance DevOps :

  1. Fréquence de déploiement (DF)
  2. Délai de changement (CLT)
  3. Délai moyen de rétablissement (MTTR)
  4. Modifier le taux d’échec (CFR)

Des déploiements plus fréquents, des délais de changement plus courts, moins de pannes et des rétablissements de service plus rapides sont autant de caractéristiques des équipes très performantes. L’inverse est vrai pour les équipes peu performantes, ce qui se traduit par une inefficacité et une mauvaise expérience client.

Métriques DevOps Faible Moyenne Élevée
Fréquence de déploiement Entre une fois par mois et une fois tous les 6 mois Entre une fois par semaine et une fois par mois Selon les besoins (plusieurs déploiements par jour)
Délai de modification Entre 1 et 6 mois Entre une semaine et un mois Entre un jour et une semaine
Délai de rétablissement du service Entre une semaine et un mois Entre un jour et une semaine Moins d’un jour
Taux d’échec des changements 45%-60% 16%-30% Jusqu’à 15%

Examinons de plus près chaque indicateur.

1. Fréquence de déploiement

La fréquence à laquelle les mises à jour de code sont poussées vers la mise en scène ou la production est mesurée par la fréquence de déploiement. La productivité de l’équipe DevOps, le temps de réaction, les compétences des développeurs, la cohésion de l’équipe et l’efficacité des outils peuvent tous être mesurés directement ou indirectement. Les équipes efficaces sont capables de mettre en œuvre des ajustements en fonction des besoins et le font fréquemment tout au long de la journée. À l’inverse, les équipes peu performantes sont parfois limitées à des déploiements hebdomadaires ou mensuels. La fréquence de déploiement est calculée différemment par chaque entreprise. Par exemple, vous voudrez peut-être calculer la fréquence de déploiement pour les projets de pipeline réussis. Cependant, la mesure peut également changer en fonction de la définition du terme “déploiement”. Le déploiement de chaque Pull Request mineure ou de chaque mise à jour de code se traduira par une fréquence élevée. Cependant, les choses commencent à se présenter différemment si votre déploiement est planifié pour s’exécuter après un certain temps. Bien que le passage d’un déploiement hebdomadaire à un déploiement quotidien, par exemple, démontre comment le déploiement continu peut améliorer votre processus de développement, le fait de se fier uniquement à cet indicateur DevOps peut conduire à des hypothèses incorrectes. Par exemple, si vous avez augmenté vos déploiements quotidiens de trois à 3,3 par rapport au trimestre précédent, vous avez techniquement 10 % de “succès” en plus, mais ce n’est pas un bon indicateur de réussite. Pour évaluer le développement global, vous devez prendre en compte d’autres paramètres.

Lire aussi : 6 raisons pour lesquelles vous avez besoin de DevOps en tant que service

2. Délai de modification

Le temps nécessaire pour qu’une modification de code passe de la validation au déploiement est appelé “délai de modification”. En substance, il pose la question suivante : “En combien de temps pouvons-nous modifier une ligne de code et la rendre opérationnelle en production ?” Alors qu’une équipe moyennement ou peu performante mesure son délai moyen en jours, en semaines, voire en mois, une équipe très performante calcule généralement son délai moyen en heures. Si le délai d’exécution des modifications est très long, votre processus de développement ou de déploiement de logiciels est soumis à des contraintes de performance. En réduisant ce délai, vous augmentez votre capacité à répondre à l’évolution des besoins. Le travail par petits lots, l’automatisation des tests et le développement basé sur des troncs d’arbre peuvent contribuer à réduire les délais de modification. La différence moyenne entre le temps nécessaire pour créer des demandes d’extraction et le moment où elles sont fusionnées dans la branche principale est utilisée pour déterminer le délai de modification. Le délai moyen de modification serait de 90 divisé par 10 si vous aviez 10 modifications en un mois et que le nombre total de jours entre la validation et le déploiement pour toutes les modifications était de 90. Cela signifie que chaque changement prendrait en moyenne 9 jours. L’identification des besoins et des perspectives du produit peut prendre des mois, mais la validation du code peut ne prendre que quelques jours. Par conséquent, même si le délai d’exécution des modifications est une statistique précieuse, il est naïf de l’utiliser seule.

3. MTTR (délai moyen de rétablissement)

La vitesse à laquelle les pannes de service ou les défaillances complètes sont détectées et réparées est mesurée par votre délai moyen de rétablissement. Alors que les équipes peu performantes peuvent mettre jusqu’à une semaine pour se remettre d’une panne de système, les équipes très performantes s’en remettent souvent en moins d’une heure. Le temps moyen qu’il faut pour qu’un problème soit résolu est la façon dont vous déterminez votre MTTR. Cette mesure peut être influencée par la surveillance, les tests automatisés et une réponse efficace aux problèmes. Étant donné que la conception statistique peut fausser la signification d’une manière ou d’une autre, la valeur du MTTR a été remise en question à plusieurs reprises au cours des dernières années. En outre, les moyennes peuvent être trompeuses et masquer le comportement réel des systèmes. Par conséquent, essayez de considérer cette mesure en conjonction avec d’autres paramètres, même si vous ne devez pas l’ignorer complètement.

Découvrez nos solutions : DevOps en tant que service

4. Modifier le taux d’échec

Le pourcentage de modifications du code ou de déploiements qui nécessitent des correctifs après la production est connu sous le nom de taux d’échec des changements. En clair, “à quelle fréquence une modification que vous avez apportée est-elle vraiment “réussie” ?” Au fur et à mesure qu’un défaut progresse dans le pipeline, depuis l’échec d’un test unitaire avant validation jusqu’à l’interruption de la production, son coût ou ses dommages augmentent. Les statistiques deviennent beaucoup plus difficiles à mesurer lorsqu’une étape du pipeline échoue, ce qui signifie que toutes les étapes précédentes n’ont pas pu identifier le problème. L’échec peut être défini de manière générale comme une erreur ou un problème qui cause des problèmes aux clients après un déploiement en production. Les problèmes identifiés lors des tests et résolus avant le déploiement ne sont pas pris en compte dans cette mesure importante. Les taux d’échec des changements peuvent atteindre 60 % pour les équipes peu performantes, alors qu’ils sont inférieurs à 15 % pour les équipes très performantes. Les taux d’échec des changements peuvent être réduits par les mêmes stratégies que celles qui réduisent les délais, telles que le développement basé sur des troncs, les tests automatisés et le travail par petits lots.

Comment calculer les indicateurs DevOps ?

Les conseils suivants vous aideront à tirer le meilleur parti des indicateurs DevOps :

  • Établissez des points de référence : Avant de pouvoir réellement suivre vos progrès ou célébrer vos victoires, vous devez savoir d’où vous partez. C’est un peu comme si vous regardiez le tableau d’affichage avant le début du match.
  • Évitez que les mesures ne deviennent des objectifs : “Lorsqu’une mesure devient un objectif, elle cesse d’être une bonne mesure”, selon la loi de Goodhart. Vous risquez de perdre de vue ce qui est important pour votre réussite DevOps lorsque vous vous fixez sur un seul chiffre.
  • Commencez petit : vous pouvez garder une longueur d’avance sur la concurrence en ajoutant rapidement de nouvelles fonctionnalités. Effectuez les changements ou les déploiements par lots plus petits et plus faciles à gérer. Les petites modifications sont plus faciles à comprendre, passent plus rapidement dans le pipeline de déploiement et sont plus faciles à annuler. La reprise sur panne est également plus rapide.
  • Méfiez-vous de la simplicité : Il peut être séduisant de se concentrer sur une seule mesure, facile à comprendre, mais en réalité, aucun chiffre ne peut rendre compte de la situation dans son ensemble. DevOps est plus qu’une simple statistique ; il s’agit d’une façon de penser et d’un parcours autour du développement logiciel.
  • Effectuez des comparaisons équitables : Les mesures peuvent ne pas correspondre exactement si vous comparez des indicateurs de deux projets distincts ou même de deux périodes différentes. Les situations varient et le contexte est crucial.
  • Regardez de plus près : Choisissez des indicateurs qui démontrent clairement la valeur de votre équipe et de vos projets, même si leur suivi nécessite un peu plus de travail. Il est facile de mesurer ce qui se trouve sous vos yeux.
  • Examinez les commentaires des clients : Les utilisateurs peuvent encore rencontrer des problèmes même si votre déploiement se déroule sans problème. Les données DORA ne vous permettent pas de déterminer le degré de satisfaction des utilisateurs. Pour savoir ce qui doit être corrigé, voyez ce que les gens disent. Tout cela relève de la gestion de la chaîne de valeur.
  • Recherchez les tendances dans les problèmes : Les mêmes types de difficultés reviennent-ils régulièrement ? Cela peut indiquer des problèmes plus graves qui nécessitent une attention particulière.
  • Gardez l’œil ouvert sur les accidents évités de justesse : Non seulement les problèmes qui se sont produits, mais aussi ceux qui ont failli se produire. Ils peuvent vous apprendre beaucoup de choses sur la manière d’éviter les problèmes de livraison de logiciels à l’avenir.
  • Contrôlez les réductions de coûts : Démontrez comment DevOps réduit les coûts ou évite des dépenses supplémentaires. Son budget s’en trouve justifié.
  • Réduire les temps d’arrêt : Vous souhaitez que votre système reste opérationnel à tout moment, car les temps d’arrêt peuvent nuire à la réputation de votre entreprise et entraîner des pertes de revenus. Mettez tout en œuvre pour les éviter.

Comment les indicateurs DevOps sont-ils interprétés ?

Vous devez être astucieux avec les statistiques que vous collectez lorsque vous utilisez les métriques DevOps. Si vous n’êtes pas vigilant, les moyennes peuvent facilement vous induire en erreur. De même qu’une valeur aberrante peut fausser les perceptions, le fait de s’appuyer uniquement sur des moyennes pour tirer des conclusions risque d’occulter la véritable distribution des données. Pensez à éliminer les valeurs aberrantes de vos données. Votre perception des performances ordinaires peut être faussée par ces chiffres extrêmes. Votre temps de déploiement habituel ne devrait pas être la norme, par exemple, si un déploiement prend beaucoup plus de temps que les autres en raison de problèmes imprévus. Le regroupement des données peut également être bénéfique. Pour ce faire, des types de données apparentés sont regroupés de manière à ce que les tendances au sein de ces groupes puissent être examinées. Par exemple, lorsque vous calculez les délais, séparez les correctifs de bogues et les déploiements de nouvelles fonctionnalités. Cela vous permet de déterminer si et pourquoi un type de données prend systématiquement plus de temps que l’autre. Enfin, remettez constamment en question les conclusions tirées de vos données. Que vous révèlent les faits ? Que pourraient-ils omettre ? Une amélioration spectaculaire du taux d’échec des changements, par exemple, indique-t-elle que vos déploiements sont effectivement plus fiables, ou déployez-vous moins souvent, ce qui réduit les risques d’échec ? En investissant plus de temps et d’énergie dans les premières phases du développement d’un produit, vous réduirez la probabilité de rencontrer des problèmes tout au long du déploiement. C’est un peu comme si vous répariez les fuites d’un bateau lorsqu’il est encore à quai plutôt qu’en mer. Cette stratégie proactive garantit que votre produit est fiable et utilisé plus rapidement, tout en permettant de gagner du temps. Cependant, sachez que votre équipe DevOps ne peut pas agir directement sur tous les aspects de la performance de votre produit. Malgré leur valeur, les mesures DORA peuvent parfois révéler des éléments qui ne sont pas directement contrôlables, tels que les procédures globales de l’entreprise ou les calendriers de prise de décision. Par exemple, vos délais d’exécution augmenteraient inévitablement si votre entreprise avait une politique exigeant des vérifications de sécurité approfondies avant la mise en œuvre.

Consultez le site : Zuci s’associe à Sauce Labs, fournisseur mondial de plateformes de test basées sur le cloud.

La définition d’objectifs raisonnables est facilitée par la compréhension des limites de ce que vous pouvez directement influencer. Par exemple, vous pouvez essayer de rationaliser d’autres aspects de votre processus de déploiement pour compenser le temps perdu, même si vous ne pouvez pas accélérer les contrôles de sécurité exigés par l’entreprise. Mieux mesurer les métriques DevOps DORA offre un cadre utile pour améliorer le développement et la gestion des services techniques, en particulier si vous envisagez de passer à Kubernetes. Cependant, il doit être personnalisé en fonction de votre situation, utilisé en conjonction avec d’autres mesures, considéré comme un moment unique dans le temps et non manipulé. Déterminer la performance du pipeline et identifier les domaines d’amélioration est l’objectif primordial de ces KPI DevOps cruciaux.