Hva er og hvorfor trenger man DevOps
Hvem kjenner seg vel ikke igjen i den evige konflikten mellom å respondere raskt på nye forretningskrav og det å tilby stabile og forutsigbare systemer/produkter.
Velger man den ene veien kommer man kanskje først til markedet med produktet, men teknisk gjeld, rutinemessige workarounds og komplekse systemer som det tar tid å gjøre endringer i er ofte baksiden. Den andre veien fører til gode systemer/produkter, men potensialet til selve produktet er kanskje ikke så stort lenger når det endelig er satt i drift.
For mange vil DevOps være løsningen, og selv om det krever endel investeringer er oppsiden stor for de som klarer å få det til. For femte år på rad gir DevOps Research And Assessment LLC og Puppet Inc ut State of DevOps rapporten som tar for seg forbedringspotensialet ved bruk av DevOps. Basis for rapporten er en evaluering av mer enn 25 000 ansatte innen IT verden over, og funnene viser at gevinstene for de som klarer å implementere DevOps og går fra lav til høy ytelse er store.
Blant annet ble det rapportert 200 ganger hyppigere utrulling, 24 ganger raskere gjenoppretting av systemer etter feil, 22% mindre ikke-planlagt arbeide, 3 ganger lavere feilrate, 2555 ganger raskere leveringstid og 2.2 ganger høyere sjanse for at en ansatt vil anbefale arbeidsplassen til andre.
Så hva er DevOps? Det er handler om å innføre Lean prinsippene kjent fra Toyota til den teknologiske verdikjeden, og selve ordet er en forkortelse for «software DEVelopment» og «information technology OPerationS». De tre hovedprinsippene for å tilnærme seg DevOps er flyt, tilbakemelding, kontinuerlig læring og eksperimentering.
Flyt handler om å minimere risiko i forbindelse med utrulling gjennom bruk av prinsipper fra kontinuerlig leveranse som blant annet innebærer:
- On-demand automatisk opprettelse av miljø for utvikling, test og produksjon
- Streng versjonskontroll
- Automatisk bygg, test og integrasjon av kode
- Senke risiko ved å gå fra “Monolithic” til “Microservice” arkitektur
Tilbakemelding handler om å bruke overvåkning av applikasjoner og miljøer for å oppdage feil tidlig, forutse hendelser og muliggjøre en sikker leveranseflyt. Det handler også om endring av kultur:
- Kutte byråkrati og legge mer ansvar på utviklere og peerer
- Bruke A/B testing i forbindelse med brukeropplevelse
- Peer programming
- Økt forståelse mellom utvikling og drift (f.eks. ved rotasjon)
Kontinuerlig læring og eksperimentering handler om å:
- Konvertere lokale oppdagelser til globale forbedringer
- Sette av tid i organisasjonen til forbedring og læring
- Fremprovosere feil i produksjon for å skape motstandsdyktighet
- Etablere en rettferdig kultur som fokuserer på å lære av feil fremfor å straffe de som forårsaket feilen
Så hvor begynner man? Begynn i det små med en engasjert gjeng og test det ut på en egnet verdikjede.
Anbefalt lesestoff:
2016 State of DevOps Report – https://puppet.com/resources/whitepaper/2016-state-of-devops-report
The DevOps Handbook – http://itrevolution.com/devops-handbook
Anbefalte kurs:
Lean Yellow Belt – http://egdeconsulting.wpengine.com/arrangement/lean-yellow-belt-sertifisering/
Lean Green Belt – http://egdeconsulting.wpengine.com/arrangement/lean-green-belt-sertifisering/