GitHub Actions eller GitLab CI? Ti udviklere vender minutregnestykket

|Forfatter: QUASA's redaktion|6 min. læsning
GitHub Actions eller GitLab CI? Ti udviklere vender minutregnestykket

For ti udviklere er GitHub Team billigere end GitLab Premium i CostOps' Linux-scenarie: 74,80 mod 290 dollar om måneden, når sæder og CI-forbrug lægges sammen. GitLab Premium dækker hele scenariets forbrug med inkluderede minutter, mens GitHub Team får en ekstra minutudgift. Forskellen i sædepris er større end den udgift.

Det direkte svar gælder private projekter med almindelige Linux-runners og den samme antagne arbejdsbyrde. Windows, macOS, lagerforbrug og egne runners ændrer posterne, og en platform, holdet allerede betaler for, har en anden marginal CI-pris end et nyt abonnement. Derfor skal platformbetalingen holdes adskilt fra den samlede driftsomkostning.

Ti udviklere: sæder og minutter på samme regning

Scenariet regner med 50 builds pr. arbejdsdag, otte minutters samlet jobtid pr. build og 22 arbejdsdage. Det giver 8.800 jobminutter om måneden. Hvis et build består af flere jobs, er det summen af deres køretid, der hører hjemme i beregningen; parallelle jobs kan bruge flere minutter end den tid, udvikleren venter på hele pipelinen.

GitHub Teams prisoversigt angiver fire dollar pr. bruger om måneden og 3.000 inkluderede Actions-minutter. Ti sæder koster dermed 40 dollar. Med 8.800 minutter på en almindelig Linux-runner ligger 5.800 minutter over kvoten; til 0,006 dollar pr. minut giver det 34,80 dollar oveni, altså 74,80 dollar i samlet platformbetaling.

GitLabs prisside angiver Premium til 29 dollar pr. bruger om måneden ved årlig betaling, 10.000 computerminutter om måneden og ekstra minutter i pakker på 1.000 for ti dollar. Ti sæder svarer til 290 dollar om måneden. Scenariets 8.800 minutter på en lille Linux-runner holder sig inden for kvoten, så der skal ikke købes ekstra minutter. De 290 dollar er en månedlig sammenligningsværdi for et abonnement, der betales årligt.

  • GitHub Team: 40 dollar for sæder og 34,80 dollar for ekstra Linux-minutter, i alt 74,80 dollar.
  • GitLab.com Premium: 290 dollar for sæder og ingen ekstra minutpakker, i alt 290 dollar.
  • Forskel i platformbetaling: 215,20 dollar om måneden før eventuelt lagerforbrug og egen drift.

GitLab.com Free er ikke en direkte erstatning for Premium i dette eksempel: et privat øverste gruppeniveau på Free er begrænset til fem brugere. Team og Premium indeholder desuden forskellige funktioner. Hvis Premium allerede er betalt for andre behov, koster næste job inden for minutkvoten ikke et nyt sædeabonnement; ved et nyt platformvalg skal abonnementet derimod tælles med.

Operativsystem og runner-størrelse flytter minutprisen

GitHubs afregningsregler sætter standardprisen efter kvoten til 0,006 dollar pr. minut for Linux med to kerner, 0,010 dollar for Windows med to kerner og 0,062 dollar for macOS. En hypotetisk ekstra blok på 1.000 betalte minutter koster derfor henholdsvis 6, 10 og 62 dollar. GitHub Team har også særskilte inkluderede mængder til artefakter og cache; større runners betales særskilt og kan ikke bruge den inkluderede minutkvote.

GitLabs regler for computerminutter bruger i stedet faktorer på jobtiden: en lille Linux-runner har faktor 1, en mellemstor Linux-runner faktor 2, Windows i beta faktor 1 og en macOS M1-runner i beta faktor 6. Faktoren er ikke en dollarpris. Den bestemmer, hvor hurtigt jobbene bruger Premium-kvoten, og hvert job tæller med, også når flere jobs kører samtidig.

Holder man som et rent regneeksempel de 8.800 minutters jobtid konstant og flytter alt arbejdet til GitLabs mellemstore Linux-runner, bliver forbruget 17.600 computerminutter. De 7.600 minutter over kvoten kræver otte ekstra pakker til 80 dollar; sæder og pakker giver da 370 dollar. På den nævnte macOS-runner bliver forbruget 52.800 computerminutter og kræver 43 pakker til 430 dollar oven i sæderne. Virkelige builds kan tage forskellig tid på forskellige runners, så de beløb er følsomhedsberegninger, ikke målte priser for at flytte en pipeline.

Cache kan sænke køretiden; lager har sin egen måler

Hvis caching i et hypotetisk eksempel sænker den samlede jobtid fra otte til seks minutter pr. build, falder månedsforbruget fra 8.800 til 6.600 minutter. Med samme Linux-sats bliver GitHub Teams ekstra minutbetaling 21,60 dollar og platformbetalingen 61,60 dollar. GitLab Premium bliver på 290 dollar, fordi begge forbrugstal ligger under den inkluderede kvote. Besparelsen forudsætter, at cachen faktisk forkorter jobbene; den er ikke et målt resultat.

Lager følger ikke samme regnestykke som køretid. GitHub skelner mellem cache, artefakter og den lagerpulje, som artefakter deler med GitHub Packages; lager over de inkluderede mængder afregnes efter forbrug over tid. GitLab Premiums oplyste grænse for repository og LFS vedrører en anden lagerkategori end Actions-cache. En stor afhængighedscache, mange gemte testartefakter og et stort Git-repository bør derfor vurderes hver for sig. Ellers kan et tal for repository-plads komme til at ligne plads til buildartefakter, selv om det beskriver noget andet.

Caching ændrer heller ikke alle jobs lige meget. En cache, der sjældent rammer, skal stadig oprettes eller hentes, og en kortere installation hjælper kun den del af jobbet, der bruger den. I en pipeline med Linux-tests og macOS-builds kan det derfor være mere oplysende at opdele jobtiden efter runner-type end at trække den samme procentdel fra alle minutter.

Egne runners fjerner minutkøb, men tilføjer drift

På GitHub bruger jobs på egne runners ikke betalte GitHub-hostede runner-minutter. På GitLab.com bruger jobs på egne runners heller ikke den inkluderede pulje af computerminutter. Hvis alle scenariets jobs flyttes til egne runners, bliver platformbetalingen således 40 dollar for GitHub Team eller 290 dollar som månedlig værdi af GitLab Premium, forudsat at der ikke købes andre ydelser.

Den reelle omkostning er højere end platformbetalingen, når holdet selv stiller kapaciteten til rådighed. Maskiner eller cloudinstanser, lager, netværk, vedligeholdelse og arbejdet med at opdatere og sikre runnerne skal med. Der findes ikke et troværdigt fælles dollarbeløb for den post uden oplysninger om holdets kapacitetsbehov og driftsmiljø.

For GitHub Team sparer en fuld flytning af Linux-jobbene i eksemplet 34,80 dollar i månedligt minutkøb. Det er det beløb, som ekstra runnerdrift højst kan koste, hvis flytningen alene skal sænke denne platforms samlede udgift. For et hold, der allerede har egnet kapacitet, kan den ekstra udgift være mindre; for et hold, der skal anskaffe og drive den, kan den være større. På GitLab Premium er minutbesparelsen i selve Linux-eksemplet nul, fordi jobbene allerede ligger inden for kvoten. Her kan egne runners være relevante af andre driftsgrunde eller ved en arbejdsbyrde, som ellers kræver ekstra minutpakker.

Læs også:

Del:

Tilmeld dig vores nyhedsbrev

Få de seneste nyheder om Web3, AI og krypto direkte i din indbakke.

0