Hopp over navigasjon

Kontinuerlig levering vs. forløpende utrulling

Øk farten på høykvalitetskode til kunder med disse to automatiseringspraksisene.

Hva er kontinuerlig levering og kontinuerlig utrulling?

Sammen med kontinuerlig integrering er kontinuerlig levering og kontinuerlig distribusjon praksiser som automatiserer faser av programvarelevering. Disse praksisene gjør det mulig for utviklingsteam å gi ut nye funksjoner, forbedringer og feilrettinger til kundene sine med større hastighet, nøyaktighet og produktivitet.

Kontinuerlig levering og kontinuerlig utrulling har mye til felles. For å forstå forskjellene mellom disse praksisene – og finne ut hvilken man vil implementere – må vi identifisere fasene i programvareleveringen som vi kan automatisere.

Automatisering av programvareleveringsprosessen

Forbrukere krever økt personlig tilpasning og sikkerhet fra produkter. For å oppfylle disse kravene og levere programvare raskere og mer pålitelig kan utviklingsteam ta i bruk en DevOps-kultur.

En DevOps-kultur analyserer silodisipliner og samler personer, prosess og teknologi for å forbedre samarbeid og koordinering. Som et resultat av dette, når kodeendringer når produksjon – og nye verdier når kunden – så snart som mulig.

Selv om utviklings-, IT-drift-, kvalitetsteknikk- og sikkerhetsteamene alle jobber tett sammen under DevOps, forblir programvareleveringsprosessen like kompleks. DevOps organiserer programvarelevering i fire faser: planlegg, utvikle, lever, rull ut og driv.

Programvarelevering i DevOps

Uten automatisering må utviklingsteam manuelt bygge, test og rulle ut programvare, som inkluderer:

  • Kontrollere, teste og validere kode.
  • Slå sammen kodeendringer i hovedgrenen.
  • Gjøre kode klar for bruk.
  • Lage en utrullbar artefakt.
  • Ta kode til produksjon.

Faser å automatisere

Kontinuerlig integrering, kontinuerlig levering og kontinuerlig utrulling er alle praksiser som automatiserer aspekter av utviklings- og leveringsfasen. Og hver praksis tar automatiseringen ett steg videre og starter med kontinuerlig integrering.

Hva er forskjellen mellom kontinuerlig levering og kontinuerlig utrulling

Kontinuerlig integrering

Vi begynner med kontinuerlig integrering for å beskrive kontinuerlig levering og kontinuerlig utrulling. Under kontinuerlig integrering er utviklingsfasen – bygging og testing av kode – helautomatisert. Hver gang du legger inn kode, valideres endringer og slås sammen til hovedgrenen og koden pakkes i en build-artefakt.

Kontinuerlig levering

Kontinuerlig levering automatiserer den neste fasen: lever. Under kontinuerlig levering plasseres artefakten i ønsket miljø og rulles ut hver gang en ny build-artefakt er tilgjengelig.

Kontinuerlig integrering og kontinuerlig levering (CI/CD)

Når team implementerer både kontinuerlig integrering og kontinuerlig levering (CI/CD), er utviklings- og leveringsfasene automatiske. Kode er klar for produksjon når som helst. Alt team trenger å gjøre er å manuelt utløse overgangen fra utvikling til utrulling – noe som gjør den automatiserte build-artefakten tilgjengelig for automatisk utrulling – som kan være like enkelt som å trykke en knapp.

Forløpende distribusjon

Med kontinuerlig utrulling automatiserer du hele prosessen fra kodebekreftelse til produksjon. Triggeren mellom utviklings- og leveringsfasene er automatisk, så kodeendringer gjøres direkte så snart de får validering og består alle tester. Dette betyr at kunder mottar forbedringer så snart de er tilgjengelige.

Kontinuerlig levering vs. kontinuerlig utrulling: hva bør du bruke?

Uansett om du bruker kontinuerlig levering eller kontinuerlig utvikling, så finnes det verktøy for å hjelpe deg.

Før du vurderer hvilke av disse praksisene du vil implementere, må du avgjøre om organisasjonen din har en DevOps-kultur som kan støtte dem. Fordi DevOps-team bestreber seg på å automatisere hele programvareleveringsprosessen, er ikke spørsmålet «hvilken er bedre?» Spør heller, «trenger vi en manuell trigger mellom kontinuerlig integrering og kontinuerlig levering?»

Bruk disse spørsmålene som veiledning mens du ser etter svaret:

  • Kan du rulle ut uten godkjenning fra interessenter?
  • Tillater system- og gatingkravene dine ende til ende-automatisering?
  • Kan du eksponere kundene dine for produksjonsendringer litt om gangen?
  • Responderer organisasjonen din raskt på produksjonsfeil?

Hvis du svarte ja på alle, bør du kanskje vurdere å praktisere kontinuerlig utrulling og automatisere programvarelevering fullstendig – fra kodebekreftelse til produksjon.

Hvis du svarte nei på noen, må du kanskje starte med kontinuerlig integrering og kontinuerlig levering (CI/CD). Du automatiserer opprettelsen av produksjonsklar kode som alltid er en manuell godkjenning fra utrulling. Over tid kan du jobbe mot kontinuerlig utrulling og full automatisering av programvareleveringsprosessen.

Uansett får dere de felles fordelene for hver praksis:

  • Endringer bygges, valideres og testes automatisk.
  • Kode kan alltid rulles ut – slutt på angst på utgivelsesdagen.
  • Utgivelser får raskere tilbakemelding fra interessenter og kunder.
  • Utviklere er mer produktive med færre manuelle og administrative oppgaver.
  • Siden endringer er små og hyppige, er feil sjeldne og skaper minimal ustabilitet.

Verktøy for kontinuerlig integrering, kontinuerlig levering og kontinuerlig utrulling

DevOps-team avhenger av verktøykjeder – serier av tilkoblede programvareutviklingsprogrammer – for å automatisere programvarelevering. Verktøyene du bruker avhengig av hvilken automatiseringspraksis du velger og hvilke faser som praksis automatiserer. Her er noen eksempler.

Start med DevOps i Azure

Oppdag verktøy for kontinuerlig levering og kontinuerlig utvikling – så vel som verktøy for å gjøre andre DevOps-praksiser i skyen enklere.