Zodra een zelfgehoste Git-runner onderdeel wordt van de dagelijkse workflow, wordt die een productieafhankelijkheid: ontwikkelaars zijn dan afhankelijk van de wachtrij, toolchain, netwerktoegang, geheimen, caches en hersteltijd ervan.
Daarom moet de topologie de besturing van de uitvoering scheiden, taken wegwerpbaar maken en alleen de status bewaren die bewust wordt gedeeld. Een snelle, persistente runner is handig, maar verborgen afwijkingen en ruim toegewezen inloggegevens kunnen van dat gemak een kwetsbare vertrouwensgrens maken.
Behandel de runner als uitvoering van externe code
Elke geaccepteerde taak voert code uit die door de repository wordt beheerd, op infrastructuur die je zelf beheert. Bepaal welke repositories, branches, bijdragers en pull-requestgebeurtenissen toegang krijgen tot de runner voordat je implementatie- of pakketgegevens toevoegt.
Een op microVM's gebaseerd runnerontwerp gebruikt virtuele machines voor eenmalig gebruik om de prestaties van zelfgehoste runners te behouden en tegelijk de status die van de ene taak naar de volgende wordt meegenomen te beperken.
Gebruik aparte runnergroepen voor vertrouwde releasetaken en gewone tests. Een workflow die door het publiek of vanuit een fork wordt gestart, mag geen uitvoeringsomgeving delen met geheimen voor productie-implementaties.
Ga van รฉรฉn snelle machine naar afspraken over de wachtrij
Dagelijks gebruik schept verwachtingen over de ophaaltijd, gelijktijdigheid, annulering en prioriteit. Meet wachttijd in de wachtrij afzonderlijk van de taakduur, zodat een trage test niet wordt verward met onvoldoende runnercapaciteit.
Stel de gelijktijdigheid lager in dan het punt waarop gelijktijdige builds het geheugen, de opslagruimte of Docker-downloads verzadigen. Houd capaciteit vrij voor interactieve taken of releasetaken als die niet achter lange testmatrices mogen wachten.
Leg de terugvaloptie voor ontwikkelaars vast wanneer de runner offline is: uitvoering op een gehoste runner, een lokaal commando of een uitgestelde, niet-kritieke taak. Zonder terugvaloptie leidt onderhoud tot ongeplande uitval van ontwikkelwerk.
Houd cache die opnieuw kan worden opgebouwd gescheiden van duurzame status
| Runnerstatus | Behouden? | Bescherming |
|---|---|---|
| Uitgecheckte broncode | Nee | Ophalen per taak |
| Afhankelijkheids- en laagcache | Opnieuw op te bouwen | Quota en garbagecollection |
| Runnerregistratie | Vervangbaar | Geautomatiseerde registratie |
| Buildartefacten | Volgens het bewaarbeleid | Externe opslag voor artefacten |
| Geheimen en implementatiesleutels | Ja, maar niet op schijf | Afgeschermde geheime dienst |
Caches verbeteren de dagelijkse workflow, maar moeten een groottelimiet, eigenaarschapsmodel en verwijderregel hebben. Buildartefacten en bewijs van releases horen op een externe bestemming met een expliciet bewaarbeleid, niet in een onbeperkt groeiende werkruimtemap.
Zorg dat de runner opnieuw kan worden aangemaakt vanaf een image of inrichtingsscript. Als het opnieuw opbouwen van de host de enige ondertekeningssleutel of het enige testresultaat vernietigt, zijn die assets aan de verkeerde rol gekoppeld.
Voeg patchbeheer, waarneembaarheid en eigenaarschap bij storingen toe
Houd de runnerversie, patches voor het besturingssysteem, versies van Docker of toolchains, schijfgebruik, percentage mislukte taken, wachtrijvertraging en cachegroei bij. Wijs รฉรฉn onderhoudsvenster en รฉรฉn eigenaar aan, ook wanneer de runner op een persoonlijke server draait.
Uit een empirisch onderzoek naar workflowonderhoud bleek dat automatisering zelf doorlopend werk oplevert voor het oplossen van bugs en het verbeteren van CI. Zelf hosten voegt de levenscyclus van de host toe aan die onderhoudslast.
Genereer meldingen bij een offline status, herhaalde taakfouten, volle schijven en uitzonderlijk lange wachtrijen. Uit de logs moet blijken of de fout werd veroorzaakt door repositorycode, de runnerimage, netwerktoegang of de host.
Gebruik een gereedheidstest voor dagelijkse workflows
Bouw een runner opnieuw op, roteer een implementatie-inloggegeven, voer twee gelijktijdige builds uit, vul de cache en ruim die op, en haal de host tijdens een taak bewust offline. Controleer of ontwikkelaars de storing kunnen zien en het terugvalpad kunnen gebruiken.
Houd de runner op รฉรฉn host wanneer uitval acceptabel is en taken vertrouwd zijn. Splits workloads voor releases, niet-vertrouwde taken of specifieke hardware op wanneer die andere inloggegevens of onderhoudsvensters vereisen. De gids voor besturingssystemen voor homeservers helpt de runnerhost af te stemmen op herhaalbare updates en herstel.
Behandel de runner niet langer als een hobbyservice wanneer gemiste taken releases of klantwerk blokkeren. Definieer op dat moment het service-eigenaarschap, de reservecapaciteit en een geteste vervanging, net als voor elke andere ontwikkelingsafhankelijkheid.
Definitieve installatieregel
De installatie is geslaagd wanneer elke service een benoemde rol, beschermde status, gecontroleerde toegangsroute, geteste herstelprocedure en meetbare aanleiding heeft om de topologie op te splitsen of uit te breiden.
NAS- en serverconfiguratie
Meer om te lezen

Kan een server in een studentenkamer stil genoeg werken om te slapen, studeren en videogesprekken te voeren?
Ja, een server in een studentenkamer kan onopvallend blijven als de hardware energiezuinig is, trillingen van de opslag worden beperkt, zware taken worden ingepland...

Een studentenhomelab dat meeverhuist van de studentenkamer naar het eerste appartement
Houd een studentenhomelab draagbaar door services los te koppelen van de netwerkinfrastructuur in specifieke kamers, de hardware tot een minimum te beperken, een back-up...

Eรฉn homeserver delen met huisgenoten zonder accounts of privรฉbestanden te delen
Geef elke huisgenoot een eigen account, privรฉopslag en alleen de gedeelde rollen die nodig zijn; houd beheer, back-ups en het intrekken van toegang gescheiden.



