Utforska kontinuerlig integrering
Kontinuerlig integrering (CI) är ett av de mest grundläggande DevOps-elementen. Det främjar samarbete, bidrar till tidig identifiering av kodkvalitetsproblem och gynnar den effektiviserade utvecklingsprocessen. Det fungerar också som grunden för kontinuerlig leverans och distribution. Genom att använda CI-metoderna kommer organisationen som beskrivs i vårt exempelscenario att kunna eliminera den manuella ansträngning som krävs för att skapa och testa sina program, vilket effektivt påskyndar leveransen till användarna. För att hjälpa dig att få full förståelse för CI-förmånerna beskriver vi dem i den här lektionen.
Vad är kontinuerlig integrering?
Kontinuerlig integrering är en process för att automatiskt skapa och testa uppdaterade versioner av programvara efter enskilda uppdateringar av programlagringsplatsen. I allmänhet innebär integrationsmönstret att utvecklare skickar sina ändringar i separata grenar via pull-begäranden. Ändringarna är föremål för en kollektiv granskning och, förutsatt att resultatet lyckas, slås samman till huvudgrenen. Enskilda inchecknings- eller sammanslagningshändelser kan användas för att utlösa kodversion och testning för att säkerställa att föreslagna eller resulterande ändringar inte har negativa effekter. Med kontinuerlig integrering på plats är bygget och testerna helt automatiserade.
Den här automatiseringen baseras på bygg- och testdefinitioner 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 integrering?
De främsta fördelarna med kontinuerlig integrering baseras på den allmänna strategin för skift-vänster som (som du kommer att ta reda på senare i den här modulen) också påverkar många andra DevOps-metoder. Den grundläggande förutsättningen är att ju längre tid det tar att identifiera ett problem som introduceras genom en kodändring, desto dyrare och mer tidskrävande är det att åtgärda det. Med kontinuerlig integrering sker kodgenerering och testning så snart som möjligt. De implementeras också automatiskt, vilket ökar deras hastighet och tillförlitlighet. Kontinuerlig integrering förbättrar konsekvensen och säkerställer att byggen och tester utförs på ett reproducerbart sätt. Den konsekvensen bidrar i sin tur till att tillämpa programmeringsstandarder, vilket resulterar i renare och enklare att underhålla kod. Sist, men inte minst, är kontinuerlig integrering vanligtvis en del av kontinuerlig leverans, vilket effektiviserar hela programmets livscykelhantering. Om du minimerar kostnaderna för att underhålla bygg-, test- och distributionsaktiviteterna ökar den totala produktiviteten för utvecklings- och driftteamen, vilket minskar tiden till marknaden för programvaruprodukter.