Delen via


Aanbevelingen voor het verbeteren van de snelheid van de build

Is van toepassing op deze controlelijst voor Azure Well-Architected Framework Operational Excellence:

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

Verwante 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. Builds zijn de heartbeat van uw continue leveringssysteem, omdat de buildstatus aangeeft wanneer uw product kan worden geïmplementeerd. Builds bieden cruciale 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, worden teams meestal minder gemotiveerd om het probleem op te lossen.

Belangrijke ontwerpstrategieën

Buildtijden optimaliseren

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

  • Kies agents die voldoen aan uw prestatievereisten: maak uw builds sneller 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.

  • Optimaliseer de locatie van de buildserver: wanneer u uw code bouwt, worden gegevens via de kabel verzonden. Invoer voor de builds wordt opgehaald uit een opslagplaats voor broncodebeheer en de artefactopslagplaats. De uitvoer van het buildproces moet worden gekopieerd, inclusief de gecompileerde artefacten, testrapporten, resultaten van codedekking 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 totale buildtijd verminderen.

  • Buildservers uitschalen: Een enkele 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 buildproces te versnellen. Zie Configureren en betalen voor parallelle taken voor meer informatie.

    • Schakel parallelle testsuiteuitvoeringen in, waardoor vaak veel tijd wordt bespaard, met name bij het uitvoeren van integratie- en UI-tests. Zie Testtests parallel uitvoeren voor een testloper voor meer informatie.

    • Gebruik het idee van een vermenigvuldiger, waar u uw builds kunt uitschalen via meerdere buildagents. Raadpleeg Taken opgeven in uw pijplijn voor meer informatie.

    • Overweeg om integratie, gebruikersinterface en betrouwbaarheidstests te verplaatsen naar een release-pijplijn. Het verplaatsen naar een release-pijplijn verbetert de buildsnelheid en de snelheid van de buildfeedbacklus.

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

Menselijke interventie minimaliseren

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

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

  • Nightly 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 zijn, regelmatig worden uitgevoerd voor elke build. Deze tests omvatten meestal integratie, ui of betrouwbaarheidstests. Zie Planningen configureren voor pijplijnen voor meer informatie.

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

De typen builds die uw organisatie nodig heeft, zijn afhankelijk van factoren, waaronder 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 vrij te geven 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 die elke pull-aanvraag in uw opslagplaats bouwen en testen, of samengevoegde pull-aanvragen implementeren in productie 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.