Vad är CI/CD? Continuous Integration & Delivery - Limetta Digitalbyrå
Teknik

Vad är CI och CD?

Med Continuous Integration (CI) och Continuous Delivery (CD) är målet att snabbt kunna leverera kodändringar eller uppdatera ny programvara agilt och automatiserat. Här berättar vi mer om vad det är och hur de två systemen fungerar och jobbar ihop.

Som vi berättat i en annan artikel är både CI och CD en del av DevOps-metodologin. De möjliggör att man kan samarbeta och automatisera flöden. Precis som man inom industrin automatiserar sin produktion för att spara tid och pengar, vill man kunna automatisera webbutveckling. Repetitiva processer kan göras mer effektivare om de automatiseras och mänskliga fel minimeras. Men för att starta upp de automatiserade flödena behöver man kompetenta webbutvecklare som har tillgång till rätt verktyg. Det behövs också metoder för att kunna samarbeta i större utsträckning.

Ett utvecklingsteam består ofta av flera olika personer med olika roller och olika arbetssätt. För att göra det enklare att samarbeta behöver man sätt att kunna kommunicera och samordna sitt arbete. Ofta krävs det olika plattformar och verktyg för att utveckla kod. Då behövs det ett sätt att kunna integrera och validera koden mellan de olika plattformarna. Man behöver helt enkelt göra det enklare att göra kodändringar. Det är här Continuous Integration (CI), eller kontinuerlig integration, och Continuous Delivery (CD), eller kontinuerlig leverans, kommer in i bilden.

Continuous Integration (CI) – automatiserar bygg och testning

Traditionell sett jobbar utvecklare ofta mot flera brancher, där olika projekt eller delar av ett projekt har sin egen branch. Till sist läggs flera brancher ihop till en produkt eller tjänst. Inom Continuous Integration (CI), eller kontinuerlig integration, använder utvecklingsteamet versionshantering och integrerar sitt arbete frekvent till ett och samma ställe, en master branch. Genom att dela upp koden i flera brancher, eller delar, kan man genomföra snabbare release-cykler.

Varje kodändring byggs och verifieras sedan med hjälp av automatiserade tester för att upptäcka fel så tidigt som möjlig. På så vis kan man snabb och tidig få en signal på om något i koden är fel eller behöver göras om. Fel eller buggar är också ofta mer hanterbara ju tidigare de upptäcks och rättas till. Själva testfasen fungerar därmed som en kvalitetssäkring av den slutgiltiga produkten.

Eftersom kontinuerlig integration handlar om att själva byggandet och testningen som sker före leverans, är det också en förutsättning för den kontinuerliga leveransen. Där den kontinuerliga integrationen slutar tar alltså den kontinuerliga leveransen vid. Bägge spelar en viktig roll för att ta sig framåt i utvecklings- och leverans processen.

 

Continuous Delivery (CD) – metoder som automatiserar hela vägen till produktion

Continuous Delivery (CD), eller kontinuerlig leverans, ser till att det finns ett automatiserat sätt att överföra och leverera kodändringar mellan olika plattformar och verktyg. Som vi nämnde tidigare så krävs det ofta olika plattformar och verktyg för att utveckla kod. I och med detta behövs också ett sätt att kunna slå ihop koden från de olika programmen till ett slags kodpaket. CD innebär alltså att man automatiserar release-processen. Själva automatiseringen består av funktioner som driftsätter kod till produktion. Det kan till exempel vara en person, en affärsregel eller ett test som avgör när detta sker. För att minimera effekterna av eventuella fel kan man begränsa leveransen till en delmängd. Användarna får då tillgång till några få nya funktioner varpå man släpper fler allt eftersom.

När man släppt en release tar konfigurationsfasen vid. Här specificerar man sin driftsmiljö med hjälp av ett manifest, som beskriver hur en server ska sättas upp och vad som ska vara installerat på den. På så sätt kan man automatisera en kontinuerlig distribution, det vill säga att servern har samma uppsättning vid nästkommande releaser. Samtidigt är det viktigt att kontinuerligt övervaka processen - även ur ett användarperspektiv. Man kan behöva ställa sig frågor som; Fungerar allt som det ska? Hur ser prestanda och resursutnyttjande ut? Behöver vi mer eller mindre datorkraft – behöver vi skala upp eller ner?

Processen för CI/CD - Continuous Integration & Delivery - Limetta Digitalbyrå

Så går processen till

När man vill ha stabila applikationer som ska kunna uppdateras snabbt och utan störningar, är det viktigt att få till ett konsekvent och automatiserat sätt att bygga, paketera och testa. Det är också därför kontinuerlig integration och kontinuerlig leverans spelar en viktig roll i utvecklingsprocessen.

