Software-Entwicklung: Moderne Teams sollten GitLab verwenden

Continuous Integration (kontinuierliche Integration) und Continuous Delivery (kontinuierliche Auslieferung), in der Kombination als CI/CD, nach der Devops-Methode teils als Pipelining bezeichnet, sind die Sterne am Entwickler-Himmel. Die Konzepte versprechen einen schlanken, effizienten Entwickler-Workflow, der unter Verzicht auf Deadlines und Meilensteine nahezu jederzeit einen aktuellen Projektstand abzubilden in der Lage ist. Das Konzept haben wir in diesem Beitrag näher betrachtet.
Wenn eine Versionierungssoftware heutzutage ganz vorne mitspielen will, sollte sie sich diesen neuen Ansätzen öffnen und sie bestmöglich unterstützen. Da die kontinuierliche Integration automatisiert in idealer Weise unterstützt werden kann, bietet es sich an, die Methoden in der Versionsverwaltungssoftware weitestgehend abzubilden.
Auf genau diesen Weg hat sich GitHub-Konkurrent GitLab begeben. Schon seit der Version 8 integriert GitLab CI/CD-Methoden. Dabei ist die aktuellste Version 12.7 ein weiterer konsequenter Schritt in Richtung moderner Software-Entwicklung. Deshalb schauen wir genauer hin.
Die Highlights der aktuellen Version der GitLab-Software sind die neuen Parent-Child-Pipelines, das überarbeitete Merge-Request-Management und die Einführung der Pipeline-Resource-Groups.
Pipelines sind automatisierte Prozesse, die definierte Aktionen innerhalb der Versionsverwaltungssoftware abarbeiten. Mit steigendem Featureset der hinterliegenden Software können Pipelines ebenfalls immer komplexer werden. Das wirkt sich auf Performance und Admistrierbarkeit aus. GitLab bietet eine Lösung für diese Entwicklung, bevor sie zum Problem wird.
Mit den Parent-Child-Pipelines erlaubt GitLab die Unterteilung komplexer Pipelines in mehrere, potenziell parallel ablaufende. Das soll vor allem eine bessere Visualisierung und damit eine einfachere Verwaltung erlauben. Bei überkomplexen Pipelines können indes auch Performance-Verbesserungen erreicht werden. Definiert werden Parent-Child-Pipelines über eine separate YAML-Datei.
Im gleichen Atemzug ist die Einführung der Resource-Groups zu nennen. Die sollen nämlich dafür sorgen, dass die Parallelisierung der Pipelines kontrollierbar bleibt. Resource-Groups schränken die Verarbeitung verschiedener Pipelines dahingehend ein, dass nur bestimmte Aufgaben aus zuvor angewählten Pipelines gleichzeitig abgearbeitet werden.
In überarbeiteter Form präsentiert sich das Merge-Request-Management. Besonders die Code-Review-Analytics können den Team-Workflow verbessern, weil so schnell zu erkennen ist, welche Merge-Requests noch einer Bearbeitung bedürfen.

Merge Requests im Blick. (Screenshot: GitLab)
Mit dem verbesserten Merge-Request-Widget ist es noch einfacher, zu erkennen, welche Änderungen wann in welcher Umgebung eingeflossen sind.
Mit den Windows-Shared-Runners, die aktuell in einer Beta-Version vorliegen, erweitern die Entwickler die Möglichkeiten, Continuous-Delivery-Prozesse auch unter virtuellen Windows-Maschinen nutzen zu können. Bislang gab es die Shared-Runner nur für Linux.
Die Windows-Shared-Runners kommen als vorkonfigurierte Pakete, die unter anderem das .Net-Framework, die VS-2019-Build-Tools und den Chocolately-Paketmanager enthalten. Preislich will sich GitLab zunächst an den Linux-Shared-Runners orientieren.
Die genannten Features sind für alle GitLab-Nutzer ab der Core- respektive Free-Version und damit auch in der gehosteten und selbstgehosteten Variante gleichermaßen verfügbar. Die Windows-Runners waren in der Selfhosting-Version schon zuvor verfügbar.
Mehr Details zum neuen Release, das immerhin 45 neue und verbesserte Funktionen, zwölf Performance-Steigerungen und rund 1.600 Merge-Requests integriert, enthält der Blog-Beitrag des GitLab-Teams.
Wettbewerber GitHub unterstützt CI/CD-Methoden über den Marketplace, auf dem Drittanbieter Erweiterungen anbieten können, sowie über Github Actions. GitHub hat sich bei der CI-Integration sehr lange rein auf Drittanbieter verlassen, während GitLab früh erkannt hat, dass diese Methoden in den Produktkern gehören. Von daher hat GitLab einen Vorsprung, gepaart mit einer solideren Integration.
Passend dazu: GitHub vs. GitLab – was lohnt sich wieso?
Bitte beachte unsere Community-Richtlinien
Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.
Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.
Dein t3n-Team
Seit wann ist Gitlab eine Microsoft Tochter?
Microsoft-Tochter, HÄ???
Seit wann ist GitLab denn eine Microsoft-Tochter? Ich dachte, das wäre Github
Microsoft-Tochter? GitHub?
„Microsoft-Tochter GitLab“ wird im Artikel erwähnt. – Stimmt das oder habe ich was verpasst/falsch verstanden?
Meines Wissens hat Microsoft zwar Git*Hub* gekauft, GitLab aber nicht.
Da habt ihr wohl GitHub mit GitLab verwechselt ;) GitLab gehört der GitLab Inc. und hat nichts mit Microsoft zu tun.
GitLab ist keine Microsoft-Tochter. Das ist GitHub.
GitHUB ist eine Tochter von Microsoft, nicht GitLAB!
„Auf genau diesen Weg hat sich die Microsoft-Tochter GitLab begeben.“
@t3n
Ist GitLab tatsächlich eine Microsoft-Tochter
Wiedermal ein Qualitäts-Artikel von t3n
Vollkommen richtig. Die Windows-Shared-Runners haben mir den Kopf verdreht. GitHub ist natürlich die Microsoft-Tochter und GitLab das eigenständige Unternehmen. Ansonsten ändert es nichts an der Aussage des Artikels. Danke fürs aufmerksame Lesen.