Besser und schneller: Mit Gitlab die Build Performance verbessern

Wir nutzen bei der youEngineering Gitlab für unsere intern entwickelten Produkte. Zum einen als Source Code Repository, um grosse Mengen an Source-Code zu pflegen, zum anderen als CI/CD (Continuous Integration/Continuous Delivery) Plattform. Bei einer CI/CD Plattform können Codeänderungen häufiger und zuverlässiger bereitgestellt werden. Gerade in grösseren Projekten können die Laufzeiten von Pipelines schnell sehr lange werden. Folge: das Team verliert an Agilität und kann weniger schnell Updates live schalten. Man wartet zunächst bis die Build Pipeline eines Feature-Branches durchläuft. Dann folgt oftmals noch eine Test-Pipline. Bis der Branch dann gemerged werden kann, vergeht so schnell mal eine halbe Stunde. In unserem Teamcamp 2022 hat es sich daher ein Team zur Aufgabe gemacht, Möglichkeiten zu recherchieren die sowohl Zeit pro Task als auch Qualität der Ergebnisse verbessern können. Dies wollte das Team vor allem durch zwei konkrete Massnahmen schaffen:

  1. Verbesserung der Build Pipelines: Einerseits wollen wir die Laufzeit von Build Start zu Build Ende reduzieren, damit Entwickler die neue App Version in kürzerer Zeit testen und ausrollen können. Andererseits soll die absolute Laufzeit der Builds reduziert werden, um die zur Verfügung gestellte Infrastruktur möglichst wenig zu nutzen.

  2. Integration sinnvoller Gitlab Features: Des Weiteren soll überprüft werden, welche Features von Gitlab für uns interessant sind, da sie mit wenig Aufwand einen Mehrwert in Qualität bieten können. Primär interessieren wir uns für das:

  • Browser Performance Testing und das

  • Load Performance Testing.

Doch was ist Gitlab überhaupt? Gitlab ist eine Open-Source-Code-Plattform für Softwareprojekte. Dort können User grosse Mengen an Code Online speichern, wodurch ein Nutzer mehreren Personen gleichzeitig Zugriff auf den Code erteilen kann. Ausserdem bietet Gitlab Tools wie Problemverfolgung, Versionsverwaltungen und andere Code-Verwaltungsmöglichkeiten.

Screenshot 2022 10 27 at 13 03 59

Die Ergebnisse des Gitlab-Projektes aus dem Teamcamp 2022

Insgesamt konnten wir mit der Nutzung von Gitlab im Rahmen eines Projektes die Build Zeit um ungefähr 20 % von 17 Minuten auf etwa 14 Minuten reduzieren. Den grössten Teil der ersparten Zeit konnten wir vor allem durch paralleles Builden verschiedener Teilprojekte und der Aufsplittung von Frontend und Backend Build erreichen. Ohne Gitlab können Teilprojekte nur nacheinander bearbeitet werden. Die zwei Features Browser Performance Testing und das Load Performance Testing konnten uns hingegen nicht überzeugen. In der aktuellen Aufstellung der Projekte können sie nicht genutzt werden, um Zeit zu sparen oder Qualität zu heben.

Screenshot 2022 10 27 at 13 21 55

Ausblick und weitere Nutzung von Gitlab

Bei unseren Projekten konnten wir mit Gitlab eine deutliche Reduktion der Build Zeiten aufdecken. Nun sehen wir weiteres Potenzial und möchten in der Zukunft im Bereich Caching und Browser bzw. Load Testing unsere Build Zeit, um weitere 20 % zu reduzieret.

Post-Camp Success

Auf Basis der Arbeit und Erkenntnisse aus unserem Teamcamp 2022 und weiteren Ideen aus unserem Team, die wir nach dem Camp erarbeitet haben, konnten wir am Ende die Build Zeit unseres Projektes sogar auf unter 10 Minuten bringen.