Delen via


DevTest Labs en DevOps CI/CD-pijplijnen integreren

DevOps is een methodologie voor softwareontwikkeling die softwareontwikkeling (Dev) integreert met systeembewerkingen (Ops). Het systeem biedt nieuwe softwarefuncties, updates en oplossingen die aansluiten bij bedrijfsdoelen.

DevOps-methodologie heeft ook betrekking op:

  • Nieuwe functies ontwerpen op basis van doelstellingen, gebruikspatronen en feedback van klanten.
  • Het systeem herstellen, herstellen en het hardenen van het systeem wanneer er problemen optreden.

Een onderdeel van de DevOps-methodologie is de pijplijn voor continue integratie (CI) en continue levering (CD). Een CI/CD-pijplijn verplaatst informatie, code en resources van een doorvoer van broncodebeheer door een reeks stappen om het systeem te produceren. De stappen zijn onder andere bouwen, testen en vrijgeven.

U kunt Azure DevTest Labs gebruiken in CI/CD-pijplijnen. In dit artikel wordt het gebruik van DevTest Labs in CI/CD-build- en releasepijplijnen in een bedrijfsomgeving besproken.

Voordelen van DevTest Labs in DevOps-werkstromen

Een lab moet zich richten op een team dat in een functiegebied werkt. Deze algemene focus maakt snellere wijzigingen mogelijk, terwijl eventuele negatieve effecten worden beperkt tot een kleinere groep. Wijzigingen of problemen treden op in de testomgeving, zonder dat dit van invloed is op iets anders.

De algemene focus maakt het delen van gebiedsspecifieke resources mogelijk, zoals hulpprogramma's, scripts en Arm-sjablonen (Azure Resource Manager). Ontwikkelaars kunnen gedeelde resources gebruiken om virtuele machines (VM's) te maken met alle code, hulpprogramma's en configuratie die ze nodig hebben. ARM-sjablonen maken lab-VM's en labomgevingen met de juiste Azure-resources. Met de sjablonen worden resources dynamisch gemaakt of door basisinstallatiekopieën met aanpassingen te maken.

Denk bijvoorbeeld aan een scenario waarin het product een zelfstandig systeem is dat wordt geïnstalleerd op de computer van een klant. DevTest Labs kan lab-VM's maken waarop klantsoftware, artefacten en configuraties zijn geïnstalleerd, voor het snel testen van interne luscode.

Hier volgen enkele voordelen van het gebruik van labs in DevOps-werkstromen:

  • Gerichte toegang: Het gebruik van een lab als onderdeel koppelt een specifiek ecosysteem aan beperkte mensen. Meestal is aan een team of groep die in een gemeenschappelijke ruimte of een specifieke functie werkt, een lab toegewezen.

  • Infrastructuurreplicatie in de cloud: Een ontwikkelaar kan snel een ontwikkelecosysteem instellen met een ontwikkelaars-VM met broncode en hulpprogramma's. Een ontwikkelaar kan ook een omgeving maken die bijna identiek is aan de productieconfiguratie, zodat de interne lus sneller kan worden ontwikkeld.

  • Preproductieomgevingen: Een lab in de CI/CD-pijplijn kan verschillende preproductieomgevingen of machines tegelijkertijd uitvoeren voor asynchrone tests. U kunt verschillende ondersteuningsinfrastructuren implementeren en beheren en agents bouwen in een lab.

Labs gebruiken in CI/CD-pijplijnen

De CI/CD-pijplijn is een essentieel DevOps-onderdeel. De pijplijn integreert de code uit de pull-aanvraag van een ontwikkelaar met bestaande code en implementeert de code in het productie-ecosysteem. Voor de integratie van DevTest Labs hoeven niet alle resources zich in een lab te bevindt. U kunt bijvoorbeeld een Jenkins-host buiten het lab instellen voor een meer permanente resource. Hier volgen enkele specifieke voorbeelden van het integreren van labs in de CI/CD-pijplijn.

Build

De build-pijplijn maakt een pakket met onderdelen die samen moeten worden getest en worden vrijgegeven. Dynamisch bouwen van infrastructuur zorgt voor meer controle. Labs kunnen deel uitmaken van de build-pijplijn als locaties voor buildagents en andere ondersteuningsresources. DevTest Labs kan de toegang tot het lab beperken, waardoor de beveiliging voor buildagents wordt verhoogd en de kans op onbedoelde beschadiging wordt verminderd.

Met de mogelijkheid om meerdere omgevingen in een lab te hebben, kan elke build asynchroon worden uitgevoerd. De build-id maakt deel uit van de omgevingsinformatie die de resources in een specifieke build uniek identificeert.

Testen

Een CI/CD-pijplijn kan het maken van DevTest Labs-resources, zoals VM's en omgevingen, automatiseren voor geautomatiseerde en handmatige tests. De pijplijn maakt gebruik van artefacten of formules voor het maken van VM's met verschillende aangepaste testconfiguraties.

Release

Het releaseproces kan DevTest Labs gebruiken voor verificatie voordat de code wordt geïmplementeerd. Het proces is vergelijkbaar met testen. Productieresources mogen niet worden geïmplementeerd in DevTest Labs.

Aanpassing

Azure Pipelines, een onderdeel van Azure DevOps Services, heeft bestaande taken voor het bewerken van VM's en omgevingen binnen specifieke labs. Azure Pipelines is een manier om de CI/CD-pijplijn te beheren. U kunt een lab integreren in elk systeem dat ondersteuning biedt voor het aanroepen van REST API's, het uitvoeren van PowerShell-scripts of het gebruik van Azure CLI.

Sommige CI/CD-pijplijnbeheerders hebben bestaande opensource-invoegtoepassingen die Azure- en DevTest Labs-resources kunnen beheren. Mogelijk moet u aangepaste scripts gebruiken om aan de behoeften van de pijplijn te voldoen. Gebruik bij het uitvoeren van een taak een service-principal met de juiste rol, meestal Inzender, om toegang te krijgen tot het lab.

Volgende stappen