Rekommendationer för att förbättra bygghastigheten

Gäller för den här rekommendationen om checklista för driftseffektivitet i Azure Well-Architected Framework:

OE:04 Optimera processer för programvaruutveckling och kvalitetssäkring genom att följa branschbeprövade metoder för utveckling och testning. För entydig rollbeteckning kan du standardisera metoder för komponenter som verktyg, källkontroll, programdesignmönster, dokumentation och stilguider.

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 pulsslaget i ditt system för kontinuerlig leverans eftersom byggstatusen visar när produkten kan distribueras. Byggen ger viktig information om statusen för din produkt, 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 teamen att bli mindre motiverade att åtgärda problemet.

Viktiga designstrategier

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 skillnaden 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 microsofts värdbaserade agenter tas underhåll och uppgraderingar hand om åt dig. Mer information finns i Agenter med Microsoft som värd.

  • Optimera byggserverns plats: När du skapar koden skickas data över kabeln. Indata till versionerna hämtas från en lagringsplats för källkontroll 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 enda 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 det inte räcker med en enskild server. Skala infrastrukturen horisontellt ö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 build feedback-loopen.

    • 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.

Mänsklig inblandning

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

  • Kontinuerlig integrering (CI)-kompilering: 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.

  • Nattbygge: Syftet med ett nattligt bygge är inte bara att kompilera koden, utan även att säkerställa 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.

Microsofts värdbaserade agenter är tillgängliga internt i Azure Pipelines. De här agenterna är virtuella datorer med enkel användning som endast används för ett jobb och sedan ignoreras, vilket är ett lätthanterat alternativ för dina byggen.

Checklista för utmärkt driftseffektivitet

Se den fullständiga uppsättningen rekommendationer.