Kontinuerlig levering: En omfattende definisjon
Kontinuerlig levering er en programvareutvikling praksis som legger vekt på kontinuerlig og automatisert levering av programvareapplikasjoner til produksjonsmiljøer. Målet med Continuous Delivery er å gjøre det mulig for programvare utviklingsteam for å levere programvareendringer til brukerne på en rask, pålitelig og bærekraftig måte.
Continuous Delivery er en naturlig videreutvikling av Smidig utviklingsmetodikk. Den bygger på Agile-prinsippet om å levere fungerende programvare ofte ved å automatisere leveranseprosessen og fjerne manuelle inngrep der det er mulig. Continuous Delivery er en viktig del av DevOps, en kulturell og organisatorisk bevegelse som tar sikte på å bryte ned siloer og fremme samarbeid mellom utvikling, drift og andre interessenter.
Kontinuerlig levering innebærer flere viktige fremgangsmåter, blant annet
- Kontinuerlig integrasjon: Praksisen med å integrere kode endringer fra flere utviklere til et felles kodelager på hyppig basis, vanligvis flere ganger om dagen. Kontinuerlig integrasjon er en forutsetning for kontinuerlig levering, ettersom det sikrer at kodebasen alltid er i en fungerende tilstand og klar for automatisert testing og distribusjon.
- Automatisert testing: Bruken av automatiserte testverktøy for å validere programvareendringer før de distribueres til produksjon. Automatiserte tester omfatter enhetstester, integrasjonstester, funksjonstester og andre typer tester som sikrer at programvaren fungerer som forventet.
- Kontinuerlig distribusjon: Praksisen med automatisk distribusjon av programvareendringer til produksjonsmiljøer så snart de har bestått automatiserte tester. Kontinuerlig distribusjon krever en høy grad av tillit til den automatiserte testprosessen og muligheten til å rulle tilbake endringer raskt om nødvendig.
- Infrastruktur som kode: Praksisen med å administrere infrastrukturressurser, for eksempel servere, databaser og nettverkskomponenter, som kode. Infrastructure as Code gjør det mulig for team å automatisere klargjøring og konfigurering av infrastrukturressurser, noe som gjør det enklere å administrere og skalere komplekse programvaresystemer.
- Versjonskontroll: Bruken av versjonskontrollsystemer, for eksempel Git, for å håndtere endringer i kode og andre artefakter. Versjonskontroll gjør det mulig for team å samarbeide om kodeendringer, spore endringer over tid og rulle tilbake endringer om nødvendig.
- Kontinuerlig overvåking: Praksisen med å overvåke programvareapplikasjoner og infrastrukturressurser i produksjonsmiljøer for å oppdage og løse problemer raskt. Kontinuerlig overvåking omfatter logging, metrikk og andre typer overvåking som gir innsyn i programvaresystemenes tilstand og ytelse.
Kontinuerlig levering gir flere fordeler, blant annet
- Hastighet: Kontinuerlig levering muliggjør programvareutviklingsteam å levere programvareendringer til brukerne raskere og oftere, noe som reduserer tiden det tar å marked for nye funksjoner og forbedringer.
- Pålitelighet: Kontinuerlig levering reduserer risikoen for programvarefeil og avbrudd ved å automatisere leveringsprosessen og sørge for at endringer testes grundig før de distribueres til produksjon.
- Skalerbarhet: Kontinuerlig levering gjør det enklere å skalere programvaresystemer ved å automatisere klargjøring og konfigurering av infrastrukturressurser og gjøre det mulig for team å distribuere endringer raskt og pålitelig.
- Samarbeid: Continuous Delivery fremmer samarbeid mellom utvikling, drift og andre interessenter ved å bryte ned siloene og gjøre det mulig for teamene å samarbeide mer effektivt.
- Kontinuerlig forbedring: Kontinuerlig levering gjør det mulig for programvareutviklingsteam å kontinuerlig forbedre programvaresystemene sine ved å levere endringer i små trinn og samle inn tilbakemeldinger fra brukerne.
Kontinuerlig levering er en praksis for programvareutvikling som gjør det mulig for team å levere programvareendringer til brukerne på en rask, pålitelig og bærekraftig måte. Det omfatter flere viktige metoder, blant annet kontinuerlig integrasjon, automatisert testing, kontinuerlig distribusjon, infrastruktur som kode, versjonskontroll og kontinuerlig overvåking. Kontinuerlig levering gir flere fordeler, blant annet hastighet, pålitelighet, skalerbarhet, samarbeid og kontinuerlig forbedring.