CI/CD: automatisering van vaste processtappen

08-05-2020

CI/CD: automatisering van vaste processtappen

Nog niet zo lang geleden was het ontwikkelen, testen en in gebruik nemen van nieuwe applicaties een langdurig en arbeidsintensief traject. Dankzij container-technologie in combinatie met ‘continuous integration, continuous delivery’ (CI/CD) is dat enorm veranderd. Automatisering van vaste processtappen stelt organisaties in staat om sneller, beter en tegen lagere risico’s mee te bewegen met veranderende omstandigheden. Het bouwen en onderhouden van een IT-omgeving gaat namelijk makkelijker naar mate je minder handmatig hoeft te doen. Je kunt hier twee infrastructuren onderscheiden:

  • De traditionele infrastructuren, waarbij systemen idealiter op een nette, gestandaardiseerde en geautomatiseerde manier worden uitgerold.
  • De gecontaineriseerde applicaties, met inbegrip van al hun onderlinge afhankelijkheden en parameters.

CI/CD is een geautomatiseerd proces om applicaties altijd volgens hetzelfde patroon: van ontwerp naar test en deze vervolgens naar acceptatie en productie te brengen. “Zo weet je altijd zeker dat het juiste proces is gevolgd”, zegt Solution Specialist Jan van Bruggen, SoftwareONE. “Rondom CI/CD zijn er de nodige automatisering tools, die kunnen worden ingezet om diverse taken met betrekking tot het bouwen, testen en leveren of implementeren van gecontaineriseerde software te automatiseren.”

OpenShift-containerplatformen

Een voorbeeld van zo’n tool is Jenkins voor het testen en beheren van het bouwproces op een Red Hat OpenShift-omgeving. Zo geeft van Bruggen aan dat “OpenShift-containerplatformen op meerdere omgevingen kunnen draaien: on-premise of in de cloud van AWS, Microsoft Azure, Google etc. Met name bij een samengesteld landschap, bestaande uit containers in meerdere omgevingen, is het belangrijk dat je die allemaal eenvoudig kunt beheren. Zo is een CI/CD-straat met de juiste processen en tools volledig ingericht op de beheersing van alle essentiële parameters en koppelingen.” Vervolgens kun je standaard gebruik maken van alle methodes en mogelijkheden die OpenShift biedt. “Denk aan Source-To-Image (S2I) voor het omzetten van de applicatie-broncode naar een executeerbare container-image. Of het inzetten van GitHub, een platform dat een team in staat stelt om gezamenlijk software te ontwikkelen, met alles wat daarbij komt kijken”, aldus van Bruggen.

Daarnaast kun je in OpenShift vastleggen welke applicaties nodig zijn om een werkend geheel te krijgen. “Stel dat drie containers een applicatie volledig laten werken – een website, een database en een php-script. Dan kun je na het bouwen checken of alles met elkaar praat. Zo niet wil je dat OpenShift een roll-back doet naar de vorige versie.”

Geen menselijke fouten

Krap tien jaar geleden was het proces van development en testing nog een lange cyclus, benadrukt Joost Mulder van IBM. “Er was veel tijd nodig om van een prototype naar daadwerkelijke productie te komen. Dat is een nadeel in de hedendaagse dynamische markt, waarin je snel moet inspelen op veranderende omstandigheden. Juist automatisering helpt om die snelheid erin te krijgen en meer agile manieren van werken te ondersteunen.” Een voorbeeld: in plaats van één keer in de 18 maanden een nieuwe release uitrollen (die helemaal door en door getest was) kun je nu meerdere keren per maand een nieuwere versie uitrollen. De herhaling van manuele processtappen, kunnen nu in een geautomatiseerd patroon worden uitgevoerd.

“Dat heeft als bijkomend voordeel dat menselijke fouten voor een groot deel geëlimineerd worden. Een data-lek is vaak het gevolg van een ‘user error’. Iets wordt bijvoorbeeld op een foute manier online gezet, waardoor het per direct door onbevoegden te benaderen is. Hier komt ‘Governance’ om de hoek kijken, dat wil zeggen geautomatiseerd de regie voeren over het totale proces. Je voorkomt zulke problemen door op de juiste manier je deployment-patroon te programmeren.”

Optimaliseren van applicaties

Het steeds sneller kunnen uitrollen van nieuwe applicaties en de daarbij behorende mogelijkheden sluit nauw aan op het principe van containerization. Jan van Bruggen: “Wanneer je iets hebt aangepast en het vervolgens pusht naar een GitHub, dan krijgt de OpenShift-omgeving een seintje: ‘denk eraan, er is iets nieuws neergezet’. Wanneer de container opnieuw is opgebouwd en goed werkt wordt de oude automatisch verwijderd. Je hebt hierdoor een continue ontwikkelcyclus. Zo ben je met CI/CD voortdurend bezig met het aanpassen en finetunen van de applicatie.”

Meer weten? Neem contact op met Jan van Bruggen, IBM Solution Specialist SoftwareONE!

Door: Jan van Bruggen, IBM Solution Specialist bij SoftwareONE

Terug naar nieuws overzicht