Moderne Software-Entwicklung wird durch moderne Versionierungssoftware überhaupt erst möglich. (Grafik: Shutterstock)

Das Entwickler-Tool GitLab verbessert erneut seine Unterstützung für Continuous-Delivery-Prozesse, die die Zukunft der Software-Entwicklung darstellen. Jetzt macht sich bemerkbar, dass die Microsoft-Tochter von Beginn an CI/CD ins Kernprodukt gebaut hat.

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.

Versionsverwaltung ohne CI/CD ist möglich, aber sinnlos

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 die Microsoft-Tochter 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.

Parent-Child-Pipelines machen komplexe Prozesse überschaubar

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.

Resource-Groups bringen Pipelines unter Kontrolle

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.

Merge-Request-Management steigert den Team-Workflow

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)

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.

Windows-Shared-Runners: Entwicklung auf virtuellen Windows-Maschinen

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.

Features in allen Versionen enthalten

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 bietet ebenfalls CI/CD

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?

Leave a Reply