Back to reading lessons
Week 1Day 5

DevOps i Sverige: CI/CD-pipelines och hur de används på riktigt

readingadvanced
PreviousNext
Lektionstext

För inte så många år sedan var mjukvaruutveckling på svenska företag strikt uppdelad i två läger: Utvecklare (Devs) som skrev koden, och Driften (Ops) som ansvarade för att lägga upp den färdiga koden på servern och se till att den inte kraschade. Relationen var ofta fylld av friktion. Utvecklarna ville släppa nya, coola funktioner. Driften ville ha stabilitet och hatade förändringar. Idag är denna mur i princip riven på svenska tech-bolag. Lösningen kallas DevOps – en sammanslagning av Development och Operations. Och hjärtat i DevOps-kulturen är den magiska automationsmaskinen känd som CI/CD-pipelinen.

Kulturen: Du bygger det, du kör det

DevOps är inte en specifik mjukvara, det är en arbetskultur. Den svenska tolkningen av DevOps passar perfekt ihop med den platta hierarkin och filosofin om "frihet under ansvar". Mantrat i Sverige är ofta: "You build it, you run it". Det innebär att teamet som skapar funktionen också bär ansvaret för att drifta den (lägga upp den på servern) och övervaka den i produktion. Du kan inte längre slänga över din kod över en mur och säga "nu är det någon annans problem". Genom att utvecklaren också är ansvarig för driften, byggs robustare, säkrare och mer högkvalitativa system från start.

CI (Kontinuerlig Integration)

Den tekniska metoden för att möjliggöra DevOps stavas CI/CD. Den första delen, CI (Continuous Integration), handlar om att undvika katastrofen där alla utvecklare kodar ensamma i veckor och sedan försöker sätta ihop allt samtidigt (så kallat "merge hell").

På en modern svensk startup skjuter (pushar) en utvecklare upp sin nya kod till förrådet flera gånger om dagen. Så fort koden landar i Git (t.ex. på GitHub eller GitLab), triggas CI-systemet igång. Detta är en automatiserad process. En server vaknar till liv och börjar bygga (build) applikationen. Sedan kör systemet hundratals eller tusentals automatiska tester på koden. Det granskar säkerhetssårbarheter och kontrollerar att koden följer teamets stilmallar (linting).

Detta skapar psykologisk trygghet. Som utvecklare behöver du inte vara livrädd för att din lilla ändring ska råka krascha hela appen. Om du har gjort ett misstag kommer CI-pipelinen att stoppa koden direkt, blinka rött och säga: "Testet misslyckades, din kod kommer inte vidare". I den skamfria svenska kulturen är detta inte ett nederlag – det är nätet som fångar dig.

CD (Kontinuerlig Driftsättning)

Den andra halvan är CD (Continuous Deployment / Delivery). Om CI-testerna blinkar grönt, vad händer då? I företag som Volvo eller banker (där säkerheten är extrem), kan koden nu paketeras och läggas i en kö där en människa manuellt måste godkänna lanseringen (Continuous Delivery).

Men på moderna, snabbväxande företag (som Spotify, Klarna eller NA-KD), används ofta Continuous Deployment. Det betyder att om koden passerar alla tester, läggs den automatiskt upp direkt till kunderna i produktion, helt utan mänsklig inblandning. Detta sker genom containerisering (oftast med Docker) och orkestrering via Kubernetes. Koden packas in i en liten virtuell låda (container) som innehåller precis allt den behöver för att köras på vilken server som helst. Genom att lansera nya versioner av appen femtio gånger om dagen i stället för en gång i månaden, blir varje förändring extremt liten. Blir det fel, är det lätt att se exakt vilken rad kod som orsakade felet och rulla tillbaka den (rollback).

Övervakning (Monitoring) och Larm

När koden är ute i produktion förväntas du som utvecklare ha koll på den. Verktyg som Grafana, Datadog eller Sentry används för övervakning (monitoring). Här kan teamet se exakt hur mycket minne servern drar eller om användarna får felkoder. Om systemet kraschar mitt i natten går det ofta ut ett larm (via tjänster som PagerDuty) direkt till utvecklarens mobiltelefon.

Varför detta är en karriärboost

Om du förstår DevOps och hur en CI/CD-pipeline fungerar, är du värd din vikt i guld på den svenska arbetsmarknaden. Företag är livrädda för tunga, manuella, byråkratiska processer. De vill anställa ingenjörer som förstår vikten av automatisering. När du på en arbetsintervju kan berätta om hur du konfigurerade GitHub Actions för att köra tester automatiskt, och hur det besparade teamet stress och timmar av manuellt arbete, pratar du det språk som varje svensk CTO (Chief Technology Officer) drömmer om att höra.

Complete this lesson

Track progress locally on this device.