Välj Microsofts värdbaserade agent eller en lokal byggagent

Slutförd

I den här lektionen får du lära dig om några av de faktorer som du bör tänka på när du väljer en byggagent. Du får lära dig om några av fördelarna och begränsningarna med att använda en Microsoft-värdbaserad agent och vad som ingår när du konfigurerar en egen privat byggagent.

Vad är byggagenter och agentpooler?

En byggagent är ett system som utför bygguppgifter. Du kan se det som en dedikerad server som kör din byggprocess.

Anta att du har ett Azure Pipelines-projekt som tar emot byggbegäranden många gånger per dag, eller kanske har du flera projekt som kan använda samma typ av byggagent. Du kan ordna byggagenter i agentpooler för att säkerställa att det finns en server som är redo att bearbeta varje byggbegäran.

När ett bygge utlöses, väljer Azure-pipelines en tillgänglig byggagent från poolen. Om alla agenter är upptagna väntar processen på att någon ska bli tillgänglig.

När du använder Microsofts värdbaserade agenter kan du ange vilken VM-avbildning som ska användas från poolen. Här är ett exempel från din befintliga byggkonfiguration som använder en Ubuntu 20.04-byggagent:

pool:
  vmImage: 'ubuntu-20.04'
  demands:
  - npm

När du använder Microsofts värdbaserade agenter kan du använda vmImage för att ange vilken typ av system du behöver. Microsoft erbjuder många typer av VM-avbildningar, inklusive sådana som kör Windows, macOS och olika varianter av Linux.

I avsnittet demands visas vilken programvara eller vilka funktioner byggdatorn måste ha.

När du använder en byggagent från din egen pool, även kallat en privat pool, anger du namnet på din pool. Här är ett exempel:

pool:
  name: 'MyAgentPool'
  demands:
  - npm

När du inte behöver något demands-avsnitt kan du förkorta syntaxen så här:

pool: 'MyAgentPool'

Du skapar en byggagent och lägger till den i en pool senare i den här modulen.

Vilken typ av agenter kan jag använda?

När du väljer en byggagent finns det två faktorer att tänka på:

  • Det operativsystem som du vill bygga på
  • Om du kan använda en Microsoft-värdbaserad agent eller om du behöver ange en egen agent

Azure-pipelines stöder följande operativsystem:

Vilken byggagent du väljer beror främst på vilka verktyg du använder för att skapa din kod. Om du använder Xcode för att bygga dina program, kan du exempelvis välja en macOS-agent. Om du behöver Visual Studio väljer du sannolikt en Windows-agent.

Din befintliga byggkonfiguration använder en värdbaserad agent från Microsoft. Värdbaserade agenter körs på infrastruktur som Microsoft tillhandahåller åt dig.

En privat agent använder infrastruktur som du tillhandahåller. Din agent kan vara ett system som körs i molnet eller i ditt datacenter. Båda systemen fungerar så länge agenten uppfyller dina krav och kan ansluta till Azure Pipelines. I den här modulen använder du en virtuell dator som körs på Azure, vilket vi tillhandahåller.

När ska jag använda min egna byggagent?

För många bygguppgifter gör en Microsoft-värdbaserad agent allt du behöver. Det är det enklaste sättet att komma igång.

Microsoft hand tar om all säkerhet och uppdateringar av operativsystemet åt dig. Allt du behöver göra är att definiera den byggkonfiguration som du vill köra.

Värdbaserade agenter innehåller också programvara för att skapa många vanliga typer av program. Du kan lägga till annan programvara som du behöver under byggprocessen.

Microsoft-värdbaserade agenter har några begränsningar, bland annat:

  • Byggvaraktighet: Ett byggjobb kan köras i upp till sex timmar.
  • Diskutrymme: Värdbaserade agenter tillhandahåller en fast mängd lagringsutrymme för dina källor och dina byggutdata. Det kanske inte är tillräckligt med lagringsutrymme.
  • CPU, minne och nätverk: Värdbaserade agenter körs på virtuella Microsoft Azure-datorer för generell användning. Standard_DS2_v2 beskriver egenskaperna för processor, minne och nätverksegenskaper som du kan förvänta dig.
  • Interaktivitet: Du kan inte logga in på en värdbaserad agent.
  • Filresurser: Du kan inte släppa byggartefakter till UNC-filresurser (Universal Naming Convention).

