Srovnání
Runnery CRACI vs runnery hostované na GitHubu
Zůstaňte u GitHub Actions a změňte jen stroj, na kterém vaše joby běží. Buildy skončí přibližně dvakrát rychleji, každá minuta stojí méně a každý build zanechá záznam toho, co stáhl.
Aktualizováno
Stejné workflow, rychlejší runner
Pokud používáte GitHub Actions, vaše joby běží na runnerech hostovaných na GitHubu, pokud jste si nenastavili vlastní. Jsou pohodlné: každý job dostane čerstvý virtuální stroj, není co provozovat a k dispozici jsou Linux, Windows i macOS.
CRACI je runner kompatibilní s GitHub Actions. Nainstalujte GitHub App CRACI do své organizace, pro všechny repozitáře nebo vybranou sadu, a změňte ve svém workflow jeden řádek:
runs-on: craci
Soubory workflow, actions i rozhraní GitHubu zůstávají stejné. CRACI nahrazuje runner, ne GitHub Actions, a dává vám tři věci, které univerzální runner nedá: rychlejší buildy, nižší účet a bezpečnost dodavatelského řetězce zabudovanou přímo do stroje, na kterém job běží.
| Funkce | CRACI | Runnery hostované na GitHubu |
|---|---|---|
| Rychlost buildu | Přibližně 2krát rychlejší | Výchozí stav |
| Cena 10minutového buildu | $0.020 při 2násobné rychlosti | $0.060 |
| Cena za minutu, 2 vCPU Linux x64 | $0.004 | $0.006 |
| Účtování | Po sekundách | Každý job se zaokrouhluje nahoru na celou minutu |
| Zaznamenává, co každý build stáhl | SBOM pro každý job, se stavem úplnosti | Graf závislostí čte soubory v repozitáři |
| Politika odchozího provozu buildu | Pro každý job, výchozí zákaz nebo povolení, fail-closed | Privátní síť Azure u větších runnerů |
| Podepsaný původ artefaktů | Bez podepsaného původu | Atestace Sigstore, SLSA Build Level 2 nebo 3 |
| Runnery pro Windows a macOS | Dnes Linux na x86-64 a ARM64; Windows a macOS v plánu vývoje | |
| Bezplatné minuty v ceně | Platíte za minutu od první minuty, bez měsíčního poplatku | 2 000 až 50 000 měsíčně; zdarma pro veřejné repozitáře |
| Nastavení | Nainstalujte GitHub App CRACI, změňte runs-on na craci | Vestavěné, například ubuntu-latest |
- Součástí
- Částečně
- Není součástí
- V plánu vývoje
Rychlost
Buildy na CRACI skončí přibližně za polovinu času, který zaberou na standardních hostovaných runnerech GitHubu. Sčítají se tři věci: rychlejší hardware, kratší čekání ve frontě před startem jobu a cache.
O kolik se zrychlí vaše vlastní buildy, závisí na zátěži. Nejvíc získají kompilace a testovací sady vázané na CPU; joby, které většinu času čekají na síť nebo na externí služby, získají méně. Co pomáhá:
- Velikosti runnerů od 1 do 32 výpočetních jednotek, takže náročné joby si mohou říct o víc.
- Nativní x86-64 a ARM64, takže buildy pro ARM nepotřebují emulaci.
- Podpora cache GitHub Actions a navíc Docker Engine, Buildx a Compose v2 v každém jobu.
- Vnořená virtualizace na x86-64 pro joby, které spouštějí vlastní virtuální stroje.
Nejlepším testem je vaše vlastní pipeline: přesuňte jeden job a porovnejte časy vedle sebe v GitHubu.
Cena
Účet snižují dvě věci současně. Každá minuta je levnější a rychlejší build jich spotřebuje méně.
CRACI účtuje $0.002 za vCPU-minutu, měřeno po sekundách, takže standardní 2vCPU linuxový runner stojí $0.004 za minutu. GitHub uvádí svůj standardní 2jádrový runner Linux x64 za $0.006 za minutu, takže minuta CRACI stojí přibližně o 33 % méně.
10minutový build
Vezměte build, který běží 10 minut na 2jádrovém runneru hostovaném na GitHubu:
| Funkce | CRACI | Runnery hostované na GitHubu |
|---|---|---|
| Doba buildu | 5 minut | 10 minut |
| Cena za minutu | $0.004 | $0.006 |
| Cena za build | $0.020 | $0.060 |
| 1 000 buildů měsíčně | $20 | $60 |
| Rozdíl | Přibližně o 67 % méně, tedy 3krát levnější |
Samotný rozdíl v ceně ušetří přibližně 33 %. Na přibližně 67 % to dotáhne kratší build. Pokud build na vaší zátěži rychlejší není, stále platíte nižší cenu za minutu.
Co dalšího mění účet
- Zaokrouhlování. GitHub zaokrouhluje každý job nahoru na celou minutu; CRACI měří po sekundách. Job, který trvá 10 minut 20 sekund, se na GitHubu účtuje jako 11 minut a pipeline s mnoha krátkými joby (lint, testovací shardy, checky) platí za spoustu nevyužitých sekund.
- Minuty v ceně. GitHub zahrnuje podle vašeho tarifu 2 000 až 50 000 minut měsíčně a standardní runnery jsou pro veřejné repozitáře zdarma. CRACI nemá bezplatný tarif ani minuty v ceně: platíte za minutu buildu od první minuty, bez měsíčního poplatku. V rámci limitu GitHubu jsou tam mezní náklady nulové.
- Architektura a velikost. CRACI účtuje stejnou sazbu pro ARM64 i x86-64. 2jádrový runner arm64 na GitHubu stojí $0.005 za minutu, takže $0.004 u CRACI je tam o 20 % méně. Při 32 vCPU stojí CRACI $0.064 za minutu, přibližně o 22 % méně než $0.082 na GitHubu pro x64, ale 32jádrový runner arm64 na GitHubu za $0.050 je za minutu levnější než CRACI. Liší se i paměť: výpočetní jednotka CRACI má 3 GB RAM na vCPU a standardní 2jádrový privátní runner GitHubu má 8 GB. Než začnete porovnávat, zvolte konfiguraci, kterou vaše buildy potřebují.
Aktuální podmínky najdete v ceníku CRACI.
Bezpečnost dodavatelského řetězce v runneru
Tohle dělá runner CRACI a univerzální runner k tomu navržený není.
Záznam každé závislosti, kterou build stáhl
Během každého jobu zaznamenává proxy, která rozumí balíčkům, provoz ke zdrojům balíčků: npm, PyPI, RubyGems, Composer, Cargo, Go, Nix, OCI, apt, apk a Git, plus předvolby pro stahování. Důkazy putují spolu s cache CI, takže balíčky obnovené z cache se stále započítají. Každý job vytvoří SBOM ve formátu CycloneDX nebo SPDX se stavem úplnosti pro každý job a každou cache.
Graf závislostí GitHubu se sestavuje z manifestů a lockfilů ve vašem repozitáři a lze jej exportovat jako SPDX. Popisuje repozitář, ne konkrétní build.
Kontrola nad tím, kam se build může připojit
Egress policy v CRACI mají výchozí zákaz nebo výchozí povolení, s 24 vestavěnými předvolbami softwarových zdrojů, typovanými vlastními zdroji pro npm, PyPI, apt, apk, Go proxy, Nix, Cargo, registry OCI a Git a explicitními pravidly pro TLS, TCP, UDP a ICMP. Politiky se ověřují před startem jobu, při selhání vše zablokují (fail-closed) a při porušení pošlou upozornění. Při politice výchozího zákazu se kompromitovaná závislost, která se pokusí spojit s neočekávaným hostitelem, zastaví na runneru.
Větší runnery GitHubu nabízejí statické IP adresy a privátní síť Azure, díky nimž můžete řídit odchozí přístup přes vlastní síť v Azure. To je užitečné, ale jde o jiný přístup: síťovou infrastrukturu, kterou nastavujete v Azure, místo politiky připojené k jobu.
Původ (provenance)
API vrací SBOM, síťové záznamy a původ. CRACI původ nepodepisuje a nedeklaruje žádnou úroveň SLSA.
GitHub nabízí atestace artefaktů postavené na Sigstore, které podle GitHubu samy o sobě poskytují SLSA v1.0 Build Level 2 a s opakovaně použitelnými workflow Level 3. Pokud je pro vás podepsaný původ nebo formální úroveň SLSA požadavkem, hovoří to ve prospěch GitHubu.
Izolace a umístění dat
Joby CRACI běží v izolovaných virtuálních strojích. V tarifu Enterprise nabízí CRACI uložení dat v EU, přičemž buildy běží na evropské bare-metal infrastruktuře.
Kdy zůstat u runnerů hostovaných na GitHubu
- Potřebujete runnery pro Windows nebo macOS. CRACI je dnes pouze pro Linux; Windows a macOS jsou v plánu vývoje.
- Vaše repozitáře jsou veřejné a standardní runnery vám stačí zdarma.
- Vaše využití se vejde do minut zahrnutých ve vašem tarifu.
Mnoho týmů kombinuje obojí: linuxové joby pro build a testy na CRACI, joby pro macOS a Windows na GitHubu. Protože
přechod je jen label runs-on, můžete přesouvat job po jobu. Jak na cache, OIDC a záložní řešení, se
dočtete v návodu jak změnit poskytovatele runnerů.
Přečtěte si více o integraci do CI/CD a generování SBOM z doby buildu. Startupy se mohou přihlásit do programu pro startupy, který zahrnuje nejméně 100 000 bezplatných minut buildu.
Vyzkoušejte to na jednom workflow
Změňte runs-on u jediného jobu, spusťte ho a porovnejte dobu buildu, účet i SBOM.
Rezervujte si demo