A Microsoft által üzemeltetett vagy saját üzemeltetésű fordítóügynök kiválasztása

Befejeződött

Ebben a leckében megismerhet néhány tényezőt, amelyet figyelembe kell vennie egy buildügynök kiválasztásakor. Megismerheti a Microsoft által üzemeltetett ügynök használatának néhány előnyét és korlátozását, valamint azt, hogy mi történik a saját privát buildügynök beállításakor.

A fordítóügynök és az ügynökkészlet?

Egy fordítóügynök fordítási feladatokat ellátó rendszer. Felfogható a fordítási folyamatokat futtató dedikált kiszolgálókánt is.

Tegyük fel, hogy van egy Azure Pipelines-projektje, amely naponta többször fogad buildkérelmeket, vagy akár több projektje is van, amelyek mindegyike ugyanazt a buildügynököt használhatja. A fordítóügynököket ügynökkészletekbe szervezve biztosíthatja, hogy minden fordítási kérés feldolgozására készen álljon egy kiszolgáló.

Fordítás kezdeményezésekor az Azure Pipelines kiválaszt egy rendelkezésre álló fordítóügynököt a készletből. Ha minden ügynök foglalt, a folyamat megvárja, hogy az egyik felszabaduljon.

A Microsoft által üzemeltetett ügynök használata esetén megadhatja a készletből használni kívánt virtuálisgép-lemezképet. Íme egy példa a meglévő buildkonfigurációból, amely egy Ubuntu 20.04 buildügynököt használ:

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

A Microsoft által üzemeltetett ügynök használata esetén a vmImage használatával adhatja meg, hogy milyen típusú rendszerre van szüksége. A Microsoft sokféle típusú virtuálisgép-lemezképet kínál, köztük Windows, macOS és különböző Linux rendszereket futtatókat is.

A demands sor adja meg, hogy a fordítást végző gépnek mely szoftverekkel vagy képességekkel kell rendelkeznie.

Ha saját, úgynevezett privát készletben lévő fordítóügynököt használ, a készlet nevét kell megadnia. Példa:

pool:
  name: 'MyAgentPool'
  demands:
  - npm

Ha a demands sorra nincs szükség, akkor a szintaxis az alábbi módon rövidíthető:

pool: 'MyAgentPool'

A modul későbbi részében létrehozhat egy fordítóügynököt, és felveheti azt egy készletbe.

Milyen ügynökök használhatók?

A buildügynök kiválasztásakor két tényezőt kell figyelembe venni:

  • Az az operációs rendszer, amelyre építeni szeretne
  • Használhatja-e a Microsoft által üzemeltetett ügynököt, vagy meg kell adnia a saját ügynökét

Az Azure Pipelines az alábbi operációs rendszereket támogatja:

A választott buildügynök elsősorban a kód készítéséhez használt eszközöktől függ. Ha alkalmazásait például Xcode használatával készíti, választhat macOS-ügynököt. Ha a Visual Studióra van szüksége, akkor bizonyára Windows-ügynököt választ.

Meglévő fordítási konfigurációja a Microsoft által üzemeltetett ügynököt használ. A üzemeltetett ügynökök a Microsoft által biztosított infrastruktúrán futnak.

A magánügynök az Ön által biztosított infrastruktúrát használja. Az ügynök lehet egy olyan rendszer, amely a felhőben vagy az adatközpontban fut. Mindkét rendszer működik, mindaddig, amíg az ügynök megfelel a követelményeknek, és csatlakozni tud az Azure Pipelineshoz. Ebben a modulban egy Azure-on futó virtuális gépet fog használni, amelyet mi biztosítunk.

Mikor érdemes saját fordítóügynököt használni?

Számos buildelési feladat esetén a Microsoft által üzemeltetett ügynök mindent megtesz, amire szüksége van. Az induláshoz ez a legegyszerűbb.

A Microsoft gondoskodik Ön helyett az összes biztonsági és más operációsrendszer-frissítésről. Mindössze meg kell határoznia a futtatni kívánt buildkonfigurációt.

Az üzemeltetett ügynökök a sok gyakori alkalmazástípus fordításához szükséges szoftvereket is tartalmazzák. Ezek mellé felveheti a fordítási folyamat során igényelt egyéb szoftvereket.

A Microsoft által üzemeltetett ügynökök néhány korlátozással rendelkeznek, amelyek a következők:

  • Összeállítás időtartama: A buildelési feladat akár hat órán keresztül is futtatható.
  • Lemezterület: Az üzemeltetett ügynökök rögzített mennyiségű tárterületet biztosítanak a forrásokhoz és a buildkimenetekhez. Lehet, hogy ez nem elegendő tárhely.
  • CPU, memória és hálózat: A üzemeltetett ügynökök általános célú Microsoft Azure-beli virtuális gépeken futnak. A Standard_DS2_v2 méret ismertetése leírja a CPU, a memória és a hálózat várható jellemzőit.
  • Interaktivitás: Nem tud bejelentkezni egy üzemeltetett ügynökbe.
  • Fájlmegosztások: A buildösszetevőket nem helyezheti át az univerzális elnevezési konvenciós (UNC) fájlmegosztásokra.

