Livscykeln för utveckling
Strategin för utvecklingslivscykel ger viktiga designöverväganden och rekommendationer för lagringsplats, gren, automatiserade versioner, distribution och återställningsstrategi vid automatisk skapande av landningszoner.
Strategi för lagringsplats
Utformningsbeaktanden
Överväg att använda ett versionskontrollsystem som Git för att ge ditt team flexibilitet i koddelning och hantering.
- Git är det branschstandardbaserade versionskontrollsystemet. Det är ett distribuerat versionskontrollsystem, där din lokala kopia av koden är en fullständig version av lagringsplatsen.
Förstå strukturen för en lagringsplats jämfört med flera lagringsplatser.
- I monolagringsstrukturer finns all källkod på en enda lagringsplats.
- I flera lagringsplatser ordnas alla projekt i separata lagringsplatser.
Välj en synlighetsinställning som passar innehållet i lagringsplatsen.
- Offentliga lagringsplatser kan nås anonymt.
- Privata lagringsplatser kräver att användarna beviljas åtkomst till lagringsplatsen och loggas in för att få åtkomst till tjänster.
- Du kan ange offentlig och privat synlighet för Azure DevOps Projects och GitHub-lagringsplatser.
Överväg att ange lagringsplatsens behörigheter som hjälper dig att styra vem som kan bidra till källkoden och hantera andra funktioner.
- Du kan ange lagringsplatsbehörigheter för Azure DevOps och GitHub.
Överväg att använda resursdistributionen Infrastruktur som kod (IaC) till Azure. Med IaC kan du hantera infrastrukturen i en deklarativ modell, minska konfigurationsarbetet, säkerställa konsekvens mellan distributioner och undvika manuell miljökonfiguration.
Azure tillhandahåller stöd för IaC för landningszoner via:
Designrekommendationer
Använd Git som ett versionskontrollsystem.
Använda privata lagringsplatser när du skapar Azure-landningszoner
Använd offentliga lagringsplatser när du delar icke-konfigurationsinformation som automationsexempel, offentlig dokumentation och samarbetsmaterial med öppen källkod.
Anta en IaC-metod för att distribuera, hantera, styra och stödja molnresurser.
Grenstrategi
Utformningsbeaktanden
Överväg att använda en grenstrategi som gör det möjligt för team att samarbeta bättre och effektivt hantera versionskontroll.
Överväg att använda specifika namngivningskonventioner för dina grenar.
Överväg att använda grenbehörigheter för att styra användarfunktioner.
Överväg att använda grenprinciper för att hjälpa dina team att skydda viktiga utvecklingsgrenar. Principer som kan hjälpa till att framtvinga standarder för kodkvalitet och ändringshantering. Exempel på grenprinciper är:
- Använd alltid pull-begäranden för att sammanfoga ändringar i viktiga grenar.
- Kräver ett minsta antal granskare för pull-begäranden.
- Inkludera kodgranskare automatiskt.
- Genom att söka efter länkade arbetsobjekt kan du behålla spårningsbarheten.
- Om du söker efter kommentarsmatchning verifieras om alla PR-kommentarer har lösts.
- Begränsa sammanslagningstyper.
Om du antar en strategi för pull-begäranden kan du behålla kontrollen över kodändringar som sammanfogats i grenar.
- Definiera en sammanslagningsstrategi.
- Pull-begäranden bör vara enkla, med antalet filer som hålls till ett minimum för att hjälpa granskare att validera incheckningar och ändringar mer effektivt.
- Pull-begäranden bör ha tydliga rubriker och beskrivningar så att granskarna vet vad de kan förvänta sig när de granskar kod.
- Du kan använda mallar för pull-begäranden.
- Du kan ta bort ursprungsgrenar när pull-begäranden har slutförts, vilket ger dig mer kontroll och bättre grenhantering.
Designrekommendationer
Anta en trunkbaserad utvecklingsmodell där utvecklare förbinder sig till en enda gren. Den här modellen underlättar kontinuerlig integrering. Allt funktionsarbete utförs i bagageutrymmet och eventuella sammanslagningskonflikter löses när incheckningen sker.
Låt dina team definiera och använda konsekventa namngivningskonventioner för grenar för att identifiera det arbete som utförts.
Ange behörigheter för att styra vem som kan läsa och uppdatera kod i en gren av din Git-lagringsplats. Du kan ange behörigheter för enskilda användare och för grupper.
Ange grenprinciper:
- Kräv användning av pull-begäranden för grensammanslagningar till huvudgrenen.
- Kräv ett minsta antal granskare för pull-begäranden.
- Återställ alla godkännanderöster för att ta bort alla godkännanderöster, men behåll röster för att avvisa eller vänta när en källgren ändras.
- Inkludera kodgranskare automatiskt.
- Sök efter kommentarsmatchning.
Ange squash som sammanslagningsstrategi, vilket gör att du kan komprimera Git-historiken för ämnesgrenar när du slutför pull-begäranden. I stället för att lägga till varje incheckning i en ämnesgren i historiken för standardgrenen lägger en squash-sammanslagning till alla filändringar i en enda ny incheckning på standardgrenen.
Automatiserade versioner
Utformningsbeaktanden
Överväg att implementera kontinuerlig integrering (CI). CI omfattar att slå samman all utvecklarkod till en central kodbas enligt ett regelbundet schema och automatiskt köra standardversioner och testprocesser.
Överväg att använda CI-utlösare:
- Azure Repos Git. Du kan konfigurera grenar, sökvägar och taggar som utlösare för att köra en CI-version.
- GitHub. Du kan konfigurera utlösare för grenar, sökvägar och taggar för att köra en CI-version.
Överväg att inkludera IaC-enhetstester i byggprocessen för att verifiera syntaxen.
- Testverktyget för ARM-mallar kontrollerar om en mall följer rekommenderade metoder.
- Bicep linter kontrollerar Bicep-filer efter syntaxfel och överträdelser av bästa praxis.
Överväg att inkludera enhetstester i din programversionsprocess. Granska de uppgifter som är tillgängliga för Azure DevOps Pipeline.
Använd Azure DevOps-tjänstanslutningar eller GitHub-hemligheter för att hantera anslutningar till Azure. Varje anslutning bör ha rätt behörighet till Azure-resurser.
Överväg att använda Azure Key Vault-hemligheter för att lagra och hantera känslig information som lösenord, API-nycklar, certifikat.
Azure DevOps-agenter kan vara lokalt värdbaserade eller Microsoft-värdbaserade.
- Underhåll och uppgraderingar tas hand om åt dig när du använder Microsoft-värdbaserade agenter. Varje gång ett byggjobb körs skapas en ny virtuell dator.
- Du konfigurerar och hanterar lokalt installerade agenter på egen hand för att köra byggjobb.
Designrekommendationer
Använd CI för att automatisera versioner och testning av kod varje gång en teammedlem genomför ändringar i versionskontrollen.
Inkludera enhetstester för IaC och programkod som en del av byggprocessen.
Om möjligt använder du Microsoft-värdbaserad pool i stället för lokalt installerade pooler, eftersom de erbjuder isolering och en ren virtuell dator för varje pipelinekörning.
När du ansluter Azure DevOps eller GitHub till Azure via tjänstanslutningar eller GitHub-hemligheter måste du alltid definiera omfånget så att de bara kan komma åt nödvändiga resurser.
Använd Key Vault-hemligheter för att undvika hårdkodning av känslig information, till exempel autentiseringsuppgifter (den virtuella datorns användarlösenord), certifikat eller nycklar. Använd sedan hemligheter som variabler i dina bygg- och versionsjobb.
Distributionsstrategi
Utformningsbeaktanden
Överväg att använda kontinuerlig leverans (CD). CD omfattar att skapa, testa, konfigurera och distribuera från en version till en miljö.
Överväg att använda miljöer. Med miljöer kan du rikta in dig på en samling resurser från ett leveransjobb. Exempel på vanliga miljönamn är:
- Utv
- Test
- Frågor svar
- Mellanlagring
- Produktion
Överväg att använda IaC som en del av din strategi för att verifiera och bekräfta fördistribution av ändringar.
Designrekommendationer
Använd CD för att säkerställa att koden alltid är redo att distribueras genom att automatiskt skapa, testa och distribuera kod till produktionsliknande miljöer. Lägg till kontinuerlig leverans för att skapa en fullständig CI/CD-integrering som hjälper dig att identifiera kodfel så tidigt som möjligt och ser till att du snabbt kan släppa korrekt testade uppdateringar.
Använd miljöer som en del av distributionsstrategin. Miljöer ger fördelar som:
- Distributionshistorik
- Spårning av incheckningar och arbetsobjekt
- Diagnostikresurshälsa
- Säkerhet
Inkludera IaC-fördistributionskontroller så att du kan förhandsgranska ändringar och se information om huruvida en resurs skapas, ändras eller tas bort.
Återställningsstrategi
Utformningsbeaktanden
Överväg att skapa en återställningsplan. Att återställa en distribution innebär att återställa distributionen till ett känt bra tillstånd och ger en viktig möjlighet att återställa från en misslyckad distribution.
Överväg att använda ångra ändringar i Git om du behöver återställa ändringar i en incheckning, ignorera ändringar eller återställa en gren till ett tidigare tillstånd.
Designrekommendationer
- Använd ångra ändringar i Git när du behöver återställa ändringar till bekräftade filer, ignorera icke-bekräftade ändringar eller återställa en gren till ett tidigare tillstånd.