Även om värdbaserade agenter är relativt enkla att konfigurera finns det vissa fördelar med att använda dina egna byggagenter, och vi håller undan de begränsningar som vi just beskrev.

När du till exempel använder värdbaserade agenter delar du infrastruktur med andra Azure DevOps-användare. Det tar vanligtvis bara några sekunder att starta bygget, men det kan ta längre tid beroende på belastningen på Microsoft-systemet.

När du använder värdbaserade agenter får du dessutom ett rent system med varje version. När du tar med din egen byggagent kan du bestämma om du vill utföra en ren version varje gång eller utföra en inkrementell version. Med en inkrementell version bygger du på befintliga byggverktyg och kompilerad kod. En inkrementell version kan ta mindre tid att slutföra, eftersom systemet redan har många av byggverktygen och beroende komponenter installerade.

Eftersom bygginfrastrukturen är din, är det dock ditt ansvar att se till att dina byggagenter innehåller de senaste uppdateringarna för programvara och säkerhet.

Hur konfigurerar man en privat byggagent?

En privat byggagent innehåller den programvara som krävs för att skapa dina program. Den innehåller även agentprogramvara som gör det möjligt för systemet att ansluta till Azure Pipelines och ta emot byggjobb.

När du konfigurerar en privat agent anger du den infrastruktur som byggena körs på. Detta ger dig flexibilitet i hur du skapar och underhåller dina agenter.

Du kan t.ex.:

  • Konfigurera byggagenten manuellt: Du tar upp systemet, loggar in och installerar dina byggverktyg och agentprogramvaran interaktivt.

  • Automatisera processen: Du tar upp systemet och kör ett skript eller verktyg för att installera byggverktygen och agentprogramvaran. Du kan konfigurera agenten när systemet är online eller under etableringen.

    När du till exempel kör byggagenter i Azure kan du använda en Azure Resource Manager-mall (ARM-mall) eller Bicep för att ta upp systemet och konfigurera det så att det fungerar som en byggagent, allt i ett steg. Terraform av HashiCorp är ett annat sätt att automatisera processen på. Terraform fungerar i många typer av infrastruktur, inklusive Azure.

  • Skapa en avbildning: Du skapar en avbildning – eller ögonblicksbild – av en konfigurerad miljö. Du kan sedan använda avbildningen till att skapa så många identiska system som du behöver i din pool.

Manuell konfiguration är ett bra sätt att komma igång, eftersom det gör att du kan förstå processen. Det är också det snabbaste sättet att komma igång när du bara behöver en byggagent.

Automatisering är användbart när du behöver många byggagenter, eller om du behöver ta upp och ta bort bygginfrastrukturen regelbundet. Du kan gå från en manuell process till en automatiserad process när du behöver flera agenter.

Bilder är en form av automatisering. De kan hjälpa till att spara tid eftersom all programvara är förkonfigurerad. Som en kompromiss kan du behöva återskapa avbildningarna regelbundet för att införliva de senaste os-korrigeringarna och byggverktygen. Packer av HashiCorp är ett populärt verktyg för att skapa avbildningar.

För ditt Space Game-scenario bestämmer du dig för att använda en privat byggagent.

Testa dina kunskaper

1.

Anta att du skapar ett tv-spel. Byggprocessen tar två timmar att köra och använder 18 GB till 20 GB diskutrymme för att kompilera speltillgångarna. Vilken typ av byggagent bör du använda?

2.

Anta att du skapar ett program som körs på macOS, Linux och Windows. Hur kan du skapa appen för varje plattform du riktar in dig på?

3.

En lokal byggagent: