DevOps og DevSecOps: Introduksjon
Fra «kaste over veggen» til felles ansvar
Før var det vanlig at utviklere skrev kode, «ble ferdige», og så kastet løsningen over til drift. Drift måtte få det til å virke på ekte servere, ofte med hastverk og lite dokumentasjon. Sikkerhet kom gjerne helt til slutt som en egen «sjekk», eller først når noe gikk galt.
DevOps oppstod som en reaksjon på dette: utvikling (Dev) og drift (Ops) jobber tett sammen, bruker automatisering og deler ansvar for at løsningen fungerer i produksjon.
DevSecOps tar dette et steg videre: vi legger til Sec – sikkerhet – som en naturlig del av hele prosessen. Ikke som en «sikkerhetsport» på slutten, men som noe vi tenker på og tester for i alle ledd.
Et enkelt bilde: Leveranseløypa
Tenk deg en løype der koden din beveger seg fra idé til produksjon:
- Plan: Hva skal vi lage, og hvorfor?
- Code: Utviklere skriver og forbedrer kode.
- Build: Koden pakkes (for eksempel i containere).
- Test: Automatisk testing og kvalitetssjekk.
- Release/Deploy: Koden rulles ut til test- og produksjonsmiljø.
- Run: Systemet kjører, brukes av ekte brukere.
- Monitor/Learn: Vi samler data, ser etter feil og forbedringsmuligheter.
I DevSecOps spør vi: Hva gjør vi for sikkerhet i hvert av disse stegene? For eksempel:
- Plan: Trusselmodellering – hva kan gå galt, og hvem kan angripe oss?
- Code: Sikker kode-standarder, kodegjennomgang og SAST (statisk kodeanalyse).
- Build: Skanning av tredjepartsbiblioteker og containere for kjent sårbarhet (SCA, container-scanning).
- Test: DAST (dynamisk skanning), sikkerhetstester i CI/CD-pipelinen.
- Deploy/Run: Sikker konfigurasjon, minst mulige rettigheter, segmentering.
- Monitor/Learn: Varsler, logger, dashboards, hendelseshåndtering.
Minioppgave: Velg en app du kjenner (for eksempel en nettbutikk). Hvor i denne løypa tror du de har mest sikkerhet i dag? Hvor burde de hatt mer?
Hvorfor DevSecOps er ekstra viktig nå
Moderne systemer endrer seg hele tiden: nye versjoner, nye biblioteker, nye integrasjoner mot sky-tjenester. Samtidig blir angrep mer automatiserte og treffsikre: ransomware, lekkasje av persondata, misbruk av API-er, og utnyttelse av sårbare biblioteker er blitt dagligdags.
Uten DevOps og DevSecOps ender vi lett opp med:
- sårbarheter som først oppdages etter produksjonssetting
- lange «change»-prosesser der ingen tør å gjøre endringer
- sikkerhetsteam som blir «showstopperen» alle skylder på
Med DevSecOps får vi i stedet:
- Raskere og tryggere leveranser: sikkerhetssjekker er automatisert og integrert i pipeline.
- Felles ansvar: utvikling, drift og sikkerhet deler måltall og verktøy.
- Bare nok kontroll: vi sikrer det viktigste, uten å kvele innovasjon.
DevSecOps er derfor både en teknisk praksis og en kulturendring.
Grunnprinsipper i DevOps og DevSecOps
- Automatiser alt som er viktig: bygg, tester, skanning, deploy, rollback. Hvis sikkerhet avhenger av at én person husker en manuell sjekkliste, er den sårbar.
- Shift left: finn feil og sårbarheter så tidlig som mulig. Det er billigere og tryggere å rette i kode enn i et produksjonsmiljø som allerede er angrepet.
- Små, hyppige endringer: det er enklere å forstå, teste og rulle tilbake små endringer enn store «big bang»-releaser.
- Minst mulige rettigheter (Least Privilege): tjenester, brukere og noder får bare det de må ha tilgang til – ikke mer.
- Synlighet og læring: gode logger, metrics og dashboards gjør det mulig å se avvik tidlig og lære av hendelser.
- Delte mål: utviklere, drift og sikkerhet måles på de samme tingene: tilgjengelighet, sikkerhet, kvalitet og hastighet.
The Three Ways of DevOps
Gene Kim m.fl. beskriver i The DevOps Handbook tre grunnprinsipper som ofte kalles «The Three Ways of DevOps». De gir et enkelt, men kraftig rammeverk for å forstå hva god DevOps-praksis egentlig handler om.
1. The First Way – Flyt og systemtenkning
Den første veien handler om å få en jevn og rask flyt av arbeid fra Dev til Ops – fra idé til verdi hos brukeren. Vi ser på hele verdikjeden som ett system, og prøver å:
- identifisere og fjerne flaskehalser
- unngå lokale optimaliseringer som skader helheten
- stoppe kjent feil i å gå videre til neste steg
Kilde: Gene Kim m.fl., The DevOps Handbook / IT Revolution.
2. The Second Way – Forsterk feedbacksløyfer
Den andre veien handler om å forsterke tilbakemeldinger fra høyre til venstre – fra drift, sikkerhet og brukere tilbake til utvikling. Målet er å:
- oppdage feil tidlig og nær der de oppstår
- fikses problemer raskt, før de rekker å påvirke mange brukere
- bygge inn automatisk feedback (logger, alarmer, tester) i systemet
Kilde: Gene Kim m.fl., The DevOps Handbook / IT Revolution.
3. The Third Way – Kultur for læring og eksperimentering
Den tredje veien handler om å bygge en kultur for kontinuerlig læring og eksperimentering. Det betyr at team:
- tør å prøve ut forbedringer i små, kontrollerte eksperimenter
- lærer av feil i stedet for å skjule dem
- sprer lokale forbedringer til resten av organisasjonen
Kilde: Gene Kim m.fl., The DevOps Handbook / IT Revolution.
I resten av kurset kan du bruke disse tre veiene som en «sjekkliste»: Når vi jobber med IaC, containere, Kubernetes, CI/CD eller overvåkning – hva gjør vi for flyt, for feedback og for læring?
Den røde tråden i dette kurset
I dette opplegget skal vi ikke bare lese om DevSecOps, men bygge opp en liten, moderne plattform steg for steg. Underveis ser vi hele tiden på hvor sikkerhet kommer inn naturlig.
-
Infrastructure as Code (IaC):
Vi beskriver servere, nettverk og tilgangsregler som kode (for eksempel med Terraform eller Ansible).
Da kan vi:
- gjenskape miljøer likt hver gang
- kodegjennomgå også infrastruktur-endringer
- spore hvem endret hva, og når
-
Containere:
Med Docker pakker vi apper med avhengigheter, slik at de kjører likt lokalt og i produksjon.
Her kommer sikkerhet inn med:
- bruk av «små» basebilder
- container-scanning etter sårbarheter
- minimal tilgang mot nettverk og filsystem
-
Kubernetes og orkestrering:
Vi ser hvordan orkestrering gjør det mulig å skalere, rulle ut, rulle tilbake og isolere tjenester.
Sikkerhetstiltak:
- RBAC (rollebasert tilgangskontroll)
- Network Policies (hvem får snakke med hvem)
- Secrets-håndtering
- Git og versjonskontroll: All endring – kode, konfig, IaC – går via Git. Med pull requests, code review og automatisert scanning for secrets får vi et sikkerhetsnett.
- CI/CD-pipelines: Vi setter opp pipelines som bygger, tester, skanner og deployer automatisk. Sikkerhet legges inn som en naturlig del: SAST, DAST, SCA, container-scanning og policy-sjekker.
- Overvåkning og hendelseshåndtering: Med verktøy som Prometheus, Grafana og en loggstakk (for eksempel ELK) kan vi oppdage mistenkelig atferd, se mønstre og reagere raskt.
Målet er at du til slutt skal kunne se på et system og spørre: Hvor er DevOps-prinsippene? Hvor er DevSecOps-prinsippene? Hva mangler?
Kursoversikt (moduler)
Undervisningsopplegget er delt inn i moduler som bygger på hverandre:
-
1. Grunnleggende DevOps og DevSecOps
Begreper, historie, kultur og hvorfor dette er viktig i dagens systemer. -
2. Infrastructure as Code (IaC)
Automatisering og sikker oppsett av infrastruktur med Terraform/Ansible – inkludert installasjonssteg på Linux. -
3. Docker og container-sikkerhet
Bygging, hardening, skanning og sikker håndtering av containere. -
4. Kubernetes og orkestrering
Orkestrering av containere med fokus på sikkerhet (RBAC, Network Policies, Secrets, Namespaces). -
5. Git og versjonskontroll
Pull requests, code reviews, branching-strategier og automatisert secrets-scanning. -
6. CI/CD-pipelines med innebygget sikkerhet
Automatisering av bygg, test og deploy med integrerte sikkerhetstester (SAST, DAST, SCA, policy-sjekker). -
7. Overvåkning, logging og respons
Hvordan samle inn data, logge og reagere på sikkerhetshendelser med Prometheus, Grafana og en loggstakk. -
8. Kultur, ansvar og videre vei
Hvordan bygge en DevSecOps-kultur i et team eller en organisasjon, og hvordan du kan ta disse prinsippene med videre.
Hver modul kobles til en konkret del av leveranseløypa og viser både hvordan du gjør det i praksis og hvorfor det øker både sikkerhet og kvalitet.