GitLab: Was ist das und was kann das?
Was ist GitLab?
GitLab wurde 2011 vom Ukrainer Dmitri Saparoschez in Zusammenarbeit mit Valery Sizov in der Programmiersprache Ruby, genauer gesagt Ruby on Rails, geschrieben. Nachdem Microsoft 2018 mit GitHub den größten Konkurrenten von GitLab gekauft hat, sind zahlreiche Nutzer zu GitLab gewechselt.
GitLab ist ein Version Control System (VCS). Es basiert vollständig auf Git, einem verteilten Versionierungssystem, das als Open-Source-Software zur Verfügung gestellt wird. Git ist das mit Abstand am weitesten verbreitete VCS der Welt. Hauptaufgabe der webbasierten Versionsverwaltung: alle Änderungen an Dateien und ihrem Quellcode speichern und dokumentieren, sodass diese jederzeit nachvollzogen werden können.
GitLab ist also insbesondere für Entwickler und Programmierer interessant und erleichtert ihre tägliche Arbeit. Bei Nutzung eines Versionsverwaltungssystems können mehrere Programmierer zeitgleich entwickeln, indem sie zum Beispiel an verschiedenen Features arbeiten. Auch wir bei Mittwald arbeiten aus genau diesem Grund mit GitLab. Uns hilft es vor allem bei der agilen und abteilungsübergreifenden Zusammenarbeit an verschiedenen Projekten.
Die stetige Versionierung sorgt für die Protokollierung sämtlicher Änderungen und stellt sicher, dass Arbeiten nicht verloren gehen oder versehentlich überschrieben werden. Am Code vorgenommene Änderungen können nicht nur überwacht, sondern bei Bedarf auch rückgängig gemacht werden.
Wie funktioniert GitLab?
GitLab ist ein webbasiertes VCS, das aber auch auf dem eigenen Server gehostet werden kann. Die dort angelegten Projekte werden in digitalen Archiven organisiert, die sich Repositories (Repos) nennen. Ein Repository beinhaltet alle Bestandteile eines Projekts, also zum Beispiel sämtliche dazugehörigen PHP-, JavaScript-, HTML- und CSS-Dateien.
Alle Projektbeteiligten können sich eine Arbeitskopie (Working Copy) des Repositorys auf ihren Rechner herunterladen (auschecken). Nach der Bearbeitung der Kopie werden die Dateien wieder ins Repository hochgeladen (eingecheckt). Mittels Commit können die Änderungen zu dem Repository hinzugefügt werden. GitLab kümmert sich um die Dokumentation der Änderungen und ermöglicht zum Beispiel auch die Vergleichbarkeit der Versionen.
Eine wesentliche Funktion ist das Branching, das bei Git besonders leicht und schnell vonstattengeht. Branching bedeutet, dass Programmierer einen separaten Arbeitszweig (Branch) erstellen können, der von der Hauptlinie der Entwicklung abzweigt. Diese kann als neuer Kontext betrachtet werden, sodass in einem solchen Zweig zum Beispiel an einem neuen Feature gearbeitet werden kann, ohne dass die Hauptlinie dadurch beeinträchtigt oder gar beschädigt wird.
Funktionen von GitLab im Überblick:
- Code Review
- Bug Tracking
- persönliche und private Branches
- mehrere Git Repositories verwaltbar
- Hochverfügbarkeit im active/active Cluster möglich
- Code Snippets
- Access Control
- Issue Tracking
- Web Hooks
- integrierte und kostenlose Continuous Integration/Delivery (CI/CD)
- Wiki
Welche Lizenzen von GitLab gibt es?
GitLab basiert auf einem offenen Kerngeschäftsmodell. 2013 wurde die erweiterte Enterprise Edition eingeführt, sodass es nun zwei Lizenzmodelle gibt:
- CE: Community Edition
- EE: Enterprise Edition
Die Community Edition wird unter der MIT-Lizenz vertrieben. Die Enterprise Edition basiert auf der Community Edition und verwendet folglich denselben Kern, der jedoch um zusätzliche Funktionen ergänzt wird. EE unterliegt einer proprietären Lizenz. Für beide Versionen gilt jedoch, dass der gesamte JavaScript-Code Open Source ist.
Vor- und Nachteile von GitLab
Vorteile:
- unbegrenzte Anzahl privater und öffentlicher Repositories
- inkl. Container Registry zur Docker-Image-Verwaltung
- CI/CD-Tools sind bereits kostenfrei integriert
- leicht bedienbares Benutzerinterface
- selbstorganisiertes Hosting möglich
- hervorragende mobile Nutzbarkeit
- zahlreiche Statistiken zu Projekten abrufbar
- umfangreiche Benutzer- und Rechteverwaltung
- umfassende Wiki-basierte Dokumentation
- bessere Sicherheitsvorkehrungen als die Konkurrenz
Nachteile:
- Issues sind nicht in mehreren Repositories trackbar
- Server sind weniger stabil als bei GitHub
Fazit zu GitLab
Mit GitLab können insbesondere Programmiererteams kollaborative Software- und Webprojekte planen, koordinieren, testen, bereitstellen und überwachen. Alle Beteiligten können sicher am Code schreiben und diesen verwalten, ohne dabei den Workflow zu stören – unabhängig davon, ob es sich um eine Agile-, Wasserfall- oder Konversationsentwicklungsmethode handelt.
GitLab bietet für Buildpacks bis CI/CD zahlreiche Anpassungsmöglichkeiten. Der gesamte Workflow lässt sich auf Wunsch automatisieren. Der Code ist sowohl in der Community- als auch in der Enterprise-Version Open Source. Schon die kostenlose Version ist sehr umfangreich und leistungsstark.
Nutzt ihr GitLab auch oder seid ihr eher Verfechter von GitHub? Wir lesen gerne in den Kommentaren von euch. ;-)
Kommentare
Mittlerweile habe ich nur noch meine privaten Projekte auf Codeberg.org und alles andere auf einer selbstgehosteten GitLab Instanz von Stuxhost.
Ich finde es auch höchst "interessant" was GitHub jetzt mit Copilot macht.
Lässt sich GitLab per Konsole in jedem Account uneingeschränkt installieren?
Viele Grüße,
Tobias