Udforsk Livscyklus for DevOps-program
Selvom DevOps-praksisser har et stort omfang, er deres primære mål at optimere administrationen af programlivscyklus. I det fiktive virksomhedseksempel kræver migrering fra en eksisterende app til en ny app med opdaterede funktioner, at du vender tilbage til alle faser i programlivscyklussen. Få derfor mere at vide om, hvordan DevOps-principper kan ændre den måde, hver fase implementeres på, fra planlægning til udvikling og levering til handlinger. I dette undermodul skal du gennemgå en overordnet oversigt over disse implementeringer.
Faser for programlivscyklus
Programlivscyklusfaser omfatter planlægning, udvikling, levering og drift.
Planlægning
Planlægningsfasen omfatter gennemgang af kundebehov for at skitsere og definere funktioner og funktioner i den software, der skal udvikles. Sådan software kan variere fra individuelle microservices til porteføljer bestående af flere produkter. Resultatet definerer softwarekrav, omfang og milepæle for programmets udvikling og udrulning. Fra DevOps-perspektivet omfatter de primære overvejelser i denne fase fleksibilitet, kundefokuseret fokus, justering og synlighed.
Udvikling
Udviklingsfasen dækker alle aspekter af udvikling af programkode. Disse aspekter omfatter programmering, test og kodegennemgange. For at overholde DevOps-praksisser skal koden være placeret i et kildekontrolsystem, hvilket letter samarbejdet og understøtter versionering. En arbejdsversion af koden bruges til at oprette artefakter, der er egnet til efterfølgende levering. Sådanne artefakter kan tage form af eksekverbare binære filer, softwarebiblioteker, objektbeholderafbildninger, installationspakker, konfigurationsfiler, installationsscripts eller endda dokumentation.
Ændringer i denne fase bør anvendes i små trin ved hjælp af automatiseret test og build, der kaldes kontinuerlig integration (CI), hvilket fremskynder udviklingsprocessen og øger fleksibiliteten.
Levering
Levering er processen med at udrulle artefakter, der er bygget under udviklingsfasen, i produktionsmiljøer på en ensartet og pålidelig måde. Selvom det ultimative mål i denne fase er fuld automatisering gennem kontinuerlig levering (CD), kan nogle organisationer, især i de tidlige faser af deres DevOps-implementering, vælge at implementere manuelle godkendelser eller kontroller. I takt med at tilliden til DevOps-praksis vokser, er det typisk muligt at automatisere disse kontroller fuldt ud. En vellykket, automatisk bekræftelse af en udrulning til et midlertidigt miljø kan f.eks. fungere som udgangspunkt for overgangen til produktionsmiljøet. Automatisering hjælper med at gøre leveringsprocesser skalerbare, gentagelige og mere robuste (ved at minimere risikoen for menneskelige fejl). Nøglen til en vellykket implementering af en sådan tilgang er at følge DevOps-praksisser, herunder korrekt test, brug af observerbare målinger og løbende læring.
Levering bør også tage højde for klargøring og konfiguration af destinationsmiljøets infrastruktur via IaC. Behandling af infrastruktur som kode giver en række fordele, herunder konsistens, reproducerbarhed og fleksibilitet.
Operationer
Driftsfasen omfatter vedligeholdelse, overvågning og fejlfinding af programmer i produktionsmiljøer. Fra DevOps-perspektivet er de primære mål på nuværende tidspunkt stabilitet og pålidelighed, hurtig svar på hændelser, sikkerhed og overholdelse af angivne standarder og kundetilfredshed. For at nå disse mål er det til en vis grad afhængig af, at der gennemføres målbare resultater korrekt. DevOps-processer er også afhængige af såkaldte feedbackløkker, der leverer data, der afspejler den aktuelle tilstand for det udrullede program, f.eks. målepunkter for ydeevne, svartid og samlet brugeroplevelse, herunder forbedret eller forringet funktionalitet.
I denne fase er det vigtigt at sikre de maksimale samarbejdsniveauer mellem udviklings-, drifts- og sikkerhedsteams. Denne fase fungerer også som den vigtigste kilde til kontinuerlig læring.
Hvad er den sidste fase i programlivscyklussen?
Som navnet angiver, og billedet i begyndelsen af denne enhed illustrerer, er programmets livscyklus ved design en cirkulær proces. Der er en deterministisk start og afslutning af en applikations levetid bestemt af dens indledende og nedlukningshændelser. Men efter den indledende udrulning (eller ofte, endnu tidligere) informerer feedback fra brugere og overvågningsdata efterfølgende opdateringer og udviklingen af programmet.
Seddel
Vær opmærksom på, at selvom sikkerhed kun blev nævnt nogle få gange i hele dette undermodul, er dens rolle gennemgående i hele programlivscyklussen i henhold til DevSecOps-principperne. I praksis bør der tages højde for sikkerhedsrelaterede overvejelser i hver fase, startende fra starten af den indledende planlægning.