GitLab Server richtig dimensionieren
GitLab und CI getrennt dimensionieren
| Komponente | Lasttreiber | Gesondert planen |
|---|---|---|
| GitLab | Nutzer, Projekte, Datenbank | Updates und Integrationen |
| Runner | Parallelität und Jobdauer | Ressourcen und Zugriffsgrenzen |
| Registry & Artefakte | Images, Pakete, Build-Ausgaben | Aufbewahrung und Bereinigung |
| Sicherung | Daten und Konfiguration | Version und Restore-Test |
Arbeitslast erfassen
Projekt- und Benutzerzahlen erklären die Last nur teilweise. Messen Sie Repository-Größen, LFS, Registry, Artefakte, gleichzeitige Webzugriffe und Hintergrundaufgaben. Imports, Backups und Wartung erzeugen zusätzliche Spitzen. GitLabs offizielle Anforderungen sind Ausgangspunkte; eine belastbare Dimensionierung entsteht aus realer Nutzung und einem Wachstumskorridor.
Runner separat betrachten
CI-Runner führen fremdbestimmte Jobs aus und können CPU, RAM, I/O und Netzwerk sprunghaft belasten. Erfassen Sie parallele Jobs, Laufzeit, Images, Caches und Artefakte. Trennen Sie Runner vom GitLab-Hauptsystem, wenn Isolation, Skalierung oder Sicherheitsgrenzen dies verlangen. Prüfen Sie deshalb die Runner-Auslastung, bevor Sie den Webserver vergrößern.
Datenklassen kennen
Repositories, Datenbank, Uploads, LFS, Artefakte, Paket- und Container-Registry besitzen unterschiedliche Wachstumsmuster. Definieren Sie Aufbewahrung und Bereinigung bewusst. Ein voller Datenträger kann mehr als neue Commits verhindern. Überwachen Sie daher Kapazität und Trends statt nur die Erreichbarkeit der Anmeldeseite.
Upgradepfad prüfen
GitLab-Upgrades können vorgeschriebene Zwischenversionen und Datenbankmigrationen erfordern. Dokumentieren Sie Ausgangsversion, Edition, Integrationen und Erweiterungen. Testen Sie den Pfad mit einer Kopie und planen Sie Wartungsfenster sowie Rückfall. Secrets, Webhooks, OAuth-Anbindungen und Runner-Tokens gehören in die Inventur, aber nicht in öffentliche Dokumente.
Backup und Restore
Die GitLab-Dokumentation unterscheidet Anwendungsbackup und Konfiguration. Prüfen Sie, welche externen Daten – etwa Object Storage oder Registry – separat geschützt werden. Ein Restore muss zur Version passen und sollte isoliert geprobt werden. Protokollieren Sie die benötigte Zeit und die manuellen Schritte.
Integrationen gehören zum Systeminventar
Listen Sie Webhooks, Identitätsanbieter, Paketquellen und Deployment-Ziele auf. Hinterlegen Sie jeweils den technischen Zweck und eine verantwortliche Rolle, aber keine Geheimnisse in einer frei zugänglichen Dokumentation. Beim Umzug können geänderte Adressen oder Zertifikate solche Verbindungen beeinflussen. Prüfen Sie deshalb einen vollständigen Weg vom Commit bis zum freigegebenen Test-Deployment. Für den späteren Betrieb sollte außerdem klar sein, wer ablaufende Tokens ersetzt und wie Änderungen an Berechtigungen geprüft werden. Ein funktionierender Repository-Zugriff deckt diese Abhängigkeiten nicht ab.
Ein kleines Team kann große CI-Last erzeugen
Beispiel: Ein Entwicklungsteam hat acht aktive Nutzer und zwanzig Repositories. Auf den ersten Blick wirkt das klein. Wenn bei jedem Merge mehrere Container gebaut und umfangreiche Integrationstests gestartet werden, können trotzdem viele Jobs gleichzeitig laufen. Die benötigte Rechenleistung entsteht dann überwiegend auf den Runnern. Mehr Ressourcen für die GitLab-Weboberfläche allein verkürzen diese Warteschlange nicht.
Erfassen Sie daher die typischen Pipelines: Dauer, Parallelität, benötigtes RAM, temporärer Speicher und zu übertragende Artefakte. Unterscheiden Sie wiederkehrende Spitzen von seltenen Sonderläufen. Anschließend können Sie entscheiden, welche Jobs parallel laufen müssen und wo eine Warteschlange akzeptabel ist. So erkennen Sie, welche Jobs die meiste Rechenleistung benötigen.
Runner nach Vertrauen und Aufgabe trennen
Ein Runner führt Projektcode aus. Deshalb ist seine Einordnung nicht nur eine Leistungsfrage. Ein Build für einen externen Beitrag sollte nicht dieselben Zugänge erhalten wie ein freigegebenes Deployment in die Produktion. GitLab beschreibt die Risiken unterschiedlicher Executor-Konfigurationen ausdrücklich. Wählen Sie den Ausführungsmodus nach dem benötigten Vertrauen und prüfen Sie die erreichbaren Netze, Dateien und Geheimnisse.
Legen Sie für jede Runner-Gruppe fest, welche Projekte sie verwenden dürfen und ob Jobs auf produktive Systeme zugreifen können. Trennen Sie Build-Artefakte von Zugangsdaten und halten Sie sensible Variablen aus Protokollen heraus. Ein privilegierter Container ist keine allgemeine Sicherheitsgrenze. Planen Sie auch die Bereinigung nach Jobs und den Austausch kompromittierter Runner. Diese Aufgaben gehören in die Zuständigkeit für den Entwicklungsbetrieb, nicht nur in die erstmalige Installation.
Datenwachstum und Restore gemeinsam betrachten
Repositories sind oft nur ein Teil des Speicherbedarfs. Container-Images, Pakete, LFS-Dateien und Build-Artefakte können anders wachsen als der Quellcode. Definieren Sie deshalb pro Datenklasse eine Aufbewahrungsregel. Welche Artefakte benötigt ein Release dauerhaft? Welche Testausgaben dürfen nach kurzer Zeit verschwinden? Eine Bereinigung sollte nachvollziehbar sein und keine benötigten Auslieferungsstände entfernen.
Für eine Wiederherstellung erstellen Sie ein Verzeichnis aller Speicherorte und der dazugehörigen Sicherungen. Prüfen Sie, ob Konfiguration, Schlüssel oder externe Objektspeicher separat berücksichtigt werden müssen. Ein sinnvoller Test umfasst Repository-Zugriff, Anmeldung, ausgewählte Integrationen und einen kontrollierten Pipeline-Lauf mit Testzugängen. Notieren Sie die benötigte GitLab-Version und den Umgang mit Runnern. So wird sichtbar, ob die Sicherung die gesamte Arbeitsumgebung trägt oder nur einen Teil ihrer Daten.
- Hauptinstanz und Runner getrennt nach Auslastung und Verantwortlichkeit dimensionieren.
- Parallelität und Dauer repräsentativer Pipelines aufnehmen.
- Zugriff auf Produktionssysteme nur für die dafür vorgesehenen Jobs und Runner vorsehen.
- Aufbewahrung und Wiederherstellung für Repository, Registry und Artefakte getrennt prüfen.
Anfrage vorbereiten
Liefern Sie aktive Nutzer, Projektzahl, Datenvolumen, Wachstum, CI-Parallelität, Integrationen und gewünschte Betriebsabgrenzung. NUXOA kann daraus Hauptsystem und Runner getrennt planen. Die sechs Konfigurationsbeispiele auf der Produktseite dienen als Ausgangspunkt. Ein Angebot erhalten Sie passend zu Ihrem Bedarf.