Utforska kontinuerlig leverans
Kontinuerlig integrering (CI) och kontinuerlig leverans (CD) är nära relaterade DevOps-begrepp, som representerar två olika steg i processen för programvaruleverans. Som du vet från föregående modul är syftet med CI att skapa och testa programvaruartefakter. CD automatiserar processen med att leverera dessa artefakter till avsedda mottagare. Genom att implementera CD kan organisationer som den som beskrivs i exempelscenariot eliminera det manuella arbetet med programdistribution. I den här lektionen utforskar du egenskaperna och fördelarna med CD.
Vad är kontinuerlig leverans?
Kontinuerlig leverans omfattar de metoder som automatiserar genereringen av programvaruversioner, säkerställer att de är i ett distributionsbart tillstånd och gör dem tillgängliga för sina konsumenter. Fokus ligger på att minimera tid för att distribuera och tid för att mildra (TTM), som också kallas tid för att åtgärda (TTR). Det senare avser scenarier där en nyligen släppt version av applikationen når produktionsmiljön och måste rullas tillbaka.
Kontinuerlig leverans tenderar att vara en iterativ process, där samma artefakt som representerar den senaste programvaruversionen övergår genom flera miljöer, som till exempel är dedikerade till testning av användargodkännande, mellanlagring och produktion. Detta ger många möjligheter att verifiera dess funktioner och stabilitet.
Det är värt att notera att DevOps-nomenklaturen innehåller två nära relaterade termer, som har liknande namn och samma akronym – kontinuerlig leverans och kontinuerlig distribution. Båda handlar om att automatisera och effektivisera processen för programvaruleverans. Den främsta skillnaden mellan dem är att den senare strävar efter att implementera fullständig automatisering, inklusive produktionsmiljön, medan den slutliga leveransen kräver ett manuellt godkännande i händelse av den förra.
Precis som CI baseras automatiseringen på versionsdefinitioner som skapats av utvecklare och implementerats på lagringsplatsens värdplattform. GitHub erbjuder till exempel github-arbetsflöde för det här ändamålet, medan Azure DevOps förlitar sig på Azure Pipelines.
Vilka är fördelarna med kontinuerlig leverans?
Fördelarna med kontinuerlig leverans är direkta resultat av dess automatisering och vänsterskiftmetoden. De mest relevanta är:
- Accelererade lanseringscykler: Organisationer kan öka leveranshastigheten för nya funktioner, förbättringar och buggkorrigeringar, vilket leder till minskad tid till marknad, vilket i slutändan gynnar kunderna.
- Ökad återhämtning: Automatiserad testning möjliggör identifiering av problem tidigt i leveransprocessen. Automatiserad distribution säkerställer konsekvens mellan miljöer och minimerar den potentiella effekten av mänskliga fel. Automation tenderar också att avsevärt förenkla återställningsprocessen om det finns ett behov av att återgå till en tidigare programvaruversion. Inkrementell distribution (som vi kommer att ta upp senare i den här modulen) underlättar identifiering av eventuella problem innan de kan ha en större skalningspåverkan. Snabba feedbackslingor minskar svarstiden om ett problem upptäcks.
- Förbättrat samarbete: CD främjar interaktion mellan utvecklings-, drifts- och säkerhetsteam genom integrering med CI, vilket resulterar i en sammanhängande process som omfattar bygge, testning och leverans.
- Effektiv resursanvändning: Automation tenderar att minimera tiden som ägnas åt manuella, repetitiva och tidskrävande uppgifter, vilket resulterar i optimerad användning av personalresurser.