Menu icon

Vägen till Continuous Delivery

Continuous delivery används inom system­­utveckling och betyder kontinu­erlig leverans.

Continuous delivery är ett begrepp som används inom system­­utveckling och betyder kontinu­erlig leverans. Syftet är att snabbt kunna leverera ny mjuk­vara till kunden. Behovet av Continuous delivery kommer från agila utveck­lings­prin­ciper där man jobbar i korta, fokuserade perioder där man efter varje period levererar ny funktion­alitet till kunden som kan testa av och ge feed­back inför nästa period.

Continuous integration

Continuous delivery är någonting som är tätt relaterat till Continuous inte­gration som är en process som knyter an till käll­kods­hantering. Det normala är att när kod checkas in i käll­kods­hantering så finns det en process som hämtar ut koden, kompil­erar den, kör tester, valid­erar och lagrar arti­fakter (kompilerad kod). På så sätt kan man i slutet av processen få en kvittens på att allt fungerar som det skall.

Continuous delivery kan ta vid där Continuous inte­gration slutar och använda de arti­fakter från varje bygge till att leverera koden i kompil­erad form till en miljö där den kan testas. Det kan vara en intern ut­veck­lings­miljö, en demo-server eller till och med en server i kundens egen server­miljö.

Historiska leverans­processer

Mjuk­varu­leveranser har tradition­ellt varit en manuell process och kan ha bestått i att klippa och klistra filer, använda verktyg som kan synka över filer, jämföra xml-filer rad för rad, jämföra data­baser och generera script som skall köras i en magisk ordning eller batch-script som gör delar av ovan nämnda jobb mer eller mindre till­för­lit­ligt. Till sist hänger dock ändå allt på att personen som gör lever­ansen förstår och kommer ihåg hur allt hänger ihop och inte glömmer något vilket är lättare sagt än gjort, speciellt om det är ett större system med många olika kompon­enter.
Ett annat problem är att veta vilken version av filer som släppts. Utan att ha en process för versions­hantering är det svårt att veta vilken version av källkoden som hör ihop med de filer som ligger lever­erade på en server och därmed också smått omöjligt att göra hotfixar utan att även leverera all ny kod på en gång.

Git flow

(image)