Quelles sont certaines méthodes pour mesurer le retour sur investissement pour DevOps?

24

DevOps est complexe et implique de nombreux aspects non déterministes comme la culture et le processus.
Quels sont les moyens de mesurer le succès des initiatives DevOps?
Comment prouver à une entreprise que l'investissement qu'elle a fait rapporte (ou économise) de l'argent réel?

Dave Swersky
la source
Hé Dave, je me demande ce que "tu" veux dire par "mesure", selon l'une des balises que tu as utilisées dans ta question. OMI (pas plus que ça), utiliser uniquement la balise "métrique" (existante) serait plus approprié. Non? Si vous n'êtes pas d'accord (ce qui est bien ...), cela vous dérangerait (brièvement) d'expliquer ce que vous pensez que la différence entre ces 2 balises est (ou devrait être)?
Pierre.Vriens
@ Pierre.Vriens Je suppose que la mesure est l'acte de recueillir des données, alors qu'une métrique est quelque chose que vous mesurez. J'ai supprimé la balise "mesure" car elle est probablement redondante.
Dave Swersky

Réponses:

16

Grande question! La plupart d'entre nous savent qu'investir dans les pratiques DevOps est une poursuite très intéressante pour une multitude de raisons; Cependant, nous ne justifions pas souvent le DevOps sur l'impact sur le résultat net.

Remarque : il s'agit d'une question d'opinion, et ma réponse est également d'opinion.

Tensibai a sagement suggéré que nous trouvions les bonnes mesures, et il a utilisé le time-to-market comme exemple. Il s'agit d'une excellente approche globale.

En tant qu'approche alternative, mon expérience avec les compteurs de haricots est qu'ils n'ont pas besoin - ou veulent nécessairement - connaître la situation dans son ensemble, ils veulent juste une preuve de responsabilité fiscale. Ils veulent voir une tendance dans la bonne direction.

Voici quelques gains fiscaux:

  • calculer les coûts de serveur économisés en tirant parti de la mise à l' échelle automatique dans le cloud
  • pour les sites générateurs de revenus, extrapoler le coût par minute de temps d'arrêt, puis montrer les améliorations dans MTTI et MTTR
  • encore une fois, pour les sites générateurs de revenus, estimez le coût par minute économisé en tirant parti d'une architecture hautement disponible basée sur les incidents passés
  • si vous avez amélioré votre pipeline de génération et de déploiement, montrez que vous avez réduit les régressions et les erreurs de production causées par des erreurs déjà suivies
  • si vous avez apporté des améliorations aux environnements de test des développeurs, ou même aux outils et à la configuration des ordinateurs portables des développeurs, consultez les historiques de validation pour voir si les nouveaux ingénieurs apportent leurs premières contributions plus tôt après leur adhésion
  • effectuer une comparaison complète des coûts entre le cloud et le sur site, un peu comme Gitlab l'a fait récemment , pour justifier vos dépenses d'infrastructure (aka économies!)

Il suffit souvent de montrer que vous êtes soucieux de votre argent et que vous remportez quelques gains nets. J'ai certainement manqué quelques exemples évidents; n'hésitez pas à ajouter des commentaires ci-dessous.

Chasseur des bois
la source
2
Je suis à 1000% derrière cela. Je pense que nous sommes sur le point de changer radicalement de surveillance: je ne me soucie plus de la quantité de CPU ou de RAM utilisée dans une instance donnée, je me soucie de combien je paie pour un groupe d'instances à mise à l'échelle automatique heures supplémentaires. Peu m'importe le nombre de demandes qu'une instance peut gérer, je me soucie du coût de traitement d'une demande. Ce changement de mentalité peut vraiment aider à générer de meilleures métriques pour DevOps, y compris le retour sur investissement.
Adrian
12

La métrique clé d'un pipeline DevOps est Cycle Time (également appelé Lead Time ). C'est le temps qu'il faut pour un changement (ou une demande de changement, suivi jusqu'au début de l'idée). La meilleure illustration de ce concept que je connaisse est tirée du livre "The Goal", qui en parle dans un contexte de fabrication.

La fréquence de déploiement est également utile. Nous voulons que les déploiements soient fréquents dans un pipeline DevOps. Il n'y a pas de mesure magique "1 jour est bon, 2 jours est mauvais"; cela aura besoin d'un contexte historique sur votre projet pour être significatif.

Taille du déploiement : mesuré selon la façon dont vos développeurs mesurent le travail - user stories, story points, quatloos, etc. Encore une fois, vous voulez voir les tendances au fil du temps, pas la valeur absolue.

Entre fréquence et taille, il y a une histoire à raconter. Nos versions deviennent-elles plus rares et plus importantes? Pourquoi? Deviennent-ils plus petits et plus fréquents? Encore une fois, pourquoi?

Expliquant si la tendance fréquence / taille est bonne, nous aurons également besoin du pourcentage de déploiements échoués . Découvrir le «pourquoi» de ces trois mesures vous en dira beaucoup sur la santé du projet.

