2/6/2023

6 strategische methodes voor een hoge CI/CD-pipeline performance

Het werken met goed afgestemde CI/CD-pipelines is voor elk modern ontwikkelteam een essentiële voorwaarde voor het bouwen van software van hoge kwaliteit. Je kunt code sneller integreren, testen en uitrollen naar productieomgevingen. Zo kom je fouten sneller op het spoor en krijg je sterkere feedback op het gebouwde product, wat leidt tot betere software en minder werk op het gebied van foutenherstel en debugging.

Het is daarnaast belangrijk dat je een CI/CD-pipeline bouwt op basis van de specifieke behoeften van het ontwikkelteam. Dat werkt een stuk prettiger, biedt meer mogelijkheden voor maatwerk, versnelt het ontwikkelproces en levert aan het eind van de rit een beter resultaat op. Gelukkig zijn er verschillende strategische manieren om je CI/CD-pipelines te perfectioneren. Benieuwd hoe je dat doet? Lees dan snel verder!

1. Test performance, compatibiliteit en toegankelijkheid

Het testen van de performance, compatibiliteit met specifieke apparaten en toegankelijkheid van een applicatie gebeurt vaak nog handmatig. Sommige ontwikkelteams doen het zelfs maar mondjesmaat, vooral omdat zo’n manuele werkwijze het opleverproces flink vertraagt. Best zonde. Je laat immers mooie kansen voor vroegtijdige optimalisatie van je CI/CD-pipelines liggen.  

Door de bovengenoemde taken te automatiseren, boek je snelheids- en kwaliteitswinst. Met speciale tools voor accessibility testing en visual regression testing kun je bijvoorbeeld nagaan of je niet onbedoeld iets aan de UI hebt veranderd, maar bijvoorbeeld ook in een vroeg stadium zien of een applicatie er op een specifiek apparaat wel goed uitziet.

Lees ook de blog: CI- en CD-tools: Jenkins versus Bamboo

2. Maak zoveel mogelijk gebruik van geautomatiseerde veiligheidstests

Veiligheid moet altijd een essentieel onderdeel zijn van je CI/CD-pipelines. Zonder voldoende aandacht voor dit vitale aspect stel je een applicatie en haar gebruikers bloot aan de vele digitale gevaren die rondwaren in het cyberuniversum. Met tools als Dependabot en GitHub Advanced Security en methodes als code scanning en secret scanning, automatiseer je veiligheidstests en verbeter je het veiligheidsprofiel van je CI/CD-pipeline aanzienlijk.

Code scanning brengt kwetsbaarheden in je code snel en effectief aan het licht, terwijl je met secret scanning voorkomt dat credentials naar je depositories lekken. Met Depandabot scan en mitigeer je potentiële problemen in je dependencies en creëer je automatische pull requests die teams laten weten dat er een oplossing nodig is. Door slim gebruik te maken van een geautomatiseerde veiligheidstest, breek je eventuele problemen al in de knop en voorkom je dat kwetsbaarheden en veiligheidsissues pas boven water komen op het moment dat een applicatie richting de productieomgeving gaat.

3. Ontwikkel een gefaseerde teststrategie

Kiezen voor gefaseerd testen heeft verschillende voordelen. De werkwijze stelt je in staat om de grote vraagstukken het eerst aan te pakken en sneller feedback te krijgen op je codebase. Je zorgt bovendien voor een ‘quick build’ waarmee je de fundamentele basis van een applicatie simpeler en sneller legt dan met unittests.

Een gefaseerde teststrategie doorloopt in de regel de volgende fases:

●        De quick build. Die kun je zien als het fundament en geraamte van de applicatie. De belangrijkste functionaliteiten test je al op hoofdlijnen.

●        Vervolgens bouw je een testomgeving waarin je een aantal extra tests uitvoert. Denk aan het testen van de toegankelijkheid en de gebruikerservaring.

●        Naarmate je dichter bij de productieomgeving komt, wil je meer zaken testen. In deze fase zoom je nader in op de details en zorg je ervoor dat bugs verdwijnen uit je codebase.

●        De laatste fase bestaat uit het testen in de productieomgeving, waarmee je de laatste puntjes op de i zet en de applicatie helemaal gebruiksklaar maakt voor gebruik in de ‘echte wereld’.

Lees ook de blog: De OTAP-ontwikkelstraat: vier fases uitgelegd

4. Investeer in blue-green deployments

De laatste momenten voor de release van een nieuwe applicatie kunnen best hectisch of stressvol zijn. Met zogenoemde ‘blue-green deployments’ neem je wat druk van de ketel. De term doelt op een werkwijze waarbij je twee of meer versies van een applicatie in productie hebt en je gebruikers langzaam en gestaag van een oude naar een nieuwere versie migreert.

Het voordeel van deze aanpak? Je kunt eventuele wijzigingen snel terugdraaien door gebruikers om te leiden naar een andere productieomgeving. Daarnaast heb je minder last van downtime als je een nieuwe versie van een applicatie uitrolt. Je stelt alles achter de schermen in en wijst mensen dan gewoon de weg richting de nieuwe versie. Blue-green environments werken vooral prima bij omgevingen die min of meer inwisselbaar zijn.

5. Adopteer infrastructure-as-code

Het gebruiken van een technologie als infrastructure-as-code (IaC) is vaak ook een nuttige toevoeging aan je CI/CD-pipeline. Als je dan een applicatie in gebruik neemt, neem je ook gelijk je infrastructuur mee. Je weet dus altijd hoe je infrastructuur er in productie uitziet, terwijl je testomgeving nauwkeurig repliceert wat er in productie is. Je applicatie en infrastructuur vormen met IaC een gesmeerde tandem, terwijl het tegelijkertijd makkelijker wordt om realtimeproblemen met je infrastructuur snel en effectief aan te pakken. 

6. Creëer checkpoints voor automatische rollbacks

Geautomatiseerd testen met de juiste checkpoints geeft je de mogelijkheid om tijdig en zonder veel moeite rollbacks uit te voeren. Bij een rollback zet je een applicatie terug naar de vorige versie, bijvoorbeeld omdat er fouten in de code zijn geslopen of omdat bepaalde functionaliteiten nog wat extra aandacht nodig hebben om te voldoen aan het kwaliteitsniveau dat je nastreeft.

Op weg naar betere CI/CD-pipelines

Hoewel elke CI/CD-pipeline en -implementatie zijn eigen bijzonderheden en uitdagingen heeft, bieden de bovengenoemde richtlijnen uitkomst voor het leggen van een sterk fundament.

ACC ICT beschikt over veel kennis van en ervaring met het ontwikkelen en beheren van CI/CD-pipelines. Als je kiest voor Managed CI/CD staat ons team voor je klaar om de pipelines te ontwerpen, bouwen en optimaliseren. Daarnaast onderhouden wij de pipelines, waarborgen we de continuïteit van je applicatie én implementeren we nieuwe pipeline-versies. Dit doen wij met de laatste technieken en beste CI/CD tools. Jouw organisatie profiteert van een constante hoge kwaliteit van al je applicaties en geeft je ontwikkelcapaciteit een stevige boost.

Deel deze post
Ronald Kers
Ronald behoort tot de harde kern die meer dan 10 jaar in dienst is bij ACC ICT. Als contentmarketeer schrijft Ronald graag over technologische ontwikkelingen binnen de IT-branche. Met een achtergrond als system administrator weet hij als geen ander complexe materie in begrijpelijke taal uit te leggen.