Continuous Integration med applikasjons-oppdateringer kanskje flere ganger daglig

Continuous Integration, Continuous Delivery og Continuous Deployment er begreper som er knyttet til kanskje daglige oppdateringer av applikasjonskode fremfor i store løft en sjelden gang. Continuous Integration har basis i DevOps utviklingskultur som muliggjøres i praksis gjennom DevOps-tilrettelagte skytjenester.

Continuous Integration, Continuous Delivery og Continuous Deployment fremstår intuitivt som en riktig måte å drive programvareutvikling på. Hva innebærer det? Dette blogginnlegget gir deg grunnleggende innsikt på 5 minutter.

Continuous integration er den nye utviklingsmåten

Continuous integration – kontinuerlig integrasjon – er blitt begrepet for den nye måten å utvikle applikasjoner på, ofte også som continuous integration/continuous delivery (CI/CD) eller continuous integration/continuous deployment (også CI/CD).

Før CD/CI (fossefallsmetoden/sekvensiell utvikling)

Tidligere samlet utviklermiljøer opp tilbakemeldinger om feil/bugs og ønsker om ny funksjonalitet. Så ble dette implementert i en ny versjon av programvaren som brukerne fikk distribuert som en oppdatering gjennomgående mange måneder siden forrige gang. Retting av feil og ønsker om funksjonalitet måtte så ligge lenge til neste oppdatering. Derfor måtte absolutt alt huskes på og stemme i det store crescendoet utgivelsen var. Ved oppdateringer sto systemene dessuten stille.

CD/CI en naturlig utviklingspraksis

Continuous integration-praksisen oppleves på mange måter som langt mer naturlig. Gjennom continuous integration kan endringer fra mange ulike utviklere eller utviklingsteam implementeres rett inn i applikasjonen mens den er i full drift, altså uten driftsopphold. I og med at koden fra utviklerne kommer regelmessig, blir det enklere å holde den i en enhetlig form sammenlignet med om kode fra flere kilder kommer i stor bolker.

Mer om applikasjonsdrift

3 X continuous-definisjoner

Continuous Integration

Continuous Integration-måten innebærer at kode integreres sammen i en kontinuerlig prosess i hoved-applikasjonen. På denne måten kan nye kode testes i forhold til applikasjonen og eventuelle andre kode-endringer, så feil eller andre behov for korreksjoner raskt kan bli avdekket. Vanligvis blir miljøet satt opp for automatisk test-gjennomføring og hvor det er fortsatt er mulig å tilføre ny kode mens testene pågår.

Continuous delivery

Continuous delivery er overgangen til et driftsmiljø når utvikleren mener koden er klar. Driftsmiljøet kan være brukertesting (UAT), test/staging eller produksjon. Begrepet har mange likheter med continuous integration, men går et sted videre fordi koden inngår i en større logisk sammenheng.

Continuous deployment

Continuous deployment er overgangen til produksjon så snart koden er klar. Dette er ikke et element som kommer etter continuous delivery, men en annen continuous-form. Ved continuous deployment brukes koden ikke UAT eller staging, men går direkte inn i hovedapplikasjonen når den er klar. Produksjonsmiljøet er klart og åpent for dette som kan skje på få minutter omtrent ved å trykke på «publisér»-knappen på Facebook eller på et nettsted.

I og med at koden ikke er testet mot annen kode eller logisk på forhånd, vil kontroll av funksjon nødvendigvis måtte skje i etterkant av kodeimplementasjonen for eksempel ved funksjonstesting, gjennomgang av logger eller om den oppdaterte applikasjonen gir ønskede effekter som økt netthandel, flere brukerregistreringer, kortere responstid o.a.

Tilrettelegging

På hvilken måte skal man jobbe med continuous integration? Hva er å foretrekke av continuous delivery og continuous integration? Ofte begge deler.

Noen endringer vil man ønske å teste på forhånd av forskjellige årsaker gjennom et continuous delivery-oppsett. Men, andre endringer – som for eksempel en liten, udiskuterbar feilretting – vil man kunne kjøre rett inn i hovedapplikasjonen gjennom continuous deployment.

Orange Business Services kan gi råd om hvordan ulike continuous-prosesser kan tilrettelegges og hjelp til praktisk oppsett av DevOps-teknologi for dette.

Hils på noen fornøyde kunder

Hva er Continuous integration?

  • Continuous integration er betegnelsen på en praksis hvor ny kode fra utviklere og utviklermiljøer blir kontinuerlig et driftsmiljø/applikasjon, enten dette er for brukertesting, teknisk test/staging eller produksjon.
  • Continuous delivery er en continuous integration-variant hvor koden teste i en mellomfase før den settes i produksjon.
  • Continuous deployment er en continuous integration-variant hvor koden går rett i produksjon og måloppnåelse analyseres i etterkant.