Date de publication : 1er mai 2022
Les métriques DORA sont un cadre de métriques de performance qui aident les équipes DevOps à évaluer l’efficacité avec laquelle elles développent, fournissent et maintiennent des logiciels. Elles mettent en évidence les équipes d’élite, hautement performantes, intermédiaires et faibles, et fournissent une base de référence pour aider les organisations dans l’amélioration permanente de leurs performances DevOps et l’obtention de meilleurs résultats commerciaux. Les métriques DORA ont été définies par l’équipe Recherche et évaluation DevOps de Google Cloud et s’appuient sur six années de recherche sur les pratiques DevOps de 31 000 professionnels de l’ingénierie.
Bien que les responsables DevOps et les ingénieurs puissent souvent fournir une évaluation intuitive des performances de leur équipe, ils ne parviennent pas toujours à quantifier cette valeur pour l’entreprise ni à identifier où et comment apporter des améliorations. Les métriques DORA soutiennent cette démarche en tant que moyen objectif de mesurer et d’optimiser les performances de livraison de logiciels et de valider la valeur commerciale.
Dans les sections suivantes, nous allons examiner les quatre métriques DORA, voir comment les ingénieurs logiciels peuvent les exploiter pour évaluer leurs performances, et passer en revue les avantages et les défis de leur mise en œuvre. Nous verrons également comment prendre un bon départ avec les métriques DORA.
Quelles sont les quatre métriques DORA essentielles ?
Le cadre DORA utilise les quatre métriques décrites ci-dessous pour mesurer deux domaines essentiels du DevOps : la vitesse et la stabilité. La fréquence de déploiement et le délai moyen des modifications mesurent la vitesse du DevOps, tandis que le taux d’échec des modifications et le délai de rétablissement du service mesurent sa stabilité. Interprétées ensemble, ces quatre métriques DORA dessinent la base de référence des performances d’une équipe DevOps et donnent des indices sur les points à améliorer.
1) Fréquence de déploiement
La fréquence de déploiement indique la fréquence à laquelle une organisation déploie du code en production ou publie des logiciels pour les utilisateurs finaux. Selon l’objectif de développement continu du DevOps, les équipes devraient réaliser plusieurs déploiements quotidiens ; la fréquence de déploiement leur fournit donc une image claire de leur position par rapport à cet objectif.
Pour la fréquence de déploiement, les différents niveaux de performance sont :
- Élite – plusieurs déploiements par jour,
- Haut – un déploiement par semaine à un par mois,
- Moyen – un déploiement par mois à un tous les six mois,
- Faible – moins d’un déploiement tous les six mois.
Chaque organisation a sa propre définition d’un déploiement réussi, et la fréquence de déploiement peut même varier d’une équipe à l’autre au sein d’une même organisation.
2) Délai moyen des modifications
Le délai moyen des modifications mesure la durée moyenne qui sépare la validation du code et sa mise en production. Le délai d’exécution doit impérativement être mesuré, car plus il est court, plus l’équipe peut recevoir rapidement des commentaires et publier des améliorations. On calcule le délai des modifications en mesurant le temps qu’il faut pour terminer chaque projet du début à la fin et en faisant la moyenne de ces temps.
Pour le délai moyen des modifications, les différents niveaux de performance sont :
- Élite – moins d’une heure,
- Haut – entre un jour et une semaine,
- Moyen – entre un mois et six mois,
- Faible – plus de six mois.
Les processus propres à la culture d’une organisation, comme la séparation de ses équipes de test ou de ses environnements de test partagés, peuvent avoir un impact sur les délais et ralentir les performances d’une équipe.
3) Taux d’échec des modifications
Le taux d’échec des modifications est le pourcentage de déploiements qui, une fois en production, provoquent une défaillance exigeant une solution immédiate (dégradation du service, interruption de service, etc.). On cherche à minimiser le taux d’échec des modifications, car plus une équipe passe de temps à résoudre les problèmes, moins elle peut produire de nouvelles fonctionnalités et de la valeur client. Cette métrique est généralement calculée en comptant le nombre de fois qu’un déploiement aboutit à un échec et en divisant ce chiffre par le nombre total de déploiements pour obtenir une moyenne. Vous pouvez calculer cette métrique comme suit :
(échecs de déploiement/nombre total de déploiements) x 100
Pour le taux d’échec des modifications, les différents niveaux de performance sont :
- Élite – 0 à 15 %,
- Haut – 16 à 30 %,
- Moyen – 16 à 30 %,
- Faible – 16 à 30 %.
4) Délai de rétablissement du service
La mesure du délai de rétablissement du service, parfois appelé temps moyen de récupération ou temps moyen de réparation (MTTR), traduit la rapidité avec laquelle une équipe peut rétablir le service lorsqu’une interruption – allant du bug en production à la défaillance imprévue – affecte les clients.
Pour le délai de rétablissement du service, les différents niveaux de performance sont :
- Élite – moins d’une heure,
- Haut – moins d’un jour,
- Moyen – entre un jour et une semaine,
- Faible – plus de six mois.
DORA utilise quatre métriques principales pour mesurer deux aspects clés du DevOps : la vitesse et la stabilité.
Qu’est-ce qu’une étude DORA (Recherche et évaluation DevOps) ?
Une étude DORA est un moyen simple de collecter des informations sur les quatre métriques DORA et de mesurer l’état actuel des performances de livraison de logiciels d’une organisation. L’équipe de recherche et d’évaluation DevOps de Google Cloud propose un protocole formel appelé Inspection rapide DevOps DORA. Il vous suffit de répondre à cinq questions à choix multiples : vos résultats sont comparés à ceux d’autres organisations pour vous donner une vue d’ensemble des capacités DevOps que votre organisation doit améliorer en priorité.
Une étude DORA apporte des conseils généraux, mais de nombreuses organisations font également appel à des prestataires indépendants pour procéder à des évaluations personnalisées. Ils vont étudier de plus près la culture, les pratiques, les technologies et les processus de l’entreprise afin d’identifier des moyens spécifiques d’améliorer la productivité de son équipe DevOps.
Quelles sont les applications/scénarios d’utilisation des métriques DORA ?
Dans tous les secteurs ou presque, les entreprises peuvent utiliser les métriques DORA pour mesurer et améliorer leurs performances de développement et de livraison de logiciels. Un développeur de jeux mobiles, par exemple, pourrait utiliser les métriques DORA pour mieux comprendre et optimiser sa réponse en cas de déconnexion du jeu, de façon à minimiser l’insatisfaction des clients et à préserver ses revenus. Une société de services financiers pourra communiquer les bienfaits du DevOps aux acteurs de l’entreprise en traduisant les métriques DORA en dollars économisés grâce à l’accroissement de la productivité et à la réduction des temps d’arrêt.
Quels sont les avantages et les défis propres aux métriques DORA ?
Les métriques DORA sont très utiles pour quantifier les performances de votre organisation en matière de livraison de logiciel et lui permettre de se comparer aux autres acteurs de son secteur. Les effets potentiels sont multiples :
- Meilleure prise de décision : le suivi constant des métriques DORA aide les organisations à s’appuyer sur des données concrètes pour comprendre l’état actuel de leur processus de développement et prendre des décisions sur l’amélioration. Et comme DORA incite les équipes DevOps à se focaliser sur des indicateurs spécifiques plutôt que de tout superviser, il leur devient plus facile d’identifier les goulots d’étranglement dans leur processus, de concentrer leurs efforts sur leur résolution et de valider les résultats. Une amélioration de la vitesse et de la qualité des livraisons, qui repose sur les données plutôt que sur l’instinct, en découle.
- Valeur accrue : les équipes d’élite et hautement performantes peuvent être sûres d’une chose : elles apportent de la valeur à leurs clients et elles ont un impact positif sur l’entreprise. Les métriques DORA donnent également aux équipes les moins performantes une vision claire des obstacles qui freinent leurs processus et les aident à identifier une marche à suivre pour offrir davantage de valeur.
- Amélioration continue : les équipes DevOps peuvent comparer leurs performances sur la base des métriques DORA et découvrir quelles habitudes, politiques, processus, technologies et autres facteurs entravent leur productivité. Les quatre métriques clés aident l’organisation à se fixer des objectifs pour optimiser les performances de l’équipe et mettent en évidence les moyens les plus efficaces d’y parvenir.
Les métriques DORA peuvent améliorer la prise de décision, la valeur offerte et les processus en général.
Si les métriques DORA constituent un bon point de départ pour évaluer les performances de vos pratiques de livraison de logiciels, elles peuvent aussi présenter certains défis. Les métriques peuvent varier considérablement d’une organisation à l’autre, empêchant d’évaluer avec précision les performances de l’entreprise dans son ensemble et de les comparer aux autres. Chaque métrique repose généralement également sur la collecte d’informations réparties dans plusieurs outils et applications. Pour déterminer le délai de rétablissement du service, par exemple, vous devrez peut-être recueillir des données auprès de PagerDuty, GitHub et Jira. Et les choses se compliquent encore quand les outils utilisés varient d’une équipe à l’autre.
Comment mesurer la réussite du DevOps avec DORA ?
DORA utilise ces quatre métriques clés pour identifier les équipes d’élite, hautement performantes, intermédiaires et faibles. Le rapport sur l’état du DevOps a montré que les équipes de niveau « élite » déploient du code 208 fois plus souvent et affichent un délai de modifications 106 fois plus court de la validation au déploiement, un délai de rétablissement 2 604 fois plus faible et un taux d’échec des modifications 7 fois inférieur à celui des équipes faibles. Les équipes d’élite sont également deux fois plus susceptibles d’atteindre ou de dépasser leurs objectifs de performance organisationnelle.
Comment mesurer et améliorer le MTTR avec DORA ?
Le MTTR est calculé en divisant le total des temps d’arrêt sur une période définie par le nombre total d’interruptions. Par exemple, si un système subit trois défaillances par jour et que les interruptions réunies entraînent une heure d’arrêt, le MTTR sera de 20 minutes.
MTTR = 60 min / 3 interruptions = 20 minutes
Le MTTR commence au moment où une interruption est détectée et se termine lorsque le service est rétabli pour les utilisateurs finaux. Il englobe le temps de diagnostic, le temps de réparation, les tests et toutes les autres activités.
Selon DORA, le MTTR est une mesure de la stabilité du processus de développement continu d’une organisation ; il est couramment utilisé pour évaluer la rapidité avec laquelle les équipes résolvent les défaillances dans le pipeline de livraison continue. Un MTTR faible indique qu’une équipe peut rapidement diagnostiquer et corriger les problèmes, limitant ainsi leur impact sur l’entreprise. À l’inverse, un MTTR élevé indique que la réponse d’une équipe face aux incidents est lente ou inefficace, et que la moindre défaillance peut entraîner une interruption de service importante.
Il n’existe pas de solution miracle pour améliorer le MTTR, mais on peut l’infléchir en suivant certaines bonnes pratiques :
- Comprenez vos incidents : la première étape pour réduire le MTTR consiste à comprendre la nature de vos incidents et de vos échecs. Les logiciels d’entreprise modernes peuvent proposer une vue consolidée de vos données cloisonnées afin de produire une métrique MTTR fiable qui vous informera sur les facteurs qui y contribuent.
- Assurez une supervision étroite : plus tôt vous pouvez identifier un problème, meilleures sont vos chances de le résoudre avant qu’il n’affecte les utilisateurs. Une solution de supervision moderne fournit un flux continu de données en temps réel sur les performances de votre système, les affiche sous la forme d’un tableau de bord centralisé et lisible, et vous alerte de tout problème.
- Créez un plan d’action de gestion des incidents : généralement, les entreprises privilégient l’une des deux approches suivantes : des réponses ad hoc, souvent inévitables pour les petites entreprises à court de ressources, ou des procédures et des protocoles plus rigides, privilégiés par les grandes entreprises. Quelle que soit la forme que prend votre plan, il doit mentionner clairement les personnes à informer lorsqu’un incident se produit, préciser comment le documenter et indiquer les mesures à prendre pour y remédier.
- Automatisez votre système de gestion des incidents : certes, un simple appel téléphonique peut fonctionner lorsqu’un incident de faible priorité se produit pendant les heures de bureau. Mais lorsqu’un incident majeur survient, vous devez vous assurer que toutes vos bases sont couvertes – en particulier en dehors des heures de bureau. Un système automatisé de gestion des incidents, capable d’envoyer des alertes par téléphone, SMS et e-mail à tous les intervenants désignés à la fois, est indispensable pour organiser une réponse rapide.
- Formez les membres de l’équipe pour différents rôles d’intervention : quand une seule personne est dépositaire des connaissances relatives à un système ou une technologie, votre organisation est vulnérable. Et si ce système subit une défaillance pendant qu’elle est en vacances ? Si plusieurs ingénieurs maîtrisent chacun plusieurs fonctions pertinentes, votre équipe sera mieux armée pour répondre efficacement, peu importe qui est d’astreinte.
- Profitez de la puissance de l’IA : l’AIOps aide les équipes DevOps à mieux réagir face aux défaillances de production et à réduire leur MTTR. Plus précisément, l’AIOps peut détecter les problèmes avant qu’ils n’affectent les utilisateurs, en hiérarchisant les incidents par criticité, en corrélant et en contextualisant les incidents connexes, en les signalant aux membres de l’équipe d’intervention appropriés et en automatisant les mesures de correction.
- Mettez en place une procédure de suivi : une fois qu’un incident est résolu, il est important de faire un point avec tous les membres clés de l’équipe pour déterminer comment et pourquoi le problème s’est produit, puis élaborer une stratégie pour éviter qu’il ne se reproduise. Dans le DevOps, cela prend généralement la forme d’un examen post-incident impartial, qui analyse à la fois les facteurs techniques et humains de la réponse pouvant être améliorés. En fin de compte, cette pratique se traduit par une meilleure réponse aux incidents et une réduction du MTTR, mais aussi par l’émergence d’idées plus innovantes et de meilleures applications.
Quelle est la place de DORA dans la méthode agile ?
Dans la méthode agile, les métriques DORA sont utilisées pour améliorer la productivité des équipes DevOps ainsi que la vitesse et la stabilité du processus de livraison. DORA vient appuyer l’un des objectifs d’agile : fournir plus rapidement de la valeur client en diminuant les obstacles grâce à l’identification des goulots d’étranglement. Les métriques DORA fournissent également un mécanisme pour mesurer les performances de livraison : les équipes peuvent ainsi évaluer en permanence leurs pratiques et leurs résultats et réagir rapidement aux changements. Pour toutes ces raisons, les métriques DORA conduisent à des décisions fondées sur des données et favorisent une amélioration continue.
Que sont les métriques de flux ?
Les métriques de flux sont un cadre qui vise à mesurer la valeur fournie par un flux de valeur produit et la vitesse à laquelle elle est offerte du début à la fin. Si les métriques de performance traditionnelles se concentrent sur des processus et des tâches spécifiques, les métriques de flux mesurent de bout en bout le flux de l’activité et ses résultats. Les organisations peuvent ainsi localiser les obstacles présents dans le flux de valeur qui empêchent les résultats souhaités.
On mesure les flux de valeur à l’aide de quatre métriques principales :
- la vitesse du flux mesure le nombre d’éléments terminés sur une période définie pour déterminer si la génération de valeur accélère,
- le temps de flux mesure le temps qui s’est écoulé entre le début et la fin d’un élément pour évaluer le temps de mise sur le marché,
- l’efficacité du flux mesure le rapport entre le temps d’activité et le temps de flux total pour identifier tout gaspillage dans le flux de valeur,
- la charge de flux mesure le nombre d’éléments présents dans un flux de valeur afin d’identifier la sur-utilisation et la sous-utilisation des flux de valeur.
Les métriques de flux aident les organisations à voir ce qui circule dans l’ensemble de leur processus de livraison de logiciels du point de vue du client comme de celui de l’entreprise, quelles que soient les méthodologies de livraison de logiciels utilisées. On obtient ainsi une vision plus claire de l’impact de la livraison des logiciels sur les résultats de l’entreprise.
Quelles sont les principaux outils pour exploiter les métriques DORA ?
Une fois que vous avez automatisé le suivi des métriques DORA, vous pouvez commencer à améliorer les performances de livraison de vos logiciels. Plusieurs outils de suivi des métriques d’ingénierie capturent les quatre métriques clés de DORA, notamment :
- Faros,
- Haystack,
- LinearB,
- Sleuth,
- Velocity par Code Climate.
Pour bien choisir votre outil de suivi des métriques, veillez à ce qu’il s’intègre aux principaux systèmes de livraison de logiciels : CI/CD, suivi des problèmes et supervision. Il doit également afficher les métriques sous une forme claire et lisible afin que les équipes puissent rapidement extraire des informations, identifier les tendances et tirer des conclusions à partir des données.
Comment prendre un bon départ avec les métriques DORA ?
Pour exploiter les métriques DORA, commencez par collecter des données. Il existe de nombreuses solutions de collecte et de visualisation des données sur le marché, dont celles mentionnées ci-dessus. Le point de départ le plus simple, cependant, reste le projet open source Four Keys de Google, créé pour aider les équipes DevOps à générer des métriques DORA. Four Keys est un pipeline ETL qui importe, dans Google DataStudio, des données de Github ou d’un référentiel Gitlab via les services Google Cloud. Les données sont ensuite agrégées et compilées au sein d’un tableau de bord rassemblant des visualisations des quatre métriques DORA clés, permettant aux équipes DevOps de suivre leurs progrès au fil du temps.
En bref : les métriques DORA sont la clé pour accroître la valeur commerciale de votre pratique de livraison de logiciels
Les décisions fondées sur les données sont essentielles pour améliorer les performances de livraison de logiciels. Les métriques DORA vous donnent une évaluation précise de la productivité de votre équipe DevOps et de l’efficacité de vos pratiques et processus de livraison de logiciels. Chaque équipe DevOps doit s’efforcer d’aligner le développement de logiciels sur les objectifs commerciaux de son organisation, et la mise en œuvre des métriques DORA constitue une première étape essentielle dans cette démarche.
Les 5 pratiques fondamentales du DevOps
Qu’est-ce qui distingue les équipes DevOps performantes de celles qui échouent ? Ces 5 pratiques fondamentales.