Rekommendationer för att förbättra bygghastigheten

Gäller för denna checklista för Azure Well-Architected Framework Operational Excellence:

OE:04 Optimera processer för programvaruutveckling och kvalitetssäkring genom att följa branschbeprövade metoder för utveckling och testning. Standardisera metoder för komponenter som verktyg, källkontroll, mönster för programdesign, dokumentation och formatmallar för entydig rollbeteckning.

Relaterade guider: Rekommendationer för standardisering av verktyg och processer | Rekommendationer för användning av kontinuerlig integrering

Den här guiden beskriver rekommendationerna för att förbättra prestanda för distributionsinfrastrukturen. Det är viktigt att ha en byggprocess igång den första dagen av din produktutveckling. Byggen är pulsslagen i ditt system för kontinuerlig leverans eftersom byggstatusen visar när produkten kan distribueras. Byggen ger viktig information om produktens status, så du bör alltid sträva efter snabba byggen.

Det är svårt att åtgärda ett byggproblem om det tar längre tid att skapa. När fördröjningar inträffar och normaliseras tenderar team att bli mindre motiverade att åtgärda problemet.

Viktiga designstrategier

Optimera byggtider

Om du vill utföra snabbare versioner kan du:

  • Välj agenter som uppfyller dina prestandakrav: Snabba upp dina byggen genom att välja rätt byggdatorer. Snabba datorer kan göra skillnad mellan timmar och minuter. Om dina pipelines finns i Azure Pipelines kan du köra dina jobb med hjälp av en Microsoft-värdbaserad agent. När du använder Microsoft-värdbaserade agenter tas underhåll och uppgraderingar hand om åt dig. Mer information finns i Agenter med Microsoft som värd.

  • Optimera platsen för byggservern: När du skapar koden skickas data över kabeln. Indata till versionerna hämtas från en källkontrolllagringsplats och artefaktlagringsplatsen. Utdata från byggprocessen måste kopieras, inklusive kompilerade artefakter, testrapporter, kodtäckningsresultat och felsökningssymboler. Det är viktigt att dessa kopieringsåtgärder körs snabbt. Om du använder din egen byggserver kontrollerar du att byggservern finns nära källorna och en målplats. Snabba uppladdningar och nedladdningar kan minska den totala byggtiden.

  • Skala ut byggservrar: En enskild byggserver kan vara tillräcklig för en liten produkt. När produktens storlek och omfattning och antalet team som arbetar med produkten ökar kanske inte en enda server räcker. Skala infrastrukturen vågrätt över flera datorer när du når gränsen. Mer information finns i Skapa och hantera agentpooler.

  • Optimera versionen:

    • Lägg till parallella jobb för att påskynda byggprocessen. Mer information finns i Konfigurera och betala för parallella jobb.

    • Aktivera parallella testpaketkörningar, vilket ofta sparar mycket tid, särskilt när du kör integrerings- och användargränssnittstester. Mer information finns i Köra tester parallellt för alla testkörare.

    • Använd begreppet multiplikator, där du kan skala ut dina byggen över flera byggagenter. Mer information finns i Ange jobb i din pipeline.

    • Överväg att flytta integrerings-, användargränssnitts- och röktester till en versionspipeline. Om du flyttar till en versionspipeline förbättras bygghastigheten och hastigheten för feedbackslingan för bygget.

    • Publicera byggartefakterna till en pakethanteringslösning, till exempel NuGet eller Maven. Genom att publicera till en pakethanteringslösning kan du återanvända din byggartefakt enklare.

Minimera mänsklig inblandning

Din organisation kan välja att skapa flera olika typer av versioner för att optimera byggtiderna. Möjliga versioner är:

  • Kontinuerlig integrering (CI) build: Syftet med den här versionen är att säkerställa att koden kompileras och att enhetstester körs. Den här versionen utlöses vid varje incheckning. Det fungerar som pulsslag i projektet och ger kvalitetsfeedback till teamet omedelbart. Mer information finns i Ange händelser som utlöser pipelines.

  • Nattligt bygge: Syftet med ett nattligt bygge är inte bara att kompilera koden, utan även att se till att större testsviter som körs ineffektivt körs regelbundet för varje version. Dessa tester omfattar vanligtvis integrerings-, användargränssnitts- eller röktester. Mer information finns i Konfigurera scheman för pipelines.

  • Versionsversion: Förutom att kompilera och köra tester kompilerar den här versionen även API-dokumentationen, efterlevnadsrapporter, kodsignering och andra steg som inte krävs varje gång koden skapas. Den här versionen innehåller den gyllene kopian som skickas till versionspipelinen för att slutligen distribueras i produktionsmiljön.

Vilka typer av byggen som krävs av din organisation beror på faktorer som teamets och organisationens mognad, vilken typ av produkt du arbetar med och din distributionsstrategi.

Azure-underlättande

Azure DevOps är en samling tjänster som hjälper dig att skapa en samarbetsinriktad, effektiv och konsekvent utvecklingspraxis.

Använd Azure Pipelines för att skapa och släppa tjänster för kontinuerlig integrering och kontinuerlig leverans (CI/CD) av dina program.

Använd GitHub Actions för Azure för att automatisera CI/CD-processer och integrera direkt med Azure för att förenkla distributionerna. Du kan också skapa arbetsflöden som skapar och testar varje pull-begäran till din lagringsplats, eller distribuera sammanfogade pull-begäranden till produktion med hjälp av GitHub Actions för Azure.

Microsoft-värdbaserade agenter är tillgängliga internt i Azure Pipelines. Dessa agenter är virtuella datorer med enkel användning som endast används för ett jobb och sedan ignoreras, vilket ger ett lätthanterat alternativ för dina versioner.

Checklista för driftskvalitet

Se den fullständiga uppsättningen rekommendationer.