CI/CD

Som IT-utvikler, spesielt i en verden av smidig utvikling og hyppige releaser, vil du møte begreper som CI/CD. CI/CD står for Continuous Integration og Continuous Delivery/Deployment, og representerer en moderne tilnærming til programvareutvikling som automatiserer bygge-, test- og distribusjonsprosessen.

Hva er CI (Continuous Integration)?

CI handler om å integrere kodeendringer ofte og kontinuerlig inn i en delt kodebase. Hver gang en utvikler gjør en endring, blir koden automatisk bygd, testet og validert. Dette hjelper med å identifisere og fikse feil tidlig, redusere integrasjonsproblemer og forbedre kvaliteten på programvaren.

Hva er CD (Continuous Delivery/Deployment)?

CD tar CI et steg videre ved å automatisere distribusjonen av programvaren.

  • Continuous Delivery: Gjør programvaren klar for distribusjon til et produksjonsmiljø. Hver endring som passerer testene er klar til å releases med et knappetrykk, men den manuelle godkjenningen gir fortsatt kontroll.
  • Continuous Deployment: Går enda lenger ved å automatisere hele distribusjonsprosessen. Hver endring som passerer testene blir automatisk deployet til produksjon uten manuell intervensjon.

Hvorfor bruke CI/CD?

  • Raskere releaser: Automatisering av bygge-, test- og distribusjonsprosessen reduserer tiden det tar å levere ny funksjonalitet til brukerne.
  • Høyere kvalitet: Hyppige tester og integrasjoner bidrar til å identifisere og fikse feil tidlig, noe som fører til bedre programvarekvalitet.
  • Redusert risiko: Små, inkrementelle endringer reduserer risikoen forbundet med store, komplekse releaser.
  • Økt effektivitet: Automatisering frigjør utviklere fra manuelle oppgaver, slik at de kan fokusere på å utvikle ny funksjonalitet.
  • Bedre samarbeid: CI/CD oppfordrer til bedre samarbeid mellom utviklere, testere og driftsteam.

Verktøy for CI/CD

Det finnes mange verktøy som støtter CI/CD, for eksempel:

  • Jenkins: En populær open-source automatiseringsserver.
  • GitLab CI/CD: Integrert CI/CD-funksjonalitet i GitLab.
  • GitHub Actions: CI/CD-funksjonalitet integrert i GitHub.
  • CircleCI: En skybasert CI/CD-plattform.
  • Travis CI: En annen skybasert CI/CD-plattform.

Eksempel på CI/CD-pipeline

  1. En utvikler pusher kodeendringer til et Git-repository.
  2. CI-serveren oppdager endringen og starter en build-prosess.
  3. Koden kompileres og testes automatisk.
  4. Hvis testene passerer, blir applikasjonen pakket og deployet til et staging-miljø.
  5. Testere verifiserer endringene i staging-miljøet.
  6. Hvis endringene godkjennes, blir applikasjonen deployet til produksjon.

Som IT-utvikler er det viktig å forstå prinsippene bak CI/CD og hvordan du kan bruke verktøy for å implementere en effektiv CI/CD-pipeline.


Relaterte kompetansemål

  • velge og bruke relevante rammeverk og moduler til utvikling
  • beskrive hvilke krav som ulike løsninger stiller til infrastruktur, og hvilke muligheter og begrensninger som følger av infrastrukturen
  • bruke utviklingsstrategier og samarbeide med andre utviklere
  • utforske prosesser knyttet til testing og feilsøking i utvikling av løsninger