Templates overlayed over laptop

Met de groei van diverse repositories en pipelines verlies je al snel het overzicht in je Azure DevOps omgeving. Met Azure DevOps Templates zet je een solide basis neer. Met deze templates ontwikkel je namelijk bouwblokken die herbruikbaar zijn, waardoor je al snel structuur aanbrengt in je pipelines. In dit blog leggen we uit hoe het werkt.

Het opzetten van een repository met een daarbij horende pipeline in Azure DevOps is binnen enkele klikken geregeld. Maar omdat organisaties steeds blijven groeien en daarmee ook de software in omvang toe neemt, nemen het aantal repositories en pipelines ook toe (mits je uiteraard gebruik maakt van een CI/CD straat). Door deze toename en constante groei raak je op een gegeven moment het overzicht kwijt in je Azure DevOps pipelines. Bovendien bouwt ieder team vaak zijn eigen pipelines, waardoor ook veel duplicated code ontstaat. Veel van deze pipelines zal ongeveer eenzelfde context hebben, denk aan het bouwen van images, het testen van images of het deployen naar bijvoorbeeld een AKS cluster. Met Azure DevOps Templates bouw je snel meer overzicht.

WAT ZIJN TEMPLATES IN AZURE DEVOPS?

Azure DevOps templates stellen je in staat om – in een YAML-format – herbruikbare pipelines te bouwen. Deze templates dienen dan bijvoorbeeld als bouwblokken die gebruikt worden door andere Azure DevOps pipelines, die refereren naar de templates. Daarnaast dienen de templates ook als middel om de security van de pipelines en omgeving(en) te bewaken. Momenteel ondersteunt Azure DevOps tot wel 100 templates in 1 pipeline en tot wel 20 nested templates, dus templates in templates. 

WAAROM ZOU IK GEBRUIK MAKEN VAN TEMPLATES? 

Door het groeiende aantal pipelines binnen organisaties ontstaat er een enorme hoeveelheid aan duplicated code. Daarnaast worden pipelines steeds complexer en is het overzicht en de structuur weg. Door gebruik te maken van templates in Azure DevOps kun je veel van deze complicaties voorkomen. Azure DevOps templates kunnen namelijk dienen als bouwblokken die je aanroept vanuit je pipelines. 

3 grote voordelen van het gebruiken van templates in Azure DevOps zijn:

  1. Herbruikbaarheid: door één centrale template beschikbaar te stellen voor bepaalde stappen kan de gehele organisatie hier gebruik van maken. Je kunt het zien als bouwblokken die een bepaalde stap of zelfs een hele build en deploy uitvoeren. Doordat het herbruikbaar is kun je ook code duplicatie voorkomen, dat maakt het beheersbaar voor de toekomst. 
  2. Reductie van de complexiteit en de grootte van de pipelines. Door gebruik te maken van templates in de standaard azure-pipeline.yaml wordt de file overzichtelijker. Het aanroepen van een template is namelijk van mindere omvang dan een volledige build step in je pipeline verwerken. Dankzij de bouwblokken die aangeroepen kunnen worden zorg je voor een reductie van complexiteit en een verbeterde beheersbaarheid van de azure-pipeline.yaml. 
  3. Verbeterde security: door de focus te leggen op het verbeteren en optimaliseren van de ‘globale templates’ kan ook de security enorm verbeterd worden. Security stappen kunnen in de bouwblokken afgedwongen worden waarmee je bepaalde securitymaatregelen kunt laten afnemen. Als jij bijvoorbeeld als organisatie bepaalde security eisen stelt, kunnen deze geïmplementeerd worden via de templates in plaats van dat de teams deze zelf dienen te implementeren. Daarnaast is het mogelijk dat afgedwongen wordt dat de ontwikkelteams gebruik maken van templates waardoor er niks gedeployed mag worden zonder gebruik te maken van de beschikbare templates. Ook updates of verbeteringen worden dan in deze templates doorgevoerd, zodat de teams volledig kunnen focussen op de ontwikkeling van de applicaties.

Conclusie

Templates binnen Azure zijn een uitkomst binnen een project. Ze zijn herbruikbaar, wat het werkproces een stuk overzichtelijker houdt en gedupliceerde code tegengaat. Nog een voordeel met betrekking tot het overzicht is dat het de code minder gecompliceerd maakt, en dus leesbaarder. Als laatste is het een goede security maatregel. Alle updates binnen een template worden namelijk meteen toegepast waar het template is gebruikt

Enthousiast geworden om aan de slag te gaan met Azure DevOps templates? In het volgende blog vertellen we hoe je templates inzet om je werkproces te stroomlijnen. 

Jorian Taks

Jorian Taks is a Cloud Native DevOps Engineer with a passion for the Azure Cloud.

Thanks to his inquisitiveness, enthusiasm and analytical attitude, he can quickly master new subjects and techniques and apply them in any context. He loves to delve into complex cases and explore abstract situations in order to find practical solutions. Jorian is hugely passionated by DevOps-practices and cloud native solutions. This allows him to bring clients to a next level and help them reach their ambitions.

– Jorian Taks, Azure Engineer @ Bryte Blue