GitLab 12.2: Snellere en flexibelere pipelines en gestart met Design Management

Maarten Draijer
2019-08-28

Op 22 augustus 2019 werd versie 12.2 van GitLab uitgebracht. Een release die er onder andere voor zorgt dat we onze pipelines beter kunnen optimaliseren, de samenwerking kunnen verbeteren én afhankelijkheden tussen projecten beter kunnen managen. In dit artikel lees je wat deze release voor jouw bedrijf kan betekenen.

Snellere en flexibelere pipelines

Het doel van Continuous Integration pipelines is om handmatige taken te automatiseren. Op die manier kan de software sneller en met minder fouten opgeleverd worden. Voor een simpele pipeline is dat vrij gemakkelijk te regelen: je zorgt ervoor dat het systeem alle taken in een bepaalde fase afrondt, voordat het verdergaat naar de taken in de volgende fase.

In sommige gevallen is het zo dat de CI/CD (Continuous Integration / Continuous Delivery) pipelines niet zo efficiënt zijn als zou kunnen. In het geval van een vrij complexe pipeline kan het namelijk zijn dat sommige taken in een fase alvast gestart mogen worden, voordat de vorige is afgerond. Dat zie je bijvoorbeeld als je een app ontwikkelt in zowel Android als iOS. De iOS-uitrol mag dan beginnen zodra er getest is. Je hoeft dus niet te wachten tot de Android-app ook zo ver is.

Met dat in het achterhoofd heeft GitLab er in deze versie voor gezorgd dat je kunt aangeven welke relaties er bestaan tussen je taken. Hiervoor gebruik je simpelweg het keyword ‘needs:’ Hiermee geef je aan dat een taak afgerond moet zijn voordat de volgende gestart wordt. Zodra een taak met met needs: wordt aangemerkt,start de taak die daarop volgt automatisch. Er wordt dus niet gewacht op het afronden van alle andere taken in de vorige fase.

GitLab maakt voor deze functionaliteit gebruik van Directed Acyclic Graphs (DAG). Dit houdt in dat wanneer GitLab een pipeline aanmaakt vanuit jouw configuratie, het een aantal complexe regels gebruikt om de volgorde van de taken te bepalen. Dit in tegenstelling tot het simpelweg pas doorgeven van alle taken wanneer de vorige fase is afgerond.

Design Management

Het ontwikkelen van software wordt over het algemeen vaak gedaan in teams, en het doel van GitLab is om het voor iedereen in zo’n team zo gemakkelijk mogelijk te maken. Daarom zijn er in deze versie voor ontwerpers en ontwikkelaars nieuwe mogelijkheden toegevoegd om samen te werken. Design Management maak het makkelijker om samen aan ontwerpen te werken en ze met het team te delen. In het bijzonder is Annotations for Designs toegevoegd, waarmee teamleden opmerkingen kunnen achterlaten op specifieke onderdelen van het ontwerp.

GitLab heeft al eerder aangekondigd dat ze Design Management meer willen gaan integreren in GitLab. Volgens hen is deze stap hier nog maar het begin van. Wij zijn erg benieuwd naar wat ze nog meer in petto hebben!

Merge request-afhankelijkheden over verschillende projecten aangeven

Als er vrij complexe systemen gebouwd moeten worden, dan bestaat ze in GitLab vaak uit meerdere projecten die op bepaalde punten weer van elkaar afhankelijk zijn. Als er bepaalde code bijvoorbeeld in het ene project verandert, moet dat effect hebben op de code in het andere project. Ook de volgorde van die veranderingen is van belang.

Om die reden ondersteunt GitLab nu Cross-project Merge Request Dependencies. Het wordt je hiermee gemakkelijk gemaakt om afhankelijkheden tussen projecten te definiëren en aan te geven in welke volgorde ze afhankelijk moeten zijn van elkaar. Met deze functionaliteit wordt het je, zelfs als je werkt aan complexe projecten, dus steeds moeilijker gemaakt om fouten te maken.

Groepslidmaatschap op basis van e-mailadres van je domein

Het is voor organisaties belangrijk dat ze controle hebben over welke personen toegang tot bepaalde projecten en groepen hebben. In deze nieuwste versie is daarom een extra tool toegevoegd voor beheerders: zij kunnen nu zorgen dat alleen e-mailadressen met een bepaalde domeinnaam toegang krijgen.

Stell: al je teamleden hebben een @jouwbedrijf.nl-e-mailadres. Dan kun je aangeven dat alleen mensen met dat domein in het e-mailadres toegang mogen hebben tot jullie projecten. Dit voorkomt dat er gebruikers van buiten je organisatie worden toegevoegd.

Nieuwe uitrolstrategieën voor Feature Flags

Op basis van percentages

Met Feature Flags kun je een project op verschillende manieren uitrollen door bepaalde functionaliteiten aan- of uit te schakelen. Hiermee kunnen teams kleinere batches van de software testen en uitrollen, waardoor risico’s kleiner worden.

In deze nieuwe GitLab versie kun je nu ook voor “Percentage Rollout” kiezen als je uitrolstrategie voor Feature Flags. Dat betekent dat je voor elke omgeving en voor elke vlag een percentage kunt instellen. Wanneer je dit doet en de vlag wordt ingeschakeld, dan zal de functionaliteit alleen aan het ingestelde percentage ingelogde gebruikers uitgerold worden.

Dit stelt je in staat om nieuwe functionaliteiten op een gecontroleerde manier uit te rollen. Zo kun je het gedrag van de gebruiker op de nieuwe functionaliteit nog beter monitoren en checken of de resultaten zijn zoals je had verwacht.

Op basis van gebruikersnaam

Naast dat je ervoor kunt kiezen om je nieuwe functionaliteit aan een bepaald percentage gebruikers uit te rollen, kun je nu ook je functionaliteit uitrollen aan gebruikers op basis van hun gebruikersnaam. Je geeft een lijst van gebruikersnamen op en schakelt de Feature Flag vervolgens alleen in voor de opgegeven gebruikers. Best handig, want hiermee kun je bepaalde functionaliteiten alleen testen binnen bepaalde segmenten van je doelgroep.

Veiligheidsgoedkeuring in Merge Requests

Deze nieuwe functionaliteit zorgt ervoor dat Merge Requests met mogelijke kwetsbaarheden niet samengevoegd worden voordat bepaalde mensen de wijziging hebben gezien en goedgekeurd.

Dit maakt het voor je team een stuk gemakkelijker om bepaalde compliance regels te volgen. Bovendien voorkom je hiermee dat nieuwe kwetsbaarheden zomaar aan je code worden toegevoegd.

En nog veel meer…

Deze features uit GitLab 12.2 zijn wat ons betreft de meest interessante. Maar GitLab heeft in deze laatste versie overigens nog meer nieuwe functionaliteiten uitgerold. Al met al weer een mooie lijst aan verbeteringen.

Jouw nieuwe GitLab instance is binnen 5 minuten online
Registreer