Utforska DevOps-programmets livscykel
DevOps-metoder har ett stort omfång, men deras primära mål är att optimera programlivscykelhanteringen. I det fiktiva företagsexemplet kräver migrering från en befintlig app till en ny app med uppdaterade funktioner att varje fas i applikationens livscykel ses över. Lär dig därför hur DevOps-principer avsevärt kan ändra hur varje fas implementeras, från planering, utveckling och leverans till åtgärder. I den här lektionen går du igenom en översikt på hög nivå över dessa implementeringar.
Livscykelfaser för program
Programlivscykelfaser omfattar planering, utveckling, leverans och drift.
Planering
Planeringsfasen omfattar granskning av kundernas behov för att beskriva och definiera funktioner i programvaran som ska utvecklas. Sådan programvara kan variera från enskilda mikrotjänster till portföljer som består av flera produkter. Resultatet definierar programvarukrav, omfattning och milstolpar för programmets utveckling och distribution. Ur DevOps-perspektivet är de viktigaste övervägandena under den här fasen flexibilitet, kundfokus, justering och synlighet.
Utveckling
Utvecklingsfasen omfattar alla aspekter av att utveckla programkod. Dessa aspekter omfattar programmering, testning och kodgranskningar. För att följa DevOps-metoder bör koden finnas i ett källkontrollsystem, vilket underlättar samarbete och stöder versionshantering. En fungerande version av koden används för att skapa artefakter som är lämpliga för efterföljande leverans. Sådana artefakter kan ha formen av körbara binärfiler, programvarubibliotek, containeravbildningar, installationspaket, konfigurationsfiler, distributionsskript eller till och med dokumentation.
Ändringar i den här fasen bör tillämpas i små steg genom automatiserad testning och kompilering, som kallas kontinuerlig integrering (CI), vilket påskyndar utvecklingsprocessen och förbättrar flexibiliteten.
Leverans
Leverans är processen att distribuera artefakterna som skapats under utvecklingsfasen till produktionsmiljöer på ett konsekvent och tillförlitligt sätt. Det slutliga målet i den här fasen är fullständig automatisering genom kontinuerlig leverans (CD), men vissa organisationer, särskilt i tidiga skeden av deras DevOps-implementering, kan välja att implementera manuella godkännanden eller kontroller. När förtroendet för DevOps-metoder växer är det vanligtvis möjligt att automatisera dessa kontroller fullständigt. En lyckad, obevakad verifiering av en distribution till en mellanlagringsmiljö kan till exempel utgöra grunden för övergången till produktionsmiljön. Automation hjälper till att göra leveransprocesserna skalbara, repeterbara och mer motståndskraftiga (genom att minimera risken för mänskliga fel). Nyckeln till en lyckad implementering av en sådan metod är att följa DevOps-metoder, inklusive korrekt testning, användning av observerbara mätningar och kontinuerlig inlärning.
Leveransen bör också ta hänsyn till etablering och konfiguration av målmiljöns infrastruktur via IaC. Att behandla infrastrukturen som kod ger en rad fördelar, inklusive konsekvens, reproducerbarhet och flexibilitet.
Verksamhet
Driftfasen omfattar underhåll, övervakning och felsökning av program i produktionsmiljöer. Ur DevOps-perspektivet är de primära målen i det här skedet stabilitet och tillförlitlighet, snabba incidenthanteringar, säkerhet och efterlevnad samt kundnöjdhet. Att nå dessa mål är i viss mån beroende av att man har genomfört mätbara resultat på ett korrekt sätt. DevOps-processer förlitar sig också på så kallade feedbackslingor som levererar data som återspeglar det distribuerade programmets aktuella tillstånd, till exempel prestandamått, svarstider och övergripande användarupplevelse, inklusive förbättrade eller försämrade funktioner.
Under den här fasen är det viktigt att säkerställa maximala samarbetsnivåer mellan utvecklings-, drifts- och säkerhetsteam. Den här fasen fungerar också som den viktigaste källan till kontinuerlig inlärning.
Vad är det sista steget i programmets livscykel?
Som namnet anger och bilden i början av den här lektionen illustrerar är programmets livscykel, avsiktligt, en cirkulär process. Det finns en deterministisk början och slut på en programlivslängd som bestäms av dess start- och avvecklingshändelser. Men efter den första distributionen (eller ofta, ännu tidigare) informerar feedback från användare och övervakningsdata efterföljande uppdateringar och utvecklingen av programmet.
Notera
Tänk på att även om säkerhet bara nämndes några gånger under hela den här lektionen, enligt DevSecOps-principer, genomsyras dess roll under hela programmets livscykel. I praktiken bör säkerhetsrelaterade överväganden beaktas under varje fas, med början i början av den inledande planeringen.