Prozkoumání Runners

Dokončeno

Spouštěče GitHubu jsou výpočetní prostředky, které spouštějí pracovní postupy GitHub Actions. Každý spouštěč může současně spustit jednu úlohu. Umožňují vývojářům provádět úlohy sestavení, testování a nasazení přímo z úložišť GitHub. Existují dva hlavní typy spouštěčů GitHubu:

  • Spouštěče hostované na GitHubu jsou virtualizované nebo kontejnerizované výpočetní prostředky poskytované a spravované GitHubem.
  • Spouštěče v místním prostředí jsou fyzické, virtualizované nebo kontejnerizované výpočetní prostředky, které uživatelé a organizace GitHub zřizují a spravují sami.

Každý typ má několik jedinečných vlastností, má několik jedinečných funkcí a zaručuje několik různých aspektů.

Je důležité si uvědomit, že GitHub důrazně doporučuje používat spouštěče v místním prostředí ve veřejných úložištích. Tím se zavádí významné bezpečnostní riziko, protože potenciálně umožňuje každému spouštět kód v rámci privátního prostředí organizace.

Spouštěče hostované na GitHubu

Spouštěčé hostované na GitHubu nabízejí praktické řešení pro spouštění pracovních postupů v rámci GitHub Actions a eliminují potřebu správy základních hardwarových a softwarových komponent. Jsou navržené tak, aby se škálovat automaticky na základě poptávky a zajistily optimální výkon během období využití ve špičce. GitHub nabízí několik předem nakonfigurovaných prostředí pro spouštěče hostované v GitHubu, které pokrývají různé konfigurace softwaru a operační systémy, včetně Ubuntu Linuxu, Microsoft Windows a macOS.

Spouštěče hostované na GitHubu zahrnují výchozí integrované nástroje operačního systému. Mezi spouštěče Ubuntu a macOS patří například grep, find a které. Aby uživatelé identifikovali všechny ostatní nástroje předinstalované na spouštěčích, můžou si prohlédnout vyúčtování softwaru (SBOM) pro každé sestavení imagí Windows a Ubuntu runneru. Alternativně si uživatelé můžou prohlédnout pododdíl Image Spouštěče v části Nastavení úlohy v protokolech pracovního postupu. Odkaz následující po položce Zahrnutý software popisuje všechny předinstalované nástroje na spouštěči, který spustil pracovní postup. Do spouštěčů hostovaných na GitHubu je také možné nainstalovat další software vytvořením úlohy, která balíčky nainstaluje jako součást existujícího pracovního postupu.

Spouštěče hostované na GitHubu běží v cloudové infrastruktuře GitHubu a využívají virtuální počítače nebo kontejnery ke spouštění pracovních postupů. Každé spuštění pracovního postupu je izolované v rámci vlastního prostředí a zajišťuje zabezpečení a reprodukovatelnost. Spouštěče hostované na GitHubu se bezproblémově integrují s GitHub Actions a umožňují uživatelům odkazovat na ně přímo v pracovních postupech hostovaných v úložištích GitHubu.

Při používání spouštěčů hostovaných na GitHubu existují určitá omezení využití GitHub Actions. Každá úloha v pracovním postupu má zejména maximální dobu provádění 6 hodin. Pokud úloha dosáhne tohoto limitu, úloha se ukončí a nedokončí se. Každé spuštění pracovního postupu je omezeno na 35 dnů. Pokud spuštění pracovního postupu dosáhne tohoto limitu, jeho spuštění se zruší. Toto období zahrnuje dobu trvání provádění a čas strávený čekáním a schválením.

Požadavky

Před implementací spouštěčů hostovaných na GitHubu musí mít uživatelé úložiště GitHub, kde můžou definovat pracovní postupy pomocí GitHub Actions. Spouštěče jsou k dispozici všem uživatelům GitHubu s přístupem k GitHub Actions.

Implementace

Na rozdíl od spouštěčů v místním prostředí se hostované GitHuby zřídí automaticky jako součást provádění jednotlivých pracovních postupů. Uživatelé definují pracovní postupy jako soubory ve formátu YAML uložené v adresáři .github/workflows v úložištích GitHub. V rámci konfigurace pracovního postupu určují uživatelé požadované prostředí spouštěče, včetně závislostí operačního systému a softwaru. Spouštěče s odpovídajícími specifikacemi jsou nastaveny na vyžádání při každé aktivaci pracovního postupu s jedním spouštěčem na úlohu. Triggery můžou být buď ruční, nebo automatické, na základě událostí, jako jsou nabízení kódu, žádosti o přijetí změn nebo události odeslání úložiště.
Spouštěčé hostované na GitHubu se ověřují pomocí tokenů nebo přihlašovacích údajů poskytovaných GitHub Actions. Spoléhají na integrované připojení ke komunikaci s platformou GitHubu a ke stažení artefaktů pracovního postupu.