Processen börjar ofta med att man definierar hur man ska hantera konfiguration och versionshantering. På så sätt får man bättre koll på vilka funktioner och vilken kod som är redo för test och produktion. Testning i sin tur sker ofta i slutet av varje sprint. Nyckeln här ligger i automatiserade tester där man med hjälp av statuskoder blir varse om eventuella problem eller verifierar att man gjort rätt. Till slut tar den kontinuerlig leveransen vid och är den automatisering som får ut applikationer till leveransmiljöer.

6 fördelar för dig som kund:

  • Med automatisering kan vi minimera antalet fel som kan inträffa. Inte minst då man genom CI och CD jobbar i iterativa loopar. För dig som kund innebär det ett kostnadseffektivt arbetssätt som spar både tid och pengar.
  • En teknisk fördel är att CI och CD kan släppa små kodpaket samtidigt. Små kodpaket är enklare att hantera än stora kodpaket, inte minst om man upptäcker fel. Även det här kan spara projektet både tid och pengar.
  • Med snabba release-cykler kan fel upptäckas redan i ett tidigt stadie och kan därmed åtgärdas snabbare. Det här leder till att vi kan hålla ett högre arbetstempo och får färre större driftstörningar. För dig innebär det att dina kunder påverkas i mindre utsträckning, och därmed hela din affär.
  • Både underhåll och uppdateringar är en viktig del i att skapa framgångsrika produkter. Med CI och CD blir allt enklare eftersom man har en tydlig arbetsprocess och många automatiserade flöden. Vinsten är att din produkt/tjänst blir mer konkurrenskraftig.
  • Eftersom en stor del utgörs av tester är CI och CD ett utmärkt sätt att få kontinuerlig feedback. Inte bara från beställaren utan också från det egna teamet. Med återkoppling har man möjlighet att förbättra och utveckla sina verktyg, metoder och processer. Som kund leder det i slutändan till bättre produkter.
  • När olika system i en process kan anpassas, integreras och utbyta information går det att skräddarsy och automatisera flödet. Det här kan göra er produkt/tjänst unik och ge stora konkurrensfördelar.

Vad är skillnaden mellan ett agilt arbetssätt, CI/CD och DevOps?

Nu har du förhoppningsvis fått lite bättre koll på vad kontinuerlig leverans och integration innebär. Har du dessutom läst artikeln om DevOps och hört talas om agila arbetssätt kanske du börjar fundera vad skillnaden egentligen är. Liknar de inte varandra en hel del? Jo till viss del. Även om ett agilt arbetssätt, CI/CD och DevOps är olika så påminner en del saker om varandra. Det handlar i det stora hela om att förbättra och utveckla smarta arbetsprocesser för att skapa bättre produkter och tjänster.

Så hur skiljer de sig åt egentligen? Med ett agilt arbetssätt fokuserar man på själva utvecklingsprocessen. Med DevOps fokuserar man på kulturen och samarbetet medan CI/CD handlar mer om metoder och verktyg. Alla tre stödjer varandra i utvecklings- och leveransprocessen och innehåller användbara komponenter som digitala projekt kan dra nytta av. På Limetta har vi erfarenhet av att både använda och införa metoder, verktyg och processer för att öka kvaliteten i våra kunders digitala produkter och tjänster.

Vad är skillnaden mellan ett agilt arbetssätt, CI/CD och DevOps?  - Limetta Digitalbyrå

Sammanfattning

  • CI/CD är en metod för att snabbare leverera kod till utvecklingsmiljöer genom att automatisera mycket av de olika stegen i utvecklingsprocessen. Continuous Integration kan ses som det initiala steget där koden skapas och testas så tidigt som möjligt för att avgöra om koden är tillräckligt bra eller inte. Continuous Delivery handlar istället om själva leveransen av kodpaketet. Det gemensamma målet är att automatisera så mycket som möjligt.
  • När man arbetar i kortare cykler, där man testar och lanserar en mindre mängd kod, blir det lättare att identifiera eventuella problem. Man undviker också att flera jobbar med samma kod som sedan måste slås ihop.
  • För att snabbt kunna leverera stabila produkter och tjänster i ett högt tempo, krävs både snabba och flexibla metoder. Genom att integrera olika system går det att automatisera processer, analysera och ta smartare beslut. CI och CD ger oss metoder och verktyg för att uppnå det.
  • En CI/CD-process kan se lite olika ut beroende på vilka verktyg som används. Oavsett hur den ser ut, kommer du spara både dig och pengar om du tillämpar mer automatiserade flöden.

 

Vill du veta mer om CI, CD och hur de relaterar till DevOps metodologin kan du läsa vår artikel som handlar om just det. Önskar du öka förändringstakten och höja kvaliteten på din digitala produkt/tjänst - tveka inte att kontakta oss! Vi hjälper dig utifrån era unika behov och förutsättningar.


Vill du veta mer om hur
vi kan hjälpa dig?


Hör av dig till oss så berättar vi mer.

Kontakta oss


Läs även

Hör av dig!

Vill du komma i kontakt med oss?
Fyll i formuläret så hör vi av oss så fort vi kan.