Pipelines (pijpleidingen), je kent ze vast wel van de wegenbouw en de afvoer van water. Pipelines in de e-commerce dragen ook zo hun steentje bij. Dat doen ze om twee redenen: de code wordt er beter van en een webshop heeft nagenoeg geen downtime meer tijdens een deploy. Maar wat is een pipeline precies? We spraken onze eigen Development Consultant Pascal van Gelder over dit onderwerp.
De code wordt beter, leg uit?
Ja, een Pipeline controleert alle code die wordt toegevoegd door de developer en geeft dan aan of de code voldoet aan bepaalde standaarden. Je kunt het zien als een automatische tester.
In een nieuwe versie van HTML mag je bijvoorbeeld geen zogenaamde ''self closing tags'' meer gebruiken. Wanneer je die wel in je code hebt zitten, geeft de Pipeline daar een melding van en mag de code niet live voordat je dat hebt opgelost.
Dat klinkt streng!
Klopt, maar het zorgt er wel voor dat we voordat het live staat, weten dat onze code niet helemaal netjes is. Dat komt ten goede aan de kwaliteit en de performance van de webshop. En het is erg vervelend als je dit pas merkt bij het testen van de webshop.
Je hoeft dus niet meer te testen?
Haha, dat zeg ik niet. Maar de kans dat je tijdens een test iets tegenkomt is een stuk kleiner, omdat de code zichzelf al heeft getest. En in dat automatische testen kun je zo ver gaan als je zelf wilt.
Hoe bedoel je?
Je kunt in theorie elke actie die een bezoeker uitvoert opnemen in een script en testen met een Pipeline. Maar elke test kost tijd, dus het is een kwestie van afwegen of je alles automatisch wilt kunnen testen. Bij veel klanten richten we ons met name op het testen van de orderflow en de account-registratie.
En hoe zit het dan met deployen?
Bij een deploy moeten er nogal wat stappen worden uitgevoerd. De nieuwe code moet worden gedownload, de modules moeten worden geïnstalleerd en de front-end moet worden opgebouwd. In die periode dat dit gebeurt, is de webshop niet bereikbaar voor bezoekers. Dus wil je een deploy zo kort mogelijk houden.
Bij Pipeline Deployment worden alle stappen voorbereid in een losse omgeving en wordt deze omgeving in een paar milliseconden live gezet. De bezoeker merkt dus niet dat er een deploy heeft plaatsgevonden en de webshop blijft al die tijd bereikbaar.
Is er een reden om geen Pipelines te gebruiken?
Je moet in het begin zorgen dat de bestaande code aan de standaarden voldoet (en dus alle tests succesvol zijn) voordat je de nieuwe code kunt valideren. Daar gaat wat tijd mee gemoeid en die tijd kun je niet besteden aan de ontwikkeling van nieuwe functionaliteiten. Maar, door Pipelines zorg je ervoor dat de basis goed staat en zal de ontwikkeling van nieuwe functionaliteiten sneller gaan omdat er minder bugs naar voren komen. Ook is de bereikbaarheid van de webshop rondom deploys van deze nieuwe functionaliteiten veel beter in vergelijking met conventioneel deployment.
Hoe kan een klant gebruik maken van Pipelines?
Dat is simpel: het team richt voor elke klant een testsuite in zodat de automatische tests bij elke code-wijziging worden getriggerd. De resultaten verwerken we in dan overleg met onze klanten.