Mon préféré, bien qu'il s'agisse d'une métrique de vanité, est le temps d'un déploiement trivial . Si vous trouviez la plus petite chose possible à redéployer sur tout le site ... peut-être une faute de frappe au nom du PDG ... à quelle vitesse pourriez-vous passer de l'appel téléphonique de panique à un site déployé? Je dis «vanité» parce que ce n'est vraiment pas prédictif au-delà de ce que discutent les autres mesures ci-dessus, mais je me sens bien quand j'aime la valeur.

Si nous entrons dans la surveillance, il y a un tas de choses différentes que nous pouvons suivre ... des choses globales comme ' Uptime ', à des choses de très bas niveau comme le temps passé à régénérer du HTML personnalisé sur un cycle de demande-réponse ... mais ceux-ci ne sont pas spécifiques à l'instauration d'une culture DevOps.

Ceux-ci ne sont pas directement liés aux dollars ... cela nécessitera plus de connaissances sur votre organisation que je ne peux en offrir dans un forum comme celui-ci; mais ils sont la clé pour COMMENCER à répondre à cette question. Une fois que vous savez que vous êtes en mesure de publier régulièrement des travaux en production en tant que non-événement, vous pouvez commencer à voir combien d'efforts vous perdiez auparavant. Comme l'enseigne le livre "The Goal" (sur la fabrication de pipelines - c'est pertinent), l'optimisation locale peut sembler vous faire économiser de l'argent, mais en fin de compte, cela crée juste de la valeur qui est liée à l'inventaire (fonctionnalités non déployées).

Au-delà de ces conseils, vous devriez jeter un œil au rapport State Of DevOps des dernières années. C'est plein de mesures sur des projets du monde réel que vous pourriez imiter.

David Bock
la source
8

Capitaine évident: en réduisant les délais de commercialisation et les défauts de sortie.

Pour prolonger cette ligne, l'écueil habituel est un changement d'organisation sans aucune référence.

Engager un changement de culture ou d'organisation implique des dépenses pour former et initier les gens à cette nouvelle méthode, cela a un coût en formation mais implique également une perte de productivité car les personnes en train ne produisent rien. C'est la partie investissement du changement culturel.

Pour mesurer un retour sur investissement, vous devez d'abord trouver des mesures pertinentes qui devraient être améliorées (comprendre coûteuse, coûteuse ou source de perte de profit). Cela pourrait être un temps de commercialisation plus court, moins de correctifs après chaque version, un meilleur engagement des clients au sein de votre produit. Les mesures pertinentes dépendront fortement de vos produits.

La mesure d'un retour sur investissement (la vitesse à laquelle vous avez couvert les frais de formation) implique que vous pouvez présenter une évolution factuelle de ces mesures.Par conséquent, avant d'engager un changement, vous devez avoir défini ces mesures et les mesurer de manière objective.
Une fois que vous avez une véritable évolution à montrer, vous pouvez dire si vous avez amélioré quelque chose d'une manière qui a couvert les frais de formation et est devenu plus rentable qu'auparavant.

L'écueil habituel est d'engager le changement avant d'avoir défini des métriques et donc d'évaluer le ROI sur un feeling et non sur des données factuelles.

La productivité peut être une métrique, mais sa mesure est généralement très difficile à faire de manière objective et ne devrait pas être une métrique de première classe pour ce type d'étude.

Tensibai
la source
1

Tard dans le match ici, mais j'ai pensé que je jouerais.

Vous ne pouvez pas gérer ce que vous ne mesurez pas, donc pour commencer, voici les métriques clés que les équipes Devops devraient suivre pour la réponse aux incidents:

  • % De disponibilité :% du temps total disponible = [temps total - temps d'arrêt] / [temps total]
  • MTTR : délai moyen de résolution = [temps d'arrêt] / [# incidents]
  • MTTA : temps moyen pour acquitter = [temps total pour acquitter] / [# d'incidents]
  • MTBF : temps moyen entre les pannes = [temps total - temps d'arrêt] / [# d'incidents]

Ces mesures vous donnent un contrôle de santé de haut niveau de vos opérations et vous aident à identifier où vous devez creuser davantage.

Jetez un œil à l' animation du tableau blanc ici pour un examen plus approfondi du sujet.

Une fois que vous connaissez vos mesures, vous pouvez les augmenter contre le coût des temps d'arrêt . À partir de là, vous pouvez commencer à développer le retour sur investissement de votre équipe et définir des mesures quantitatives pour une amélioration continue.

Yuan Cheng
la source
Ce sont des mesures de fiabilité, qui sont liées à DevOps mais ne suffisent pas. La fiabilité n'est qu'un aspect de DevOps.
Phil
Merci @Phil. C'est un bon point - ce sont en effet des mesures axées sur la fiabilité, qui est un élément important de DevOps, mais certainement pas le tout. J'espère que rester au top de la fiabilité est un bon point de départ, mais ne vous arrêtez pas là!
Yuan Cheng