Údržba

GitHub spravuje aktualizace a údržbu spouštěčů hostovaných na GitHubu a zajišťuje, že zůstanou aktuální s nejnovějšími verzemi softwaru a opravami zabezpečení. Softwarové nástroje, které jsou součástí spouštěčů, se aktualizují každý týden. Aktivity Runneru jsou monitorované a protokolované, usnadňují sledování provádění pracovních postupů a řešení potíží.

Licencování a náklady

Spouštěče hostované na GitHubu jsou zahrnuté v cenách gitHub Actions s fakturací na základě využití za minuty nad rámec úrovně Free. Uživatelé využívají automatizované a nákladově efektivní škálování, protože GitHub automaticky zřizuje a uvolní spouštěče na základě poptávky.

Spouštěče v místním prostředí

V porovnání s spouštěči hostovanými na GitHubu poskytují samoobslužné hostované nástroje větší možnosti kontroly a přizpůsobení, přičemž spouštěcí prostředí umožňují zajistit širší rozsah požadavků. Můžou být nasazené místně nebo v cloudu v závislosti na kritériích, jako je připojení k síti, náklady a dostupnost prostředků.

Spouštěče v místním prostředí se zřizují a spravují uživateli a poskytují jim úplnou kontrolu nad spouštěcím prostředím. Jsou plně přizpůsobitelné, včetně specifikací hardwaru, konfigurace softwaru a nastavení sítě. Usnadňují také integraci se stávající infrastrukturou a nástroji, což minimalizuje možnost problémů s kompatibilitou a interoperabilitou.

Na rozdíl od spouštěčů hostovaných na GitHubu neexistují žádné limity, jak dlouho trvá dokončení provádění jednotlivých úloh a spuštění pracovního postupu.

Požadavky

Uživatelé musí nastavit a nakonfigurovat spouštěče v místním prostředí ve zvolené infrastruktuře, včetně instalace softwaru spouštěče a jakýchkoli dalších závislostí softwaru. Zdrojový kód pro spouštěče v místním prostředí je k dispozici jako opensourcový projekt na GitHubu na webu https://github.com/actions/runner. Každý spouštěč v místním prostředí funguje jako agent, který komunikuje se službou GitHub Actions za účelem provádění pracovních postupů.

Pro přístup k platformě GitHub a stahování artefaktů pracovního postupu vyžadují spouštěče v místním prostředí odchozí síťové připojení, přihlašovací údaje pro ověřování a autorizaci. V závislosti na umístění spouštěčů může být nutné nakonfigurovat pravidla brány firewall tak, aby splňovala tyto požadavky.

Implementace

Stejně jako u spouštěčů hostovaných v GitHubu zahrnuje implementace definování pracovních postupů ve formátu YAML a jejich ukládání do adresáře .github/workflows v úložištích GitHubu. Aby však pracovní postupy používaly spouštěče v místním prostředí, musí je uživatelé nejdřív zaregistrovat a poskytnout požadované ověřovací tokeny nebo přihlašovací údaje. V rámci registrace uživatelé určují takové vlastnosti, jako je název spouštěče, popisky a parametry spouštěcího prostředí.

Registrace může probíhat na různých úrovních v rámci podniku:

  • Úroveň úložiště (jedno úložiště)
  • Organizační úroveň (více úložišť v organizaci)
  • Podniková úroveň (více organizací v rámci podniku)

Údržba

Uživatelé zodpovídají za aktualizaci a údržbu spouštěčů v místním prostředí, včetně instalace aktualizací softwaru a oprav zabezpečení. Údržba také zahrnuje monitorování stavu a výkonu spouštěče a také řešení potíží, ke kterým dochází v průběhu modulu runtime spouštěče.

Licencování a náklady

U spouštěčů v místním prostředí se neúčtují další poplatky za licencování nad rámec cen gitHub Actions a jakýchkoli souvisejících nákladů na infrastrukturu, včetně výpočetních prostředků, úložiště a sítě. Optimalizace přidělování a využití prostředků se stává zodpovědností uživatele.