Dela via


Integrera DevTest Labs- och DevOps CI/CD-pipelines

DevOps är en metod för programutveckling som integrerar programvaruutveckling (Dev) med systemåtgärder (Ops). Systemet levererar nya programvarufunktioner, uppdateringar och korrigeringar som överensstämmer med affärsmålen.

DevOps-metodiken omfattar även:

  • Designa nya funktioner baserat på mål, användningsmönster och kundfeedback.
  • Åtgärda, återställa och härda systemet när problem uppstår.

En komponent i DevOps-metodiken är pipelinen för kontinuerlig integrering (CI) och kontinuerlig leverans (CD). En CI/CD-pipeline flyttar information, kod och resurser från en källkontroll genom en serie steg för att skapa systemet. Stegen omfattar build, test och release.

Du kan använda Azure DevTest Labs i CI/CD-pipelines. Den här artikeln beskriver hur du använder DevTest Labs i CI/CD-bygg- och versionspipelines i en företagsmiljö.

Fördelar med DevTest Labs i DevOps-arbetsflöden

Ett labb bör fokusera på ett team som arbetar i ett funktionsområde. Det här gemensamma fokuset möjliggör snabbare ändringar, samtidigt som eventuella negativa effekter begränsas till en mindre grupp. Ändringar eller problem inträffar i labbmiljön, utan att påverka något annat.

Det gemensamma fokuset möjliggör delning av områdesspecifika resurser, till exempel verktyg, skript och ARM-mallar (Azure Resource Manager). Utvecklare kan använda delade resurser för att skapa virtuella datorer med all kod, alla verktyg och all konfiguration de behöver. ARM-mallar skapar virtuella labbdatorer och labbmiljöer med lämpliga Azure-resurser. Mallarna skapar resurser dynamiskt eller genom att skapa basavbildningar med anpassningar.

Tänk dig till exempel ett scenario där produkten är ett fristående system som installeras på en kunds dator. DevTest Labs kan skapa virtuella labbdatorer som har kundprogramvara, artefakter och konfigurationer installerade för snabb testning av inre loopkod.

Här följer några fördelar med att använda labb i DevOps-arbetsflöden:

  • Prioriterad åtkomst: När du använder ett labb som en komponent associeras ett specifikt ekosystem med begränsade personer. Vanligtvis har ett team eller en grupp som arbetar i ett gemensamt område eller en specifik funktion tilldelats ett labb.

  • Infrastrukturreplikering i molnet: En utvecklare kan snabbt konfigurera ett utvecklingsekosystem som innehåller en virtuell utvecklardator med källkod och verktyg. En utvecklare kan också skapa en miljö som är nästan identisk med produktionskonfigurationen, för snabbare utveckling av inre loopar.

  • Förproduktionsmiljöer: Ett labb i CI/CD-pipelinen kan köra flera olika förproduktionsmiljöer eller datorer samtidigt för asynkron testning. Du kan distribuera och hantera olika supportinfrastrukturer och byggagenter i ett labb.

Använda labb i CI/CD-pipelines

CI/CD-pipelinen är en viktig DevOps-komponent. Pipelinen integrerar koden från en utvecklares pull-begäran med befintlig kod och distribuerar koden till produktionsekosystemet. För DevTest Labs-integrering behöver inte alla resurser finnas i ett labb. Du kan till exempel konfigurera en Jenkins-värd utanför labbet för en mer beständig resurs. Här följer några specifika exempel på integrering av labb i CI/CD-pipelinen.

Skapa

Bygg-pipelinen skapar ett paket med komponenter som ska testas tillsammans och överlämnas för att släppas. Dynamiskt skapande av infrastruktur ger bättre kontroll. Labb kan vara en del av bygg-pipelinen som platser för byggagenter och andra supportresurser. DevTest Labs kan begränsa labbåtkomsten, vilket ökar säkerheten för byggagenter och minskar risken för oavsiktlig skada.

Med möjligheten att ha flera miljöer i ett labb kan varje version köras asynkront. Bygg-ID:t är en del av miljöinformationen som unikt identifierar resurserna i en specifik version.

Testa

En CI/CD-pipeline kan automatisera skapandet av DevTest Labs-resurser som virtuella datorer och miljöer för automatiserad och manuell testning. Pipelinen använder artefakter eller formler för bygginformation för att skapa virtuella datorer med olika anpassade testkonfigurationer.

Frisläpp

Lanseringsprocessen kan använda DevTest Labs för verifiering innan koden distribueras. Processen liknar testning. Produktionsresurser bör inte distribueras i DevTest Labs.

Anpassning

Azure Pipelines, en komponent i Azure DevOps Services, har befintliga uppgifter för att manipulera virtuella datorer och miljöer i specifika labb. Azure Pipelines är ett sätt att hantera CI/CD-pipelinen. Du kan integrera ett labb i alla system som stöder anrop av REST-API:er, körning av PowerShell-skript eller azure CLI.

Vissa CI/CD-pipelinehanterare har befintliga plugin-program med öppen källkod som kan hantera Azure- och DevTest Labs-resurser. Du kan behöva använda anpassade skript för att passa pipelinens behov. När du kör en uppgift använder du ett huvudnamn för tjänsten med lämplig roll, vanligtvis Deltagare, för att få åtkomst till labbet.

Nästa steg