GitLab: Was ist das und was kann das?

Entwickler und Programmierer kommen heute kaum noch um ein Version Control System (VCS) wie GitLab herum, wenn sie agil und effizient an Software- oder Webprojekten arbeiten wollen. Doch was genau ist GitLab? Welche Funktionen und Vor- und Nachteile bringt die Anwendung mit sich? 
 

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.

Mittwald erklärt GitLab in seinem Blog.

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. ;-) 

Kommentar hinzufügen