Utforska DevOps-metoder
Att införliva DevOps i programlivscykeln innebär att implementera en rad DevOps-metoder. Möjligheten att maximera DevOps-fördelarna är mycket beroende av i vilken utsträckning implementeringen lyckas. I vårt exempelscenario skulle organisationen behöva införa betydande ändringar i sin driftsmodell, från och med att främja samarbete och kommunikation mellan utvecklings- och driftteam samt investera i versionskontroll, automatisering, kontinuerlig integrering, kontinuerlig testning, kontinuerlig leverans och kontinuerlig övervakning. Du kommer att utforska dessa metoder i den här lektionen.
Versionskontroll
Versionskontroll är en metod för att hantera uppdateringar av kod genom att lagra den på avsedda lagringsplatser, spåra dess revisioner och upprätthålla ändringshistoriken. Detta underlättar kodgranskningar och möjligheten att återställa från programmeringsfel. Dessutom tillåter versionskontrollsystem (VCS) som Git samarbete i kodredigering mellan flera utvecklare via funktioner som kloning av lagringsplatser, pull-begäranden, sammanslagningar av kodändringar, konfliktlösning och stöd för återställningar. Användning av versionskontroll är en grundläggande DevOps-metod. Versionskontroll är också en förutsättning för sådana metoder som kontinuerlig integrering och infrastruktur som kod.
Kontinuerlig integrering (CI) och kontinuerlig testning
En av de viktigaste metoderna för DevOps är automatisering. I det här fallet gäller automatisering för processen att sammanfoga kodändringar, testa dem och skapa resulterande artefakter så tidigt som möjligt i programmets livscykel. Avsikten är att identifiera eventuella problem i utvecklingsfasen, eftersom detta minimerar arbetet och kostnaderna för att åtgärda dem. Automatiserade tester verifierar att kodändringar inte har introducerat fel eller regressionsproblem.
Kontinuerlig leverans (CD)
Kontinuerlig leverans automatiserar processen med att distribuera artefakter som skapats som en del av CI, vilket gör dem tillgängliga för sina konsumenter. CD automatiserar utvecklingen av dessa artefakter genom olika miljöer, till exempel testning, mellanlagring och produktion. Kontinuerlig integrering och kontinuerlig leverans (CI/CD) utgör tillsammans en enhetlig, strömlinjeformad, heltäckande process för utveckling och leverans av programvara.
Kontinuerlig övervakning
Kontinuerlig övervakning ger automatisk realtidssynlighet i hälsotillståndet och prestandan för hela programstacken, inklusive dess underliggande infrastruktur. Detta sker genom insamling av telemetri, inklusive loggar och mått, och anpassningsbara aviseringar som levererar meddelanden om avvikande beteende, vilket underlättar åtgärder för snabb reparation.
Kontinuerlig säkerhet (DevSecOps)
Säkerhet är en viktig del av varje fas i den DevOps-baserade programlivscykeln, vilket är anledningen till att mynta termen DevSecOps. DevSecOps är ett tillägg till DevOps med fokus på att integrera säkerhetsrutiner i varje steg – från planering, kodning, testning och distribution till åtgärder.
Infrastruktur som kod (IaC)
Infrastruktur som kod är en integrerad del av moderna metoder för utveckling och drift av programvara. Det omfattar användning av programmeringsmetoder för att etablera och hantera infrastrukturtjänster. IaC definierar infrastrukturkomponenter som servrar, nätverksenheter och databaser med hjälp av kod. Sådan kod finns vanligtvis i en VCS, som hanterar och spårar ändringar i infrastrukturkonfigurationer. Användningen av kod underlättar automatisk etablering och konfiguration av infrastruktur, vilket förbättrar effektiviteten, konsekvensen och skalbarheten. Dessutom kan IaC integreras (och ofta är) integrerat med CI/CD, vilket ger en omfattande strategi för programvaruleverans genom att kombinera infrastrukturetablering, med programbygge, testning och distribution till en kontinuerlig, helt automatiserad sekvens.