- Introduksjon til IT-utviklerfaget
- API og integrasjoner
- Arbeidsmiljø
- Bærekraft
- CI/CD
- Containerteknologi
- Databasebehandling
- Datamodellering
- Datastrukturer
- Debugging
- Designmønster
- DevOps
- Dokumentasjon
- Enhetstesting
- Etikk
- Frontend/Backend
- HTML/CSS/JS
- Maskinlæring
- Nettverk
- Objektorientert programmering
- Personvern
- Pseudokode
- Rammeverk
- Refactoring
- Responsivt design
- Sikkerhet
- Synkron og asynkron programmering
- Teknisk gjeld
- UI/UX
- Versjonskontroll
- Universell utforming
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
- En utvikler pusher kodeendringer til et Git-repository.
- CI-serveren oppdager endringen og starter en build-prosess.
- Koden kompileres og testes automatisk.
- Hvis testene passerer, blir applikasjonen pakket og deployet til et staging-miljø.
- Testere verifiserer endringene i staging-miljøet.
- 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