CI/CD

/ˌsiːˈaɪ ˌsiːˈdiː/afkorting

CI/CD is een werkwijze waarbij teams softwarewijzigingen vaak samenvoegen, automatisch controleren en via een vaste reeks stappen voorbereiden op of uitrollen naar productie.

Dankzij CI/CD draait iedere codewijziging automatisch door de tests voordat het team een release uitrolt.

CI/CD staat voor Woordenboek · In het kortcontinuous integrationContinuous integration is een werkwijze waarbij ontwikkelaars kleine codewijzigingen regelmatig samenvoegen en automatisch laten controleren, zodat integratieproblemen vroeg zichtbaar worden.Lees meer en Woordenboek · In het kortcontinuous deliveryContinuous delivery is een werkwijze waarbij iedere geslaagde softwarewijziging automatisch wordt gebouwd, getest en klaargezet, zodat het team die op elk gewenst moment naar productie kan uitrollen.Lees meer of Woordenboek · In het kortcontinuous deploymentContinuous deployment is een werkwijze waarbij iedere softwarewijziging die alle automatische controles doorstaat zonder handmatige vrijgavestap naar productie gaat.Lees meer. Het beschrijft de afspraken en automatisering waarmee een team kleine softwarewijzigingen regelmatig controleert en oplevert. De precieze invulling verschilt per project. Meestal gebruikt het team een pipeline: een vaste reeks stappen die bij een codewijziging start.

Wat gebeurt er in een CI/CD-pipeline?

Bij continuous integration voegen ontwikkelaars hun wijzigingen vaak samen in een gedeelde Woordenboek · In het kortcodebaseEen codebase is de verzameling broncode waaruit een softwareproduct of onderdeel wordt gebouwd en onderhouden.Lees meer. De pipeline bouwt de software en voert bijvoorbeeld statische controles, Woordenboek · In het kortunit testEen unit test is een geautomatiseerde test die een klein, afgebakend onderdeel van software controleert, meestal los van externe systemen.Lees meer en Woordenboek · In het kortintegratietestEen integratietest controleert of meerdere onderdelen van een softwaresysteem correct met elkaar samenwerken. De test richt zich vooral op hun onderlinge communicatie en de gegevens die ze uitwisselen.Lees meer uit. Als een stap mislukt, krijgt het team snel feedback en kan het de fout herstellen voordat andere wijzigingen erop voortbouwen.

Daarna kan de pipeline een pakket of Woordenboek · In het kortcontainerEen container is een afgeschermd applicatieproces met de bestanden en instellingen die het nodig heeft. Containers op dezelfde machine delen doorgaans de kernel van het besturingssysteem.Lees meer maken en dit op een test- of acceptatieomgeving plaatsen. Dezelfde gecontroleerde versie kan vervolgens naar productie. Welke controles nodig zijn, hangt af van de software en de risico's. Naast automatische tests kan een Woordenboek · In het kortreleaseEen release is een herkenbare versie van software die is klaargemaakt om beschikbaar te stellen aan gebruikers. Zo'n versie bundelt een of meer gecontroleerde wijzigingen.Lees meer ook een Woordenboek · In het kortcode reviewEen code review is de beoordeling van een codewijziging door een andere ontwikkelaar. Die controleert onder meer de werking, leesbaarheid en onderhoudbaarheid voordat de wijziging wordt samengevoegd.Lees meer, beveiligingscontrole of handmatige goedkeuring vereisen.

Delivery en deployment zijn niet hetzelfde

Bij continuous delivery is iedere geslaagde wijziging klaar om naar productie te gaan, maar kan een mens het uitrolmoment bepalen. Bij continuous deployment gaat een wijziging na alle controles automatisch naar productie. De afkorting CD kan dus naar beide werkwijzen verwijzen.

CI/CD maakt releases herhaalbaar en geeft sneller zicht op fouten. Het garandeert geen foutloze software. De uitkomst blijft afhankelijk van de kwaliteit van de controles, de inrichting van de pipeline en de afspraken rond uitrollen en Woordenboek · In het kortrollbackEen rollback is het terugdraaien van een wijziging, zodat software, configuratie of gegevens terugkeren naar een eerdere toestand. Teams gebruiken dit wanneer een wijziging fouten of andere ongewenste gevolgen veroorzaakt.Lees meer.