Hvorfor DevOps?

DevOps innebærer et nytt syn på relasjonen mellom utvikling og drift ved at de samme som skriver kode også sitter med ansvaret når koden deres ødelegger noe.

19/11/2018

Hva er DevOps?

DevOps er en relativt ny metodologi for programvareutvikling, ordet var i bruk første gang i 2009, og er satt sammen av Dev — fra Developer (programvareutvikler) og Ops — Operators (driftspersonnel).

DevOps innebærer et nytt syn på relasjonen mellom utvikling og drift ved at de samme som skriver kode også sitter med ansvaret når koden deres ødelegger noe. Driftsavdelingen sitter med ansvaret for at utviklerene har det de trenger for å kunne ta tilstrekkelig ansvar. Noen utviklere og noen fra driftsavdelingen må snakke sammen, kanskje også bli venner, for å definere og vedlikeholde de rutiner og miljøer som understøtter slikt samarbeid.

Eksempelvis vil en utvikler bygge kode og pakke inn i en docker container, en med fot i begge leire vil konfigurere nettverkstopologi i kubernetes, ingress, databaser og slikt, mens en drifter sørger for at kubernetes-clusteret er sunt. Om du velger kubernetes i skyen fremfor i eget datasenter så er det snakk om outsourcing av drift, ikke devops per se.

Alle skal ikke kunne alt. Juniorprogrammerere på et nytt prosjekt trenger egentlig ikke vite så mye om devops, bare vite at når man commiter kode så skjer sånn og sånn. Mange driftere trenger bare vite at hvis raid-kontrolleren går ned så gjør vi sånn og sånn. Men noen må kjenne tilknytningspunktene i detalj, i krysningen mellom leirene finner man «devops-folket».

DevOps er en praksis som har vokst seg til ut fra nødvendighet. Den har ikke oppstått fra en teoretisk basis, selv om mange prinsipper kan benyttes for å forklare hvorfor det funker såpass bra.

Hvorfor DevOps?

DevOps minimerer tilbakemeldingstiden — “feedback loop”. Det skal være kortest mulig tid fra en idé oppstår i produkteiers hode, til utvikler lager kode, og får rullet det ut i produksjonsmiljø og kan motta tilbakemelding. Dermed kan man kjapt få testet ut nye ideer. Dette er sentralt for smidig utvikling, hvor man ikke ønsker å kaste bort tid på detaljplanlegging før man vet om det funker i praksis. Man ønsker å minimere unødvendig arbeid.

To komponenter bidrar til at DevOps korter ned tilbakemeldingstiden, den ene gjelder Dev, den andre Ops.

Dev: Koden må ha høy grad av automatiske tester. Gode tester sikrer at koden er stabil, gjør det man tror den skal gjøre, og ved innføring av nye egenskaper vil man være sikret at ikke de gamle tilfeldigvis forsvinner.

Ops: Automatisk kontinuerlig utrulling av kode. All kode som sjekkes inn rulles automatisk ut til et fungerende miljø, tilgjengelig for brukere. Dette gjør at nye endringer kan rulles ut hurtig og uten menneskelig involvering, smertefritt. Går noe galt kan man lett rulle ut en ny versjon, eller om det er spesielt kritisk, hente tilbake forrige fungerende versjon.

I boken Accelerate :The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations finner man grundige statistiske undersøkelser av hva som gjør utviklerteam effektive. Boken dokumenterer at utviklerteam som benytter stor grad av automatiske tester, og kontinuerlig ruller ut endringer til brukere, kan vise til en meget høy grad av effektivitet.

Hvorfor DevOps? Brukerne er mer fornøyd når endringer kommer hyppigere og med færre feil.

Begynn med DevOps i dag du også! 🙂

Originally published at cowork.no on November 19, 2018.

------------------------------

Hvorfor devops? was also published in
Coworkforce on Medium, where people are continuing the conversation by
highlighting and responding to this story.

Behov for hjelp med din digitale produktreise?
Vi tar gjerne en kaffeprat!