Aanbevelingen voor het verbeteren van de bouwsnelheid

Is van toepassing op deze aanbeveling voor de controlelijst voor operationele uitmuntendheid van Azure Well-Architected Framework:

OE:04 Optimaliseer softwareontwikkelings- en kwaliteitsbewakingsprocessen door bewezen procedures voor ontwikkeling en testen te volgen. Voor ondubbelzinnige rolaanduiding kunt u procedures standaardiseren voor onderdelen zoals hulpprogramma's, broncodebeheer, toepassingsontwerppatronen, documentatie en stijlhandleidingen.

Gerelateerde handleidingen: Aanbevelingen voor het standaardiseren van hulpprogramma's en processen | Aanbevelingen voor het gebruik van continue integratie

In deze handleiding worden de aanbevelingen beschreven voor het verbeteren van de prestaties van uw implementatie-infrastructuur. Het is belangrijk dat u de eerste dag van uw productontwikkeling een opbouwproces hebt dat wordt uitgevoerd. Builds zijn de heartbeat van uw systeem voor continue levering, omdat de buildstatus aangeeft wanneer uw product kan worden geïmplementeerd. Builds bieden belangrijke informatie over de status van uw product, dus u moet altijd streven naar snelle builds.

Het is moeilijk om een buildprobleem op te lossen als het langer duurt om te bouwen. Wanneer vertragingen optreden en genormaliseerd worden, zijn teams vaak minder gemotiveerd om het probleem op te lossen.

Belangrijke ontwerpstrategieën

Buildtijden

Als u snellere builds wilt uitvoeren, kunt u het volgende doen:

  • Agents kiezen die voldoen aan uw prestatievereisten: versnel uw builds door de juiste buildmachines te selecteren. Snelle machines kunnen het verschil maken tussen uren en minuten. Als uw pijplijnen zich in Azure Pipelines bevinden, kunt u uw taken uitvoeren met behulp van een door Microsoft gehoste agent. Wanneer u door Microsoft gehoste agents gebruikt, worden onderhoud en upgrades voor u geregeld. Raadpleeg door Microsoft gehoste agents voor meer informatie.

  • De locatie van de buildserver optimaliseren: wanneer u uw code bouwt, worden gegevens via de kabel verzonden. Invoer voor de builds wordt opgehaald uit een opslagplaats voor broncodebeheer en de opslagplaats voor artefacten. De uitvoer van het buildproces moet worden gekopieerd, inclusief de gecompileerde artefacten, testrapporten, codedekkingsresultaten en foutopsporingssymbolen. Het is belangrijk dat deze kopieeracties snel worden uitgevoerd. Als u uw eigen buildserver gebruikt, moet u ervoor zorgen dat de buildserver zich in de buurt van de bronnen en een doellocatie bevindt. Snelle uploads en downloads kunnen de algehele buildtijd verkorten.

  • Buildservers uitschalen: één buildserver kan voldoende zijn voor een klein product. Naarmate de grootte en het bereik van het product en het aantal teams dat aan het product werkt toeneemt, is één server mogelijk niet voldoende. Schaal uw infrastructuur horizontaal over meerdere machines wanneer u de limiet bereikt. Zie Agentpools maken en beheren voor meer informatie.

  • De build optimaliseren:

    • Voeg parallelle taken toe om het bouwproces te versnellen. Zie Parallelle taken configureren en betalen voor meer informatie.

    • Schakel parallelle uitvoeringen van testsuites in, wat vaak een grote hoeveelheid tijd bespaart, met name bij het uitvoeren van integratie- en UI-tests. Zie Tests parallel uitvoeren voor een testrunner voor meer informatie.

    • Gebruik het concept van een vermenigvuldiger, waarmee u uw builds kunt uitschalen over meerdere buildagents. Raadpleeg Taken opgeven in uw pijplijn voor meer informatie.

    • Overweeg om integratie-, ui- en betrouwbaarheidstests te verplaatsen naar een release-pijplijn. Als u naar een release-pijplijn gaat, worden de buildsnelheid en de snelheid van de buildfeedbacklus verbeterd.

    • Publiceer de buildartefacten naar een pakketbeheeroplossing, zoals NuGet of Maven. Als u publiceert naar een pakketbeheeroplossing, kunt u uw buildartefact eenvoudiger opnieuw gebruiken.

Menselijke interventie

Uw organisatie kan ervoor kiezen om verschillende soorten builds te maken om de buildtijden te optimaliseren. Mogelijke builds zijn onder andere:

  • CI-build (Continue integratie): het doel van deze build is ervoor te zorgen dat code wordt gecompileerd en eenheidstests worden uitgevoerd. Deze build wordt bij elke doorvoering geactiveerd. Het fungeert als de heartbeat van het project en biedt onmiddellijk kwaliteitsfeedback aan het team. Zie Gebeurtenissen opgeven die pijplijnen activeren voor meer informatie.

  • Nachtelijke build: Het doel van een nachtelijke build is niet alleen om de code te compileren, maar ook om ervoor te zorgen dat grotere testsuites die inefficiënt worden uitgevoerd op regelmatige basis voor elke build. Deze tests omvatten meestal integratie-, UI- of betrouwbaarheidstests. Zie Planningen voor pijplijnen configureren voor meer informatie.

  • Release-build: Naast het compileren en uitvoeren van tests, worden in deze build ook de API-documentatie, nalevingsrapporten, codeondertekening en andere stappen gecompileerd die niet elke keer nodig zijn wanneer de code wordt gebouwd. Deze build biedt de gouden kopie die naar de release-pijplijn wordt gepusht om uiteindelijk te implementeren in de productieomgeving.

De typen builds die uw organisatie nodig heeft, zijn afhankelijk van factoren zoals de volwassenheid van uw team en organisatie, het soort product waaraan u werkt en uw implementatiestrategie.

Azure-facilitering

Azure DevOps is een verzameling services waarmee u een gezamenlijke, efficiënte en consistente ontwikkelpraktijk kunt bouwen.

Gebruik Azure Pipelines om services te bouwen en uit te brengen ter ondersteuning van continue integratie en continue levering (CI/CD) van uw toepassingen.

Gebruik GitHub Actions voor Azure om CI/CD-processen te automatiseren en rechtstreeks te integreren met Azure om implementaties te vereenvoudigen. U kunt ook werkstromen maken waarmee elke pull-aanvraag naar uw opslagplaats wordt gebouwd en getest, of samengevoegde pull-aanvragen in productie worden geïmplementeerd met behulp van GitHub Actions voor Azure.

Door Microsoft gehoste agents zijn systeemeigen beschikbaar in Azure Pipelines. Deze agents zijn virtuele machines voor eenmalig gebruik die slechts voor één taak worden gebruikt en vervolgens worden verwijderd. Dit biedt een eenvoudig te beheren optie voor uw builds.

Controlelijst voor operationele uitmuntendheid

Raadpleeg de volledige set aanbevelingen.