Hvad er CI/CD?

Af Weapp · Opdateret

CI/CD er den automatiserede pipeline fra kodeændring til idriftsat funktion: at bygge, teste og frigive software uden manuelle håndgreb. CI (continuous integration) fletter og tester ny kode løbende, og CD (continuous delivery) tager den hele vejen til produktion. Gevinsten er små, hyppige releases med lavere risiko end store, sjældne.

CI/CD er en forkortelse som udviklere tager for givet, men som sjældent bliver forklaret for den der bestiller softwaren. Alligevel er det en af de arbejdsformer der mest direkte påvirker hvor hurtigt og trygt I får nye funktioner. Her er hvad det betyder og hvorfor du bør interessere dig for det.

Et samlebånd for kode

CI/CD er det automatiserede flow der tager en kodeændring hele vejen til en idriftsat funktion: at bygge, teste og frigive software uden manuelle håndgreb. Tænk på det som et samlebånd på en fabrik. En ændring lægges ind i den ene ende, og ud af den anden kommer en testet, færdig funktion i produktion uden at nogen behøver at skrue noget sammen i hånden undervejs.

Alternativet, at bygge, teste og idriftsætte manuelt, er langsomt og risikabelt. Hvert manuelt trin er en kilde til menneskelige fejl, og det afholder teamet fra at frigive ofte. CI/CD automatiserer de trin væk så det at frigive noget nyt bliver hverdag i stedet for en nervøs begivenhed.

Forkortelsen rummer to dele, og de er værd at skelne mellem.

CI og CD hver for sig

CI (continuous integration) handler om at flette ny kode sammen løbende. Så snart en udvikler laver en ændring, bliver den integreret med resten af koden og testet automatisk. Pointen er at opdage problemer med det samme mens de er små og lette at rette, i stedet for at lade fejl hobe sig op i det stille indtil alt skal samles til sidst.

CD (continuous delivery) tager over hvor CI slutter og fører den testede kode videre mod produktion, også automatisk. I sin fulde form (continuous deployment) går en godkendt ændring hele vejen ud til brugerne af sig selv. Kernen er at vejen fra “koden virker” til “koden er i drift” skal være kort og pålidelig.

Sammen danner de et ubrudt flow der automatisk gentages igen og igen: ændre, integrere, teste, frigive.

Gevinsten for dig som kunde: Lidt og ofte slår meget og sjældent

Det her er ikke kun teknisk hygiejne. Det påvirker direkte hvad I får ud af det som kunde. Den centrale indsigt er at små, hyppige releases er tryggere end store, sjældne.

ReleasemønsterKonsekvens
Ofte og lidt (CI/CD)Let at se hvad der forårsagede en fejl, hurtig rettelse, lav risiko
Sjældent og megetMange ændringer blandes, svært at fejlsøge, højere risiko ved hver release

Frigiver man én lille ændring ad gangen, er det nemt at udpege hvad der gik galt hvis noget driller, og at rette det hurtigt. En stor release der samler måneders arbejde, blander snesevis af ændringer på én gang. Går noget galt, bliver det et detektivarbejde at finde årsagen, og skaden når at blive større. Med CI/CD når nye funktioner og rettelser brugerne oftere og med mindre risiko, og teamet bruger sin tid på at bygge i stedet for på manuelt at presse releases ud.

Forestil dig forskellen helt konkret. Et team uden CI/CD samler tre måneders ændringer sammen og frigiver det hele en fredag aften. Noget går galt, men hvilken af alle ændringerne der forårsagede det, er umuligt at vide med det samme, og weekenden går med fejlsøgning under pres. Et team med CI/CD havde i stedet frigivet hver lille bid løbende i de tre måneder. Var noget gået galt undervejs, havde det vist sig med det samme, koblet til netop den ændring, og det kunne være blevet rettet på minutter. Det er det samme arbejde, men med dramatisk forskellig risiko.

Spørgsmålet du skal stille din leverandør

Du behøver ikke forstå de tekniske detaljer for at aflæse om en leverandør har styr på det her. Det er nok med ét spørgsmål:

Hvor lang tid går der hos jer fra en godkendt ændring til den er i produktion?

Svaret siger overraskende meget. Er der tale om minutter eller timer, har de sandsynligvis et modent, automatiseret flow og kan frigive trygt og ofte. Er der tale om uger, med manuelle trin og særlige “releasevinduer”, tyder det på en tung og risikabel arbejdsform. Det er et enkelt spørgsmål der afslører mere om hvordan et team faktisk arbejder end mange dybt tekniske diskussioner.

Vil I have hjælp til at sætte et flow op der gør jeres releases hurtige og trygge, tager vi hos Weapp gerne den del med i systemudviklingen fra start.

Ofte stillede spørgsmål

Hvad står CI og CD for?

CI står for continuous integration: at ny kode løbende flettes sammen med resten og testes automatisk så fejl opdages tidligt. CD står for continuous delivery (eller deployment): at den testede kode automatisk føres videre mod og ud i produktion. Sammen danner de et ubrudt, automatiseret flow fra ændring til idriftsat funktion.

Hvorfor er små, hyppige releases bedre end store, sjældne?

Fordi risikoen falder. Frigiver man én lille ændring ad gangen, er det let at se hvad der forårsagede en fejl, og hurtigt at rette den. En stor release der har samlet måneders arbejde, blander mange ændringer, bliver svær at fejlsøge og sætter mere på spil når noget går galt. Ofte og lidt slår sjældent og meget.

Hvad får jeg som kunde ud af CI/CD?

Hurtigere og tryggere levering. Nye funktioner og rettelser når brugerne oftere og med mindre risiko, og teamet bruger tiden på at bygge i stedet for på manuelle releases. For dig som kunde betyder det kortere vej fra idé til virkelighed og færre ubehagelige overraskelser ved idriftsættelsen.

Kræver CI/CD at man har microservices eller cloud?

Nej. CI/CD er en arbejdsform og et sæt automatiserede trin der fungerer for de fleste systemer, uanset arkitektur. Det passer lige så godt til en monolit som til microservices og kan køre i skyen eller på egen infrastruktur. Det er princippet, at automatisere vejen fra kode til drift, der er pointen, ikke en bestemt teknologi.

Hvilket spørgsmål skal jeg stille min leverandør?

Spørg hvor lang tid der går fra en godkendt ændring til den er i produktion. Svaret afslører meget. Timer eller minutter tyder på et modent, automatiseret flow. Uger tyder på manuelle, risikable releases. Det er et enkelt spørgsmål der siger mere om leverandørens arbejdsform end de fleste tekniske detaljer.