DevOps, CI, CD – vad betyder det egentligen?

17 mars, 2017

De senaste åren har det kommit en våg av olika uttryck för hur vi kan bli en effektivare organisation, få stabilare kodbas och korta ner tiden för vår produkt att nå marknaden. Robert Gistvik, konsult på Frontit, reder ut begreppen, deras inbördes relation till varandra och ger några tips för att komma igång.


DevOps

Vi kastar oss rakt in i den bredaste av termerna, DevOps. DevOps är ett resultat av den agila metodikens behov av snabba cykler och handlar om samarbetet mellan utveckling (Dev) och IT Operations (Ops). Det handlar om att möjliggöra en kultur och miljö där det går att bygga, testa och lansera ofta, snabbt och tillförlitligt. Fokus ligger på kulturella och strukturella förändringar med syfte att föra samman de som utvecklar och de som ansvarar för infrastrukturen. Det finns inte ett specifikt verktyg för DevOps utan det är istället en uppsättning av verktyg som används i en så kallad toolchain (se toppbilden) där varje verktyg passar in i en eller flera av faserna.

Notera att kedjan inte har någon riktig början eller slut så resultaten av mätningar och slutsatser av senaste lanseringen ska tillbaka in i planeringsdelen. Tiden mellan en planering till nästa beror helt och hållet på vilka förutsättningar ens system har och vad man vill uppnå, men hela DevOps-tanken bygger på att korta den så mycket det går.

DevOps toolchain – By Kharnagy – Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=51215412

Continuous integration (CI)

Målet med continuous integration är att minska antalet komplexa kodsammanslagningar genom att kontinuerligt slå ihop koden som utvecklas till en gemensam kodbas, helst så fort någon ny funktionalitet eller del av funktionalitet blivit klar. Utöver att koden samlas ihop kontinuerligt ska den även byggas och testas automatiskt vid varje incheckning med enhetstester (se min tidigare artikel om testautomatisering) för att se att den nya koden inte ger några oväntade följder. CI är en vital del för att kunna uppfylla Create-delen (och delvis Verify-delen) i DevOps toolchain.

Continuous delivery & deployment (CD)

Dessa begrepp blandas ofta ihop dels med huvudtermen DevOps, men även med varandra. De är liknande men med en viktig skillnad. Med continuous delivery avses att varje bygge teamet levererar kan släppas ut i produktion, men det är däremot inte säkert att så blir fallet på grund av andra skäl, t ex affärsmässiga. Continuous deployment på sin sida betyder att det är just det som görs. Alla byggen som går igenom med godkänd status kommer att läggas ut i produktion. Dessa metoder kopplas till Verify- (delvis), Package-, Release- och Configure-delararna i DevOps toolchain.

Båda dessa upplägg kräver väl utbyggd testautomatisering (artikel om det kommer senare) för att kunna vara framgångsrika.

Vinster med DevOps

I kvalitetssammanhang så kan man prata om att “Man blir vad man mäter”. Samma princip kan tillämpas i detta område. Med DevOps kan verksamheten styras åt det håll som är önskvärt. Är det viktigaste målet att snabbt kunna få ut sina releaser så finns det verktyg för det, men DevOps kan lika gärna användas till att enbart höja sin produkts kvalitet. Att börja med DevOps innebär alltså lite kort att få bättre koll på sin leveransprocess, skapa en medvetenhet om hur verksamheten fungerar och förhoppningsvis öka samarbetet mellan avdelningar.

Komma igång med DevOps

Som med alla förändringar så är det viktigt att börja med att sätta upp mål över vad som ska uppnås och göra en analys av nuläget och de förutsättningar som finns. Ta gärna hjälp av någon extern person som kan se på er organisation på ett objektivt sätt.

Några frågor att ställa sig innan man sätter igång:

  • Hur kort tid till marknad behöver vi ha?
  • Vilka bitar har vi på plats redan idag?
  • Vad i processen saknar vi helt?

Det viktigaste är inte att allt blir gjort på en gång eller perfekt från början utan börja i en ände som verkar lämplig. Jag brukar själv börja med att titta på områden där jag snabbt kan åstadkomma en större förbättring eller i ett område där det redan finns en bra grund att stå på.

Vill du diskutera detta ämne eller jobba med oss? Hör gärna av dig till Joel Ståhl


 

Dela artikel
Facebook
LinkedIn
E-post