CI/CD

CI/CD automatiserar utvecklings-, test- och distributionsprocesser för snabb och pålitlig applikationsleverans, vilket minskar felrisken och ökar produktiviteten. Fördelarna inkluderar högre distributionsfrekvens, minskad risk, lägre kostnader och snabbare återkoppling till utvecklare.

Vad är CI/CD?

CI/CD står för Continuous integration/Continuous Delivery, eller i vissa fall Continuous Delivery, vilket är en samlingsterm för att under korta utvecklingscykler kunna integrera kod med redan utvecklad kod samt snabbt och upprepbart leverera nya versioner av applikationer.  Genom att använda automatiseringstekniker strävar CI/CD efter att minimera tiden från kodutveckling till produktion, vilket revolutionerar applikationsutveckling.

Konceptet slår ihop operations och utveckling så att samma team kan ansvara för kod från utveckling till produktion. Det här görs ofta genom automation av processer som bygge, testning och distribuering av applikationer. Målet är att minimera tiden från då koden är färdigutvecklad tills den kör i produktion.

Det automatiserade bygget paketerar koden och dess beroenden till ett levererbart paket. Det automatiserade testerna verifierar kodens funktionalitet och har fokus på att så tidigt som möjligt identifiera fel. Det här kan involvera testning i olika nivåer i testpyramiden. Den automatiserade distributionen genomför alla de steg som behövs för att leverera applikationen till användaren.

Något som också går att implementera som en del av CI/CD är att återgå till en tidigare version om en levererad version av applikationen inte fungerar.

Vad finns det för fördelar med CI/CD?

Minimera risk
Om man genom CI/CD gör många små leveranser minimerar det även risken att något går fel då skillnaden från den tidigare versionen är väldigt liten. Vilket gör att risken att göra en leverans blir mindre.

Distrubera koden till användaren ofta
Med CI/CD är det lättare att minska arbete som är förknippat med att göra en leverans av en ny version av en mjukvaruprodukt. Det gör det även lättare att gör små leveranser ofta i stället för stora leveranser mer sällan.

Minska kostnaden
Eftersom automation är ett viktigt koncept inom CI/CD så bygger det bort mycket av det jobb som tidigare var förknippat med leveranser. Det här i sin tur gör att kostnaden att göra leveranser minskar.

Tidig återkoppling till utvecklaren om något inte fungerar
Eftersom mycket av integrationen av ny kod och redan existerande kod är automatiserad och automatiskt testning sker direkt. Får utvecklaren direkt respons på om koden går igenom testningen eller inte. Det här göra att om koden inte fungerar så får utvecklaren reda på det, och kan åtgärda det, innan hen hinner byta fokus till nästa uppgift.

Snabbt återhämtning om levererad version inte fungerar
Utifall att en ny version av applikationen som levererats till användaren inte skulle fungera, möjliggör CI/CD det att snabbt och gå tillbaka till en tidigare version där felet inte var introducerat. Det här gör att även det minskar tiden felet kan ha en negativ inverkan på användarnas förtroende till applikationen.

Snabb felkorrigering
CI/CD gör det möjligt att på kort tid efter att ett fel identifierats och åtgärdats det möjligt att snabbt bygga testa och distribuera en ny version.

Infrastructure as Code (IaC)

Automatisering av infrastruktur som kod (Infrastructure as Code, IaC) innebär att man använder programvara för att definiera och konfigurera IT-infrastruktur och molnresurser i en kodbas, som sedan kan användas för att implementera och hantera infrastrukturen på ett konsistent och skalbart sätt.

Vi erbjuder automatisering av infrastruktur som kod genom att använda verktyg och tekniker för att definiera, bygga och hantera er infrastruktur som kod. Detta kan innefatta användning av molnplattformar och tjänster som AWS CloudFormation, Azure Resource Manager eller Terraform.

Standardisera och automatisera er infrastruktur med IaC för ökad säkerhet och effektivitet

Genom att använda IaC kan vi automatisera och standardisera er infrastruktur och säkerställa att den uppfyller er verksamhets säkerhets- och efterlevnadsstandarder. Detta arbete minskar också risken för fel orsakade av den mänskliga faktorn och felaktig konfiguration genom att använda versioner och automatiserad hantering av ändringar.

Det är också önskvärt att implementera Continuous Integration/Continuous Deployment (CI/CD) processer som möjliggör snabb och pålitlig leverans av mjukvara och infrastrukturändringar. Genom att automatisera infrastrukturen som kod och implementera CI/CD kan ni minska tiden och kostnaden för att implementera och hantera er infrastruktur och därmed uppnå en högre grad av skalbarhet och flexibilitet. Naturligtvis erbjuder vi också rådgivning och utbildning för att hjälpa er att förstå fördelarna med IaC och hur ni kan implementera det på ett effektivt sätt i sin organisation.

Kontakta oss för konsultation eller frågor inom DevOps och utveckling

Har du frågor eller behöver hjälp med dina projekt inom DevOps och utveckling? Tveka inte att höra av dig till oss. Fyll i formuläret så återkommer vi till dig inom kort. Vi finns här för att hjälpa dig att ta nästa steg i din digitala utveckling.

Vilka verktyg kan användas för CI/CD?

Det finns olika sätt att implementera CI/CD. Det kan involvera flera verktyg som är integrerade med varandra eller ett verktyg som sköter alla steg.
Några exempel på verktyg som erbjuder CI/CD lösningar är:

  • GitHub Actions
  • GitLab CI/CD
  • Azure Devops
  • Bitbucket Pipelines
  • Jenkins
  • CircleCI
  • ArgoCD
  • Argo Workflow

Hur kommer jag igång med CI/CD?

För att inte göra omställningen för stor så är det bra att börja med att automatisera vissa delar i den existerande utvecklingsprocessen. Att i mån av tid och utan att genomföra för stora ändringar som negativt påverkar den existerande leveranstakten. Det här går att göra genom att inkludera och prioritera in aktiviteter som implementerar delar av CI/CD konceptet i det dagliga arbetet.

Testautomatiseringsexpert

Hampus Hammersberg

Hampus har jobbat med test, testning i CI/CD och TestOps i sex år och brinner för effektiv testning och smarta lösningar som platsar i en modern utvecklingsprocess.

hampus.hammersberg@lemontree.se

Vanliga frågor & svar om CI/CD

Här hittar du svar på de vanligaste frågorna vi får från våra kunder. Vi har samlat information och lösningar på olika ämnen och problem som kan uppstå. Oavsett om det gäller tekniska frågor, produktinformation eller allmänna funderingar, så finns vi här för att hjälpa dig.

Hittar du inte svar på din fråga?
Vad är YAML?2024-02-20T16:24:11+01:00

Ja, det är möjligt. Det går sätta upp olika miljöer för olika operativsystem och bygga och distribuera koden till de olika miljöerna och köra testningen samtidigt.

Vilken typ av testning kan man göra i CI/CD?2024-02-20T16:22:55+01:00

Det går att göra många typer av testning automatiskt som en del av CI/CD.
Några exempel är:

  • Unit tester
  • Integrationstester
  • End2End-tester
  • Lasttester
  • White-box tester
  • Black-box tester
  • Gui-tester
  • Code review
Hur lång tid ska en CI/CD pipeline ta?2024-02-20T16:21:35+01:00

För att utvecklaren ska få så tidig återkoppling som möjligt bör en pipeline inte ta längre än ungefär 10 minuter.