Bár az üzemeltetett ügynökök viszonylag könnyen beállíthatók, a saját buildügynökök használata bizonyos előnyökkel jár, az imént ismertetett korlátozásokat figyelmen kívül hagyva.

Üzemeltetett ügynökök használata esetén például az infrastruktúrát más Azure DevOps-felhasználókkal osztja meg. Bár általában csak másodpercek alatt indítja el a buildet, a Microsoft-rendszer terhelésétől függően hosszabb időt is igénybe vehet.

A üzemeltetett ügynökök használata esetén az egyes buildek tiszta rendszert kapnak. Amikor saját buildügynököt hoz létre, eldöntheti, hogy minden alkalommal tiszta buildet végez, vagy növekményes buildet hajt végre. Növekményes buildeléssel meglévő buildelési eszközökre és lefordított kódra építhet. A növekményes buildek végrehajtása kevesebb időt vehet igénybe, mivel a rendszer már telepítette a buildelési eszközöket és a függő összetevőket.

Ennek az az ára, hogy mivel a fordítási infrastruktúra a sajátja, Önnek kell gondoskodnia róla, hogy a fordítóügynökök a legfrissebb szoftvereket és biztonsági frissítéseket tartalmazzák.

Hogyan állítható be privát fordítóügynök?

A privát buildügynök tartalmazza az alkalmazások létrehozásához szükséges szoftvereket. Ügynökszoftvert is tartalmaz, amely lehetővé teszi a rendszer számára az Azure Pipelineshoz való csatlakozást és a buildelési feladatok fogadását.

Magánügynök beállításakor meg kell adnia azt az infrastruktúrát, amelyen a buildek futnak. Ennek köszönhetően ügynökeit rugalmasan alakíthatja ki és tarthatja karban.

Lehetőség van például a következőkre:

  • Állítsa be manuálisan a buildügynököt: Ön hozza létre a rendszert, jelentkezzen be, és interaktívan telepítse a buildelési eszközöket és az ügynökszoftvert.

  • Automatizálja a folyamatot: A rendszer üzembe helyezéséhez és egy szkript vagy eszköz futtatásával telepítheti a buildelési eszközöket és az ügynökszoftvert. Az ügynököt a rendszer működésbe lépése után, vagy az üzembe helyezési folyamat során is konfigurálhatja.

    Ha például buildügynököket futtat az Azure-ban, használhat egy Azure Resource Manager-sablont (ARM-sablont) vagy a Bicep-et a rendszer üzembe helyezéséhez, és konfigurálhatja buildügynökként, mindezt egyetlen lépésben. A HashiCorp termékével, a Terraformmal is automatizálhatja a folyamatokat. A Terraform sok infrastruktúra-típussal, köztük az Azure-ral is használható.

  • Kép létrehozása: Egy konfigurált környezet képét vagy pillanatképét hozza létre. Ez után a lemezkép használatával annyi egyforma rendszert hozhat létre készletében, amennyire szüksége van.

A manuális konfigurálás jó módszer az első lépésekre, mivel lehetővé teszi a folyamat megértését. Ez a módszer egyben a leggyorsabb is akkor, ha csak egy fordítóügynökre van szükség.

Az automatizálás akkor hasznos, ha sok buildügynökre van szüksége, vagy rendszeresen kell létrehoznia és lebontania a buildinfrastruktúrát. Ha több ügynökre van szüksége, áttérhet egy manuális folyamatról egy automatizált folyamatra.

A képek az automatizálás egy formája. Ezzel időt takaríthatnak meg, mivel az összes szoftver előre konfigurálva van. Kompromisszumként előfordulhat, hogy rendszeres időközönként újra kell építenie a rendszerképeket a legújabb operációsrendszer-javítások és -buildelési eszközök beépítéséhez. Egy népszerű lemezkép-készítő eszköz a HashiCorp terméke, a Packer.

A Space Game-forgatókönyv esetében úgy dönt, hogy privát buildügynököt használ.

Tesztelje tudását

1.

Tegyük fel, hogy videojátékot készít. A buildelési folyamat két órát vesz igénybe, és 18–20 GB lemezterületet használ a játékeszközök fordításához. Milyen fordítóügynököt használna?

2.

Tegyük fel, hogy macOS, Linux és Windows rendszeren futó alkalmazást készít. Hogyan hozhatja létre az alkalmazást minden megcélzott platformhoz?

3.

Egy saját üzemeltetésű fordítási ügynök: