Comme l'a fait Ivan Metrics DevOps. Commencer

Un jour, Ivan a été convoqué à une réunion pour discuter des mesures DevOps.

Chaque participant a prĂ©parĂ© pour la rĂ©union une liste de certains paramĂštres qui, Ă  son avis, mĂ©riteraient d'ĂȘtre mis en Ɠuvre.

En écoutant les rapports, Ivan a essayé de calculer le nombre de mesures suggérées: 5,10, encore 10 et environ une douzaine d'autres. Il s'est avéré 30 avec quelque chose.

Pour une raison quelconque, l'idée est venue soudainement que les gens se sont simplement réunis sur Google et ont écrit les noms qui leur semblaient intéressants. Apparemment, personne n'a pensé à l'essence des métriques.

Regardant de cÎté, Ivan s'est posé des questions: pourquoi? Pourquoi exactement ces métriques? Que vont-ils vous donner? Il est soudain devenu évident que la réunion a rassemblé des gens qui étaient loin d'avoir une réelle compréhension de la nature des mesures, et que tout se terminerait comme d'habitude, en perdant énormément de temps et en jetant le travail à la poubelle.

C'est devenu triste et insultant. Il est dommage que le temps et l’argent de l’entreprise ne vont nulle part, et il est triste qu’une entreprise utile ne soit pas rĂ©alisĂ©e.

Ivan étudie les métriques depuis longtemps et comprend depuis longtemps que le sujet est trÚs sérieux et complexe, et il est impossible de l'aborder depuis la baie de dériveur en tout cas.

Ce jour-lĂ , la rĂ©union s'est terminĂ©e avec tout et rien - nous avons dĂ©cidĂ© de tout mettre en Ɠuvre en mĂȘme temps (personne ne voulait prendre la responsabilitĂ© du refus, car je ne comprenais pas pourquoi une autre personne avait besoin de ces mesures).

Ivan a décidé de préparer sa vision des métriques DevOps et de s'assurer que chaque métrique y était justifiée, avait un objectif spécifique, était utile et compréhensible.
VoilĂ  ce qu'il a fait ...

Que voulez-vous gérer?


Tout d'abord, Ivan a décidé de penser au PRINCIPAL OBJECTIF, pour lequel les mesures sont faites.
Les livres bien lus Lean Analytics et The Practice of Tao Toyota ont suggéré: choisissez le nombre que vous souhaitez contrÎler comme métrique principale. Ensuite, sélectionnez les composants de ce nombre que vous pouvez influencer en tant que métriques.

L'objectif de DevOps lors de la derniÚre réunion a déclaré la «qualité logicielle», mais le concept de qualité était trÚs vague. Qu'est-ce que la qualité? Comment l'exprimer en un seul chiffre? Quels composants l'affectent?

Malheureusement, la qualitĂ© du logiciel ne peut pas ĂȘtre exprimĂ©e en un seul chiffre.

Quoi qu'il en soit, le but de l'utilisation de DevOps est-il vraiment de qualité?
Il y a quelques années, Ivan a travaillé comme directeur informatique pour une petite entreprise produisant son propre logiciel, et là, il a lancé et utilisé avec succÚs DevOps. Et le but de ce DevOps n'était pas vraiment de qualité. PlutÎt, la qualité aussi. Le seul et principal objectif était d'éliminer le travail manuel lors des déploiements au bal.

En supprimant le travail manuel, il a ensuite atteint une telle accélération et une telle réduction du nombre d'erreurs qu'il est devenu possible de publier des améliorations au moins une fois par minute.

Ainsi, il s'est avĂ©rĂ© que, comme le suggĂšre un DevOps MÉTRIQUE CIBLE en soi

DĂ©lai de livraison


C'est précisément sa diminution ou son augmentation qui montrerait l'effet des décisions de gestion prises.

Le délai de livraison (Time To Market, TTM) a augmenté - mal. Diminué - excellent.
Mais le délai de livraison dépend du volume de la tùche et de la durée du test et de nombreux autres facteurs! Oui, c'est vrai.

Et c'est pourquoi Ivan a dĂ©libĂ©rĂ©ment dĂ©cidĂ© de dĂ©marrer le compte Ă  rebours non pas Ă  partir du moment du codage et de l'analyse, mais Ă  partir du moment oĂč l'assemblage (distribution) a dĂ©jĂ  Ă©tĂ© crĂ©Ă© et est en stockage et qu'il ne reste plus qu'Ă  effectuer une sĂ©rie de vĂ©rifications et Ă  le dĂ©ployer sur un environnement industriel (le soi-disant Livraison continue, CDL).

Il est important ici de développer d'abord un principe, un concept, pensa Ivan, et de l'étendre davantage à d'autres domaines non atteints, car le codage, l'assemblage et toutes les autres étapes de développement affectent également le délai de livraison tout comme l'étape CDL. Faisons-le dans l'un - nous le ferons dans l'autre.

Dans la grande entreprise oĂč Ivan travaillait, les paramĂštres Ă©taient essentiels. Des milliers de dĂ©veloppeurs ont vu le code et des centaines d'assemblages ont Ă©tĂ© rĂ©alisĂ©s quotidiennement, mais personne, personne dans l'entreprise ne savait combien de temps les Ă©quipes passent rĂ©ellement sur DevOps.

Des plaintes de tous cÎtés: DevOps est une poubelle, ça ne marche pas, ça ralentit terriblement, ça ne sert à rien. Mais personne n'avait de vrais chiffres sous la main, et il était tout simplement impossible de prouver ou de réfuter les déclarations des équipes.

C'est cet objectif qu'Ivan s'est fixé - calculer le temps que les équipes passent sur DevOps, et en particulier sur la phase de livraison de l'assemblage.

Cela ne peut pas ĂȘtre le cas, pensa Ivan, si j'ai lancĂ© DevOps une fois et qu'il a donnĂ© un effet instantanĂ©, alors pourquoi n'est-ce pas ici?

La création d'un systÚme de métriques est devenue une question d'honneur pour Ivan.

ContrĂŽlez ce que vous pouvez contrĂŽler


Comment gérer les délais de livraison? Est-ce possible? - a demandé Ivan.
Si nous considérons le délai de livraison comme un nombre, il devient clair qu'il y a des endroits dans le processus DevOps qui affectent de maniÚre significative ce nombre.

La société d'Ivan avait une norme: chaque assemblage avant d'aller au bal était censé passer trois bancs d'essai, sur lesquels divers aspects du logiciel étaient testés.

Naturellement, les assemblages sur eux "sont tombés" en raison d'erreurs, et de nouveaux ont été créés à la place.
Il s'est avéré que les stands sont les éléments clés du délai de livraison total, et ce sont eux qui affectent le temps total, en l'augmentant.

DĂ©lai de livraison = Heure au stand 1 + Heure au stand 2 + Heure au stand 3

En influençant le temps passé par les équipes sur chacun des stands, il sera possible d'influencer le délai de livraison final.

Il restait deux questions simples:

  1. comment calculer physiquement les coûts des équipes sur les stands et
  2. que faire des temps d'arrĂȘt entre les stands (les temps d'arrĂȘt font Ă©galement partie des dĂ©lais de livraison)?

Ivan n'a eu d'autre choix que de plonger dans la jungle de Jenkins et Nexus (logiciel utilisé dans le CDL).

Jenkins et Nexus aident


L'assemblage "Roll" sur le stand a été réalisé avec Jenkins. En fait, Jenkins est un sheduler régulier, comme crontab, mais avec des fonctionnalités avancées.

Jenkins sait comment afficher les journaux de tous les travaux en cours (tùches pour faire rouler l'assemblage sur le support) sous forme de RSS, et il y a un début, une heure de fin et un lien vers un assemblage spécifique.

Il s'est avéré que, à la disposition d'Ivan, des données sur l'heure exacte du début et de la fin des travaux d'assemblage, à savoir il a été possible de calculer facilement et avec précision le temps net passé par les équipes sur les stands.

Et si les donnĂ©es de tous les stands Ă©taient sauvegardĂ©es dans une seule base de donnĂ©es, il Ă©tait alors possible de calculer le temps d'arrĂȘt entre les stands. C'Ă©tait super!

À partir du Nexus (stockage de fichiers rĂ©seau), Ivan allait obtenir la date de crĂ©ation de l'assemblage lui-mĂȘme, etc. dĂ©terminer le moment de son apparition et le point de rĂ©fĂ©rence.

Tout s'est mis en place. Presque.

- Et comment gérer ça, pensa Ivan? ..

À suivre. Objet d'influence

Source: https://habr.com/ru/post/fr433834/


All Articles