Volba agenta sestavení hostovaného Microsoftem nebo v místním prostředí

Dokončeno

V této lekci se dozvíte o některých faktorech, které je potřeba vzít v úvahu při výběru agenta sestavení. Dozvíte se o některých výhodách a omezeních používání agenta hostovaného Microsoftem a o tom, co se týká nastavení vlastního agenta privátního sestavení.

Co jsou agenti sestavení a fondy agentů?

Agent sestavení je systém, který provádí úlohy sestavení. Představte si ho jako vyhrazený server, na kterém běží proces sestavení.

Představte si, že máte projekt Azure Pipelines, který přijímá žádosti o sestavení mnohokrát denně, nebo máte více projektů, které můžou používat stejný typ agenta sestavení. Můžete uspořádat agenty sestavení do fondů agentů, abyste zajistili, že je server připravený ke zpracování jednotlivých požadavků na sestavení.

Když se sestavení aktivuje, Azure Pipelines vybere z fondu dostupného agenta sestavení. Pokud jsou všichni agenti zaneprázdněni, proces počká, až bude jeden dostupný.

Pokud používáte agenta hostovaného Microsoftem, zadáte image virtuálního počítače, která se má použít z fondu. Tady je příklad z vaší stávající konfigurace sestavení, která používá agenta sestavení Ubuntu 20.04:

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

Pokud používáte agenta hostovaného Microsoftem, použijete vmImage k určení typu systému, který potřebujete. Microsoft poskytuje mnoho typů imagí virtuálních počítačů, včetně těch, které používají Windows, macOS a různé varianty Linuxu.

Tato demands část určuje, který software nebo možnosti vyžadujete, aby měl počítač sestavení.

Při použití agenta sestavení z vlastního fondu, označovaného také jako soukromý fond, zadáte název fondu. Tady je příklad:

pool:
  name: 'MyAgentPool'
  demands:
  - npm

Pokud oddíl nepotřebujete demands , můžete syntaxi zkrátit takto:

pool: 'MyAgentPool'

Vytvoříte agenta sestavení a přidáte ho do fondu později v tomto modulu.

Jaký druh agentů můžu použít?

Při výběru agenta sestavení je potřeba vzít v úvahu dva faktory:

  • Operační systém, na kterém chcete sestavit
  • Bez ohledu na to, jestli můžete použít agenta hostovaného Microsoftem, nebo potřebujete poskytnout vlastního agenta

Azure Pipelines podporuje tyto operační systémy:

Zvolený agent sestavení závisí hlavně na nástrojích, které používáte k sestavení kódu. Pokud například k vytváření aplikací používáte Xcode, můžete zvolit agenta pro macOS. Pokud potřebujete Visual Studio, pravděpodobně zvolíte agenta pro Windows.

Vaše stávající konfigurace sestavení používá agenta hostovaného Microsoftem. Hostovaní agenti běží na infrastruktuře, kterou vám Microsoft poskytuje.

Privátní agent používá infrastrukturu, kterou poskytnete. Vaším agentem může být systém, který běží v cloudu nebo ve vašem datacentru. Oba systémy fungují, pokud agent splňuje vaše požadavky a může se připojit ke službě Azure Pipelines. V tomto modulu použijete virtuální počítač, který běží v Azure, který poskytujeme.

Kdy mám použít vlastního agenta sestavení?

U mnoha úloh sestavení dělá agent hostovaný Microsoftem všechno, co potřebujete. Je to nejjednodušší způsob, jak začít.

Společnost Microsoft se postará o všechny aktualizace zabezpečení a dalších aktualizací operačního systému za vás. Stačí definovat konfiguraci sestavení, kterou chcete spustit.

Hostovaní agenti také obsahují software pro vytváření mnoha běžných typů aplikací. Během procesu sestavení můžete přidat jakýkoli jiný software, který potřebujete.

Agenti hostovaní Microsoftem mají několik omezení, mezi která patří:

  • Doba trvání sestavení: Úloha sestavení může běžet až šest hodin.
  • Místo na disku: Hostovaní agenti poskytují pevné množství úložiště pro vaše zdroje a výstupy sestavení. Nemusí to být dostatek úložiště.
  • Procesor, paměť a síť: Hostovaní agenti běží na virtuálních počítačích Microsoft Azure pro obecné účely. Standard_DS2_v2 popisuje charakteristiky procesoru, paměti a sítě, které můžete očekávat.
  • Interaktivita: Nemůžete se přihlásit k hostovanému agentovi.
  • Sdílené složky: Artefakty sestavení nemůžete vypustit do sdílených složek UNC (Universal Naming Convention).

I když jsou hostovaní agenti relativně snadno nastaveni, existuje několik výhod pro používání vlastních agentů sestavení, přičemž si ponechte stranou omezení, která jsme právě popsali.

Pokud například používáte hostované agenty, sdílíte infrastrukturu s ostatními uživateli Azure DevOps. I když spuštění sestavení obvykle trvá jen několik sekund, může trvat déle v závislosti na zatížení systému Microsoftu.

Pokud používáte hostované agenty, získáte čistý systém s každým sestavením. Při používání vlastního agenta sestavení se můžete rozhodnout, jestli provést čisté sestavení pokaždé, nebo provést přírůstkové sestavení. S přírůstkovým sestavením vytvoříte existující nástroje sestavení a zkompilovaný kód. Dokončení přírůstkového sestavení může trvat kratší dobu, protože systém už má mnoho nástrojů sestavení a závislých součástí.

Jako kompromis, protože infrastruktura sestavení je vaše, je vaší zodpovědností zajistit, aby agenti sestavení obsahovali nejnovější opravy softwaru a zabezpečení.

Jak nastavíte privátního agenta sestavení?

Privátní agent sestavení obsahuje software, který je nutný k sestavení vašich aplikací. Obsahuje také software agenta, který umožňuje systému připojit se ke službě Azure Pipelines a přijímat úlohy sestavení.

Když nastavíte privátního agenta, poskytnete infrastrukturu, na které se sestavení spouští. To vám dává flexibilitu při vytváření a údržbě agentů.

Můžete například:

  • Ruční nastavení agenta sestavení: Zobrazíte systém, přihlásíte se a interaktivně nainstalujete nástroje sestavení a software agenta.

  • Automatizovat proces: Spustíte systém a spustíte skript nebo nástroj pro instalaci nástrojů sestavení a softwaru agenta. Agenta můžete nakonfigurovat po online režimu nebo během procesu zřizování.

    Když například spustíte agenty sestavení v Azure, můžete pomocí šablony Azure Resource Manageru (šablony ARM) nebo Bicep vyvolat systém a nakonfigurovat ho tak, aby fungoval jako agent sestavení, a to vše v jednom kroku. Terraform od HashiCorp je dalším způsobem, jak proces automatizovat. Terraform funguje s mnoha typy infrastruktury, včetně Azure.

  • Vytvoření image: Vytvoříte image (nebo snímek) nakonfigurovaného prostředí. Image pak použijete k vytvoření tolik identických systémů, kolik potřebujete ve fondu.

Ruční konfigurace je dobrým způsobem, jak začít, protože umožňuje pochopit proces. Je to také nejrychlejší způsob, jak nastavit, když potřebujete jenom jednoho agenta sestavení.

Automatizace je užitečná, když potřebujete mnoho agentů sestavení nebo potřebujete pravidelně vytvářet a rušit sestavování infrastruktury. Pokud potřebujete více agentů, můžete přejít z ručního procesu na automatizovaný proces.

Obrázky představují formu automatizace. Můžou ušetřit čas, protože veškerý software je předkonfigurovaný. Jako kompromis může být nutné pravidelně znovu sestavit image, aby zahrnovaly nejnovější opravy operačního systému a nástroje pro sestavení. Packer od HashiCorp je oblíbený nástroj pro vytváření obrázků.

Pro váš scénář Space Game se rozhodnete použít privátního agenta sestavení.

Prověřte si své znalosti

1.

Řekněme, že vytváříte videohru. Spuštění procesu sestavení trvá dvě hodiny a ke kompilaci herních prostředků používá 18 GB až 20 GB místa na disku. Jaký druh agenta sestavení můžete použít?

2.

Řekněme, že vytváříte aplikaci, která běží v systémech macOS, Linux a Windows. Jak můžete vytvořit aplikaci pro každou cílovou platformu?

3.

Agent sestavení v místním prostředí: