CI & CD

Flexibel en betrouwbaar door procesautomatisering.

Geautomatiseerd software ontwikkelen en releasen

Software ontwikkelen en releasen is een gecompliceerd proces. Een hele uitdaging bij grote digitale projecten, waar applicaties en infrastructuren steeds complexer worden. Om software snel en consistent te ontwikkelen, testen en releasen en om dat proces goed te managen, hebben ontwikkelaars de processen geautomatiseerd. 

CI: continuous integration

Continuous integration (CI) betekent dat een ontwikkelaar zijn eigen code van begin af aan een aantal keer per dag samenvoegt met de code van de andere ontwikkelaars. Op de code worden vervolgens automatisch een aantal tests uitgevoerd. Zo ontdek je eventuele bugs in een vroeg stadium, versnel je het gezamenlijke ontwikkelproces en minimaliseer je de kosten.  

De kwaliteit en kosten van integraties worden bepaald door de mate van automatisering van het proces. Handmatig checken of de code aan de eisen voldoet, geen bugs bevat of niet botst met bestaande functionaliteiten kan kostbaar en tijdrovend zijn. En foutgevoelig. Daarom maken we bij CI gebruik van een geautomatiseerd systeem om grondige testen uit te voeren. Dus als een ontwikkelaar zijn code in het gezamenlijke systeem zet, wordt de code automatisch gecheckt. Het doel van CI is om van integratie een eenvoudig herhaalbaar proces te maken dat onderdeel is van de dagelijkse workflow van ontwikkelaars.  

system-integrations icoon Integration

Betrouwbare code door continue automatische tests.

delivery icoon Delivery

Code altijd klaar om uit te rollen, door geautomatiseerd proces.

deployment icoon Deployment

Automatisch uitrollen van geteste codes.

De voordelen van continuous integration op een rij

  • Vermindering van integratiekosten 
  • Snel acteren op eventuele bugs 
  • Betrouwbaar en geautomatiseerd systeem 
  •  
  • Snel door continue iteraties 
  • Kwaliteit van integraties 
  • Voorkomen van terugkerende problemen 
  •  

CD: continuous delivery and deployment

Continuous delivery (CD) automatiseert het klaarzetten van de ontwikkelde code. Continuous deployment gaat nog een stapje verder en rolt de nieuwe code automatisch uit. Klinkt ingewikkeld. We leggen het uit.

Continuous delivery 

is het vervolg op continuous integration. Bij continuous delivery zetten we de ontwikkelde basiscode klaar als een soort kant-en-klaar pakketje. Dit klaarzetten is een geautomatiseerd proces en is daardoor minder foutgevoelig dan wanneer je dit handmatig doet. Als klant weet je dus dat de functionaliteit die voor jou klaarstaat betrouwbaar is en dat je die op elk moment kunt releasen zonder ingewikkelde procedures en zonder tests die op het laatste moment moeten plaatsvinden. Daardoor is de livegang uiteindelijk maar een kleine stap.  

Continuous deployment

zorgt ervoor dat het codepakketje dat klaarstaat automatisch de OTAP-straat doorloopt. OTAP staat voor Ontwikkel-Test-Acceptatie-Productie. Elk pakketje doorloopt deze 4 stappen. De eerste 2 gebeuren op de achtergrond, daar merk je als klant niets van. Als een nieuwe functionaliteit eenmaal op Acceptatie staat, kun jij als klant gaan testen of alles werkt zoals bedoeld. Zo ja, dan gaat de functionaliteit naar Productie, dat is de live-omgeving. Bij continuous deployment doorloopt het codepakketje deze 4 stappen automatisch. Bugfixes en nieuwe features bereiken de gebruiker daardoor snel. En je krijgt op die manier ook snel feedback hierover van de gebruiker. Toch kiest niet iedereen voor continuous deployment. Als je bijvoorbeeld zelf graag het moment van livegang bepaalt, dan is handmatige deployment een betere optie.

De voordelen van continuous delivery and deployment op een rij

  • Code die klaarstaat is betrouwbaar 
  • Maximale flexibliteit 
  • Checken en live zetten van de code is geautomatiseerd 
  •  
  • Je kunt continu verbeteringen doorvoeren zonder grote impact 
  • Je ontvangt continu feedback van eindgebruiker, waardoor je steeds kunt verbeteren 
  • Optioneel zelfs automatisch live zetten naar productie omgeving
  •