Terug naar journal
article7 min lezen

CI/CD voor Magento webshops die blijven draaien

CI/CD voor Magento webshops verkleint risico bij releases. Lees hoe tests, deployments en rollback je shop snel, stabiel en beheersbaar houden voor teams.

CI/CD voor Magento webshops die blijven draaien

Vrijdagmiddag, 16.42 uur. Een kleine aanpassing aan een betaalmethode moet live, maar de developer durft niet te deployen. De checkout is druk, een ERP-koppeling draait op de achtergrond en niemand weet precies welke handmatige stappen de vorige release nodig had. Dat is geen deploymentproces, maar gokken met omzet.

Met CI/CD voor Magento webshops maak je releases voorspelbaar. Code gaat niet rechtstreeks van een laptop naar productie, maar door een vaste straat van controles, tests en automatische deployments. Daardoor kan je team vaker verbeteren zonder dat iedere release voelt als een avond vol stress.

Waarom Magento extra discipline vraagt

Magento is geen losse marketingwebsite waarop je alleen een tekstblok wijzigt. Een webshop bestaat uit code, extensies, configuratie, databasewijzigingen, cache, indexers, cronjobs, consumenten en koppelingen met bijvoorbeeld ERP, PIM, WMS en payment service providers. Een fout op één plek kan ergens anders zichtbaar worden: in voorraad, prijzen, orderverwerking of de checkout.

Juist daarom werkt het klassieke proces slecht: wijzigingen verzamelen, weken wachten en vervolgens alles in één grote release zetten. Zo'n release bevat te veel variabelen. Gaat er iets mis, dan kost het tijd om te bepalen of de oorzaak in een module, configuratie, databasepatch of externe integratie zit.

CI/CD verkleint die batchgrootte. Kleine, gecontroleerde wijzigingen zijn eenvoudiger te testen, sneller terug te draaien en beter uit te leggen aan het commerciële team. Dat betekent niet dat elke aanpassing zonder nadenken direct naar productie moet. Een nieuwe betaalprovider of ingrijpende prijslogica vraagt nog steeds om een bewuste releaseplanning. Het verschil is dat de technische basis klaarstaat zodra je die beslissing neemt.

Wat CI/CD voor Magento webshops praktisch betekent

CI staat voor Continuous Integration. Developers voegen hun werk regelmatig samen in één centrale codebase. Bij iedere wijziging controleert een pipeline automatisch of de code technisch klopt en geen bestaande onderdelen breekt.

CD staat voor Continuous Delivery of Continuous Deployment. Bij Continuous Delivery staat een geteste release klaar om met een bewuste goedkeuring live te zetten. Bij Continuous Deployment gaat de release automatisch live zodra alle controles slagen. Voor veel Magento-webshops is Continuous Delivery de verstandige middenweg. Je wilt snelheid, maar ook grip op momenten waarop campagnes, voorraadupdates of grote B2B-orders lopen.

Een werkbare pipeline controleert minimaal vijf zaken:

  • codekwaliteit en afgesproken programmeerstandaarden;
  • automatische unit- en integratietests waar die waarde toevoegen;
  • het bouwen van Magento-code en statische assets;
  • deployment naar een acceptatieomgeving die productie zo goed mogelijk benadert;
  • een gecontroleerde release naar productie, inclusief monitoring en rollbackplan.

De pipeline is dus niet alleen een technisch hulpmiddel voor developers. Het is een vaste werkwijze waarmee e-commerce, marketing en operations weten wat er verandert, wanneer het live gaat en wat er gebeurt als een release niet goed uitpakt.

Begin bij omgevingen die echt van elkaar verschillen

Een CI/CD-proces heeft weinig waarde als development, acceptatie en productie door elkaar lopen. Minimaal wil je een ontwikkelomgeving, een acceptatieomgeving en productie. Op acceptatie test je niet alleen hoe een pagina eruitziet, maar ook cruciale processen zoals bestellen, klantregistratie, prijsregels, facturatie en gegevensuitwisseling met externe systemen.

Kopieer productie niet blind naar acceptatie. Klantgegevens horen daar niet thuis zonder anonimisering. Gebruik ook veilige testaccounts voor betaalproviders en zorg dat testorders niet per ongeluk in een magazijn- of ERP-proces belanden. Dit lijkt detailwerk, maar het voorkomt vervelende verrassingen en privacyrisico's.

Voor Magento is configuratiebeheer een belangrijk onderdeel. Instellingen die alleen via het beheer zijn aangepast, zijn lastig reproduceerbaar. Leg technische configuratie daarom waar mogelijk vast in code of documenteer de noodzakelijke beheerstappen expliciet. Anders werkt de nieuwe feature prima op acceptatie, maar ontbreekt in productie net die ene instelling voor een verzending, store view of API-credential.

Test wat omzet kan kosten

Niet iedere Magento-installatie heeft direct een volledig testpakket nodig. Dat kost tijd en vraagt onderhoud. Maar geen tests hebben is geen snelle keuze - het verschuift de kosten naar incidenten, spoedwerk en gemiste omzet.

Begin met de processen die geld of klantvertrouwen raken. Kan een klant een product in de winkelwagen plaatsen? Werkt de checkout met de belangrijkste betaalmethoden? Komen ordergegevens goed door in het ERP? Worden voorraad en prijzen correct verwerkt? Bij B2B-webshops horen daar vaak klantgroepen, staffelprijzen, offertes en rollen bij.

Automatische tests vangen vooral herhaalbare fouten af. Voor visuele wijzigingen, complexe configuratoren of nieuwe klantreizen blijft een gerichte handmatige controle nodig. Leg die controle vast als korte releasecheck, niet als kennis in het hoofd van één medewerker. Als alleen één developer weet welke pagina's gecontroleerd moeten worden, is het proces kwetsbaar.

Een Magento-deployment is meer dan bestanden kopiëren

Een goede deployment draait om volgorde. Eerst wordt een release gebouwd, zodat afhankelijkheden en frontend-assets vooraf bekend zijn. Vervolgens komt die release op de server beschikbaar. Pas daarna volgen de stappen die nodig zijn om Magento met de nieuwe code te laten werken, zoals database-upgrades, configuratie-import, cachebeheer en waar nodig indexering.

Dat moet passen bij de inrichting van de shop. Bij een kleinere webshop kan een korte onderhoudsmodus acceptabel zijn. Bij een shop met continue orderstroom wil je releases die gebruikers vrijwel niet merken. Dan werk je bijvoorbeeld met releases naast elkaar, gecontroleerde omschakeling en processen die geen lange blokkade veroorzaken.

Let ook op achtergrondprocessen. Message queue consumers, cronjobs en integraties kunnen tijdens een deployment oude code blijven gebruiken of dubbel werk uitvoeren. Stop, herstart of versioneer deze processen bewust. De oplossing verschilt per hostingopzet en integratielandschap, maar negeren is geen optie.

Rollback moet je vóór de release regelen

Een rollbackplan is geen knop die elk probleem oplost. Code kun je vaak snel terugzetten. Databasewijzigingen zijn lastiger, zeker als de nieuwe release al orders heeft verwerkt. Een kolom verwijderen, data omzetten of een nieuwe prijsstructuur invoeren vraagt daarom om een gefaseerde aanpak.

Werk bij ingrijpende wijzigingen met uitbreidbare database-aanpassingen. Voeg eerst iets toe, laat oude en nieuwe code tijdelijk naast elkaar functioneren en verwijder pas later wat niet meer nodig is. Dat maakt terugdraaien realistischer. Bij grote integraties kan een feature flag helpen: de code staat al live, maar de nieuwe route wordt pas ingeschakeld wanneer de keten is gecontroleerd.

Na iedere deployment hoort monitoring. Kijk niet alleen of de server bereikbaar is. Controleer foutmeldingen, responstijden, checkoutconversie, betaalstatussen, queue-lengtes en fouten in API-koppelingen. Een groene deploymentmelding zegt alleen dat het proces technisch is afgerond. Niet dat klanten ook succesvol kunnen bestellen.

Wie is eigenaar van de release?

CI/CD werkt alleen als eigenaarschap helder is. Developers zijn verantwoordelijk voor testbare code en een betrouwbare pipeline. Het e-commerce team bepaalt welke commerciële controles nodig zijn. Operations bewaakt de continuïteit van hosting, monitoring en integraties. Maar uiteindelijk moet er één partij zijn die de hele keten overziet.

Dat is precies waar versnippering vaak duur wordt. De developer wijst naar de hoster, de hoster naar een externe integratiepartij en marketing wacht op antwoord. Met één technisch team voor development, managed hosting en deployments hoeft een incident niet eerst langs drie accountmanagers. Disrex werkt daarom vanuit directe lijnen: degene die het probleem onderzoekt, kan ook daadwerkelijk aan de oplossing werken.

Klein beginnen, wel consequent

Je hoeft niet eerst maanden te investeren in een perfect DevOps-programma. Start met versiebeheer, een vaste acceptatieomgeving en een pipeline die iedere wijziging bouwt en controleert. Voeg daarna de belangrijkste tests toe, automatiseer deployments en maak monitoring onderdeel van de release.

Meet daarbij niet alleen snelheid. Een deployment in minder dan vijf minuten is prettig, maar alleen waardevol als die ook voorspelbaar is. Kijk naar hoe vaak je releaset, hoeveel releases een herstelactie nodig hebben en hoe lang een incident duurt. Dat zijn cijfers waar management en e-commerce iets aan hebben.

De beste release is niet de release met de meeste techniek eromheen. Het is de release waarvan je team op maandagochtend zonder buikpijn zegt: zet maar live.

Relevante dienst

Benieuwd wat we voor jouw webshop kunnen betekenen? Ontdek onze diensten.

Geschreven door Rick Bouma
Rick Bouma
Over de auteur
Rick Bouma

Backend, infrastructuur, productarchitectuur. 10+ jaar Magento, hosting en DevOps. Bouwt het fundament zodat anderen erop kunnen bouwen.

Disrex koffie still life
fig. 02 — laten we praten
§ contact

Bouwen we samen
iets goeds?

Vertel ons over je shop, je doelen, je twijfels. Dertig minuten, geen verkoop-trucs.