DevOps-mĂ€tningar – varifrĂ„n man tar data för berĂ€kningar

Ärligt talat skrattade Ivan ofta Ă„t sina kollegers meningslösa anstrĂ€ngningar i övervakningsavdelningen. De gjorde enorma insatser för att genomföra de mĂ€tetal som företagsledningen bestĂ€llde. De var sĂ„ upptagna att de inte ville göra nĂ„gonting mer för nĂ„gon annan.

Men ledningen var alltid missnöjd – de bestĂ€llde stĂ€ndigt nya och nya mĂ€tetal, och slutade snabbt att anvĂ€nda de som redan hade gjorts.

PĂ„ senare tid pratade alla bara om LeadTime – tiden för att leverera affĂ€rsfunktioner. MĂ€tetalet visade ett galet nummer – 200 dagar för att leverera en uppgift. Hur alla gnodde, klagade och lyfte hĂ€nderna mot himlen!

Efter ett tag tystnade oljudet och ledningen kom med en bestÀllning pÄ att skapa ytterligare ett mÀtetal.

Det var helt klart för Ivan att det nya mÀtetalet ocksÄ skulle dö stillsamt i ett mörkt hörn.

Verkligen, funderade Ivan, att kĂ€nna till siffran sĂ€ger ingenting för nĂ„gon. 200 dagar eller 2 dagar – det spelar ingen roll, eftersom man inte kan avgöra orsaken och förstĂ„ om det Ă€r bra eller dĂ„ligt baserat pĂ„ siffran.

Det Àr den typiska fÀllan med mÀtetal: det verkar som om det nya mÀtetalet kommer att förklara livets essens och avslöja en hemlighet. Alla har sÄ stora förhoppningar, men ingenting hÀnder av nÄgon anledning. För hemligheten finns inte i mÀtetalen!

För Ivan var detta ett förflutet stadium. Han förstod att mÀtetal bara Àr en vanlig trÀlinjal för mÀtningar, medan alla hemligheter mÄste sökas i pÄverkanens objekt, dvs. det som formar detta mÀtetal.

För en webbshop kommer pÄverkanens objekt att vara dess kunder som genererar intÀkter, medan för DevOps kommer det att vara teamen som skapar och distribuerar distributioner med hjÀlp av en pipeline.

En gÄng, nÀr han satte sig i en bekvÀm stol i lobbyn, bestÀmde Ivan sig för att noggrant tÀnka pÄ hur han skulle vilja se DevOps-mÀtetalen med tanke pÄ att pÄverkanens objekt Àr teamen.

Syftet med DevOps-mÀtetal

Det Ă€r uppenbart att alla vill minska leveranstiden. 200 dagar – det gĂ„r förstĂ„s inte.

Men hur? Det Àr frÄgan.

Det arbetar hundratals team i företaget, och tusentals distributioner passerar genom DevOps-pipelinen varje dag. Den verkliga leveranstiden kommer att se ut som en fördelning. Varje team kommer att ha sin egen tid och sina egna karakteristika. Hur kan man hitta nÄgot i detta kaos?

Svaret kom av sig sjĂ€lv – vi mĂ„ste hitta problematiska team och förstĂ„ vad som hĂ€nder med dem och varför det tar sĂ„ lĂ„ng tid, och lĂ€ra oss av de "bra" teamen hur man gör allt snabbt. För detta krĂ€vs det att vi mĂ€ter tiden som teamen tillbringar pĂ„ varje DevOps-stĂ€ll.

DevOps-mĂ€tningar – varifrĂ„n man tar data för berĂ€kningar

MÄlet för systemet kommer att vara att vÀlja team baserat pÄ tiden de tar att genomgÄ stÀllena, d.v.s. vi ska i slutÀndan fÄ en lista över team med valda tider istÀllet för siffror.

Om vi fĂ„r reda pĂ„ hur mycket tid som totalt har spenderats pĂ„ varje stĂ€ll och hur mycket tid som har gĂ„tt till spillo mellan stĂ€llen, kan vi hitta teamen, kontakta dem och undersöka orsakerna mer ingĂ„ende för att Ă„tgĂ€rda dem,” tĂ€nkte Ivan.

DevOps-mĂ€tningar – varifrĂ„n man tar data för berĂ€kningar

Hur man berÀknar ledtider för DevOps

För att göra berÀkningarna behövde vi fördjupa oss i DevOps-processen och dess kÀrna.

Företaget anvÀnder ett begrÀnsat antal system, och informationen kan endast erhÄllas frÄn dem och ingen annanstans.

Alla uppgifter i företaget registrerades i Jira. NÀr en uppgift togs i arbete skapades en branch för den, och efter genomförandet gjordes en commit i BitBucket och en Pull Request. Vid godkÀnnande av PR (Pull Request) skapades automatiskt en distribution och sparades i Nexus-lagringen.

DevOps-mĂ€tningar – varifrĂ„n man tar data för berĂ€kningar

DÀrefter rullades distributionen ut pÄ flera stÀllen med hjÀlp av Jenkins för att kontrollera korrektheten av installationen, inklusive automatiserade och manuella tester:

DevOps-mĂ€tningar – varifrĂ„n man tar data för berĂ€kningar

Ivan listade vilka system som kan ge vilken information för att berÀkna tiden pÄ stÀllena:

  • FrĂ„n Nexus – Tiden för distributionsskapande och namnet pĂ„ mappen dĂ€r teamets kod lĂ„g.
  • FrĂ„n Jenkins – Starttid, varaktighet och resultat av varje jobb, namnet pĂ„ stĂ€llet (i jobbets parametrar), stages (steg i jobbet), lĂ€nk till distributionen i Nexus.
  • Ivan beslutade att utesluta Jira och BitBucket frĂ„n flödet, eftersom de relaterade mer till utvecklingssteget och inte till distributionen av den fĂ€rdiga kandidaten pĂ„ stĂ€llena.

DevOps-mĂ€tningar – varifrĂ„n man tar data för berĂ€kningar

Baserat pÄ tillgÀnglig information ritades följande schema:

DevOps-mĂ€tningar – varifrĂ„n man tar data för berĂ€kningar

Genom att veta hur mycket tid som gÄr Ät till att skapa distributioner och hur mycket som spenderas pÄ var och en av dem kan man enkelt berÀkna de totala kostnaderna för att genomföra hela DevOps-flödet (det fullstÀndiga cykeln).

Detta blev de DevOps-mÀtetal som Ivan kom fram till:

  • Antal skapade distributioner
  • Andel distributioner som "kom in" pĂ„ stĂ€llet och "genomgick" stĂ€llet
  • Tid tillbringad pĂ„ stĂ€llet (cykelstĂ€lle)
  • Hela cykeln (total tid för alla miljöer)
  • Jobbens varaktighet
  • StillestĂ„nd mellan miljöerna
  • StillestĂ„nd mellan körningar av jobb i en och samma miljö

Å ena sidan beskrev metrikarna mycket vĂ€l DevOps-pipelinen ur tids perspektiv, Ă„ andra sidan ansĂ„gs de vara vĂ€ldigt enkla.

Nöjd med det vÀl utförda arbetet skapade Ivan en presentation och gick för att presentera den för ledningen.

Han kom tillbaka med en rynkad panna och hÀngande armar.

— Det Ă€r ett fiasko, brorsan — sa den ironiska kollegan med ett leende...

FortsÀttningen kan du lÀsa i artikeln "Hur snabba resultat hjÀlpte Ivan».

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster