Selon IDC Forecast, l’adoption du DevOps en 2020 a été associée à des impacts positifs pour 99 % des organisations interrogées. Pendant que 61 % des entreprises constatent une amélioration notable de la qualité des livrables, 49 % d’entre elles signalent également une réduction significative du temps de mise sur le marché des logiciels et services.
Ces statistiques mettent en lumière l’impact positif du DevOps sur les performances des entreprises, mais comment est-il possible d’évaluer de manière précise et chiffrée l’efficacité d’une transformation DevOps ? Quels indicateurs peut-on récoler pour déterminer la maturité de la pratique de DevOps au sein d’une organisation ?
Méthodologies d’évaluation des transformations DevOps
Le domaine de l’audit des transformations DevOps étant relativement récent, il existe à ce jour peu de méthodologies de collecte de KPIs adaptées aux transformations DevOps. Cette absence de standardisation rend la tâche d’évaluation complexe pour mesurer l’impact réel des initiatives DevOps sur la performance des organisations.
L’une des rares approches existantes et reconnues est celle de l’équipe DORA (DevOps Research and Assessment) de Google Cloud. Cette méthodologie se base sur un questionnaire couvrant trois domaines (technique, processus, culture) et sur le suivi de quatre KPIs :
- Fréquence de déploiement
- Délai d’exécution des changements
- Délai moyen de rétablissement
- Taux d’échec des changements
Bien que la méthode DORA soit un bon point de départ, elle présente des limitations dans son application (ensemble restreint de KPIs collectés, dépendance à un questionnaire) comme dans sa vision.
Nous nous sommes donc inspirés de DORA pour proposer une approche différente en collectant des KPIs de manière raisonnée pour mieux prendre en compte le contexte spécifique de chaque transformation DevOps.
Notre approche
Pour déterminer l’efficacité d’une transformation DevOps, nous mesurons l’amélioration des performances et des résultats au fur et à mesure de l’avancée de la transformation.
Pour mieux appréhender une transformation DevOps, nous la divisons en trois grandes phases séquentielles d’échelle de transformation : Build, Industrialisation et Run.
Nous souhaitons collecter des KPIs pertinents pour chacune de ces phases, ces KPIs étant ventilés sur 4 volets représentatifs du DevOps : Application, Infrastructure, CI/CD (Continuous Integration/Continuous Deployment) et Culture.
Phase 1 – Build
Nous partons d’une situation initiale où les technologies, outils, processus et équipes DevOps n’existent pas au sein de l’organisation.
Cette phase consiste à lancer des projets pilotes et former les équipes en encourageant le droit à l’erreur et la collaboration. Nous souhaitons que la transformation produise rapidement des résultats via la mise en place de pratiques de CI/CD, d’Infrastructure as Code (IaC), et via une première démarche d’automatisation. La surveillance des KPIs débute progressivement pour évaluer les premiers impacts de la transformation.
KPIs recommandés :
- Application : Taux d’utilisation des ressources
- Infrastructure : Taux d’adoption de l’IaC
- CI/CD : Nombre moyen de fonctionnalités livrées par déploiement, taux d’automatisation des déploiements
- Culture : Nombre et fréquence des formations DevOps, nombre de collaborateurs initiés au DevOps
Phase 2 – Industrialisation
Nous partons d’une situation de Build où le DevOps est adopté sur quelques projets. L’automatisation des tâches courantes est uniquement partielle et la gouvernance DevOps est peu structurée.
Cette phase vise à assurer la pérennité des projets DevOps en intégrant des outils DevOps et en atteignant un niveau avancé d’automatisation. Pour atteindre cet objectif, il est recommandé de standardiser les processus DevOps, améliorer la disponibilité des services et applications, et établir une surveillance et une gouvernance DevOps plus rigoureuse.
KPIs recommandés :
- Application : Temps moyen entre les indisponibilités, taux de disponibilité
- Infrastructure : Temps moyen de rétablissement, taux d’échec des déploiements, taux de disponibilité
- CI/CD : Fréquence des déploiements, taux d’échec des déploiements
- Culture : Nombre de projets DevOps, nombre d’intégrés dans la communauté DevOps
Phase 3 – Run
Nous partons d’une situation d’Industrialisation où les performances DevOps sont acquises, mais pas encore maintenues de manière optimale, avec une surveillance et un reporting fragmenté.
Cette phase consiste à garantir des niveaux de disponibilité conformes aux SLA, à intégrer pleinement les enjeux de sécurité dans la transformation, et à réduire les incidents. Le reporting est amélioré et la gouvernance DevOps est renforcée en mettant en place des actions correctives pour assurer une gestion et une amélioration continue des performances.
KPIs recommandés :
- Application : Temps moyen de détection des incidents, nombre de vulnérabilités de l’application
- Infrastructure : Taux de tests de sécurité réussis, temps moyen de détection des incidents
- CI/CD : Taux d’automatisation des tests unitaires et d’intégration, nombre de quality gates et de security gates
- Culture : Nombre de formateurs et de certifiés DevOps, nombre d’évaluations de la maturité DevOps
Conclusion
Évaluer l’efficacité d’une transformation DevOps nécessite une démarche à la fois méthodique et adaptée au contexte spécifique de chaque entreprise.
Nous avons donc choisi de contextualiser les transformations DevOps en différentes phases. Cela nous permet de sélectionner des KPIs appropriés pour chacune de ces phases afin d’évaluer l’évolution et l’impact des pratiques DevOps.
Pour renforcer notre approche, il serait intéressant d’identifier les outils permettant de récolter ces KPIs, et de produire des objectifs chiffrés adaptés à chaque phase de la transformation DevOps.