DevSecOps

Testen en uitrollen

Testen en uitrollen gaat over de weg die een wijziging aflegt: van de laptop van de ontwikkelaar naar het scherm van jouw bezoeker. Bij ons loopt die weg langs versiebeheer, waarin elke wijziging apart wordt vastgelegd. Daarna langs controles die vanzelf draaien, en dan met één druk op de knop naar de echte site. Niemand staat met de hand bestanden te kopiëren.

Wat is geautomatiseerd testen en uitrollen?

Dat verschil merk je pas als er iets misgaat. Wie met de hand werkt weet bij een storing niet wat er veranderd is, en kan alleen vooruit repareren. Ligt het vast, dan zet je binnen een paar minuten de versie van gisteren terug.

Het scheelt ook tijd. Wijzigingen die vroeger werden opgespaard tot er een geschikt moment was, gaan nu los de deur uit. Testen en uitrollen automatiseren betekent vooral dat kleine dingen klein blijven.

Wat automatisch testen en uitrollen je oplevert

Dit is werk onder de motorkap. Je ziet er als opdrachtgever niets van. Wat je wel merkt, is dit.

Fouten komen boven voordat je klanten ze zien: De controles draaien binnen een paar minuten na elke wijziging: doet bestellen het nog, doet inloggen het nog, praat je site nog met je andere systemen. Een fout die daar opvalt kost tien minuten. Op de echte site kost diezelfde fout een middag en een boze klant.

Terug kunnen in plaats van repareren: Blijkt er na het live zetten toch iets stuk, dan zetten we de vorige versie terug en zoeken we daarna rustig uit wat er misging. Je bezoekers merken er een paar minuten van, geen halve dag.

Ook op vrijdag durven: Als live zetten een handeling van een minuut is met een weg terug, hoef je wijzigingen niet meer op te sparen tot maandag. Kleine verbeteringen worden ineens de moeite waard.

Niet afhankelijk van één persoon: De weg naar live ligt vast in het project zelf, niet in het hoofd van de ontwikkelaar die het toevallig altijd deed.

Voor wie is dit

Testen en uitrollen automatiseren loont zodra er vaker dan een paar keer per jaar iets aan je site of applicatie verandert:

  • Je durft niets meer aan te passen omdat je niet weet wat er dan stuk kan gaan
  • Je hebt een keer iets live gezet en pas dagen later gehoord dat er iets stuk was
  • Je weet niet wat er sinds vorig jaar aan je site is veranderd, en door wie
  • Er werken meerdere mensen aan je site en af en toe gooien ze elkaars werk overheen
  • Je site hangt aan een systeem dat soms verandert, en je klanten merken dat eerder dan jij

Wat je krijgt

  • Alle code in versiebeheer, met per wijziging wie het deed, wanneer en waarom
  • Controles die na elke wijziging vanzelf draaien op de dingen die geld kosten als ze stuk zijn
  • Een waarschuwing als er een bekend lek zit in de kant-en-klare onderdelen die je site gebruikt
  • Dezelfde stappen naar de testomgeving en naar de echte site, zodat er geen verschil ontstaat
  • Binnen een paar minuten terug naar de vorige versie, ook als wij net niet bereikbaar zijn
  • Een controle op toegankelijkheid die meedraait, zodat een wijziging niets sloopt voor wie de site laat voorlezen

Hoe we het bouwen

Alles op één plek. Eerst zorgen we dat alles wat live staat ook echt in versiebeheer zit, tot de instellingen aan toe. Bij projecten die we overnemen is dat stap één en meteen de vervelendste: er staat altijd wel iets op de server dat nergens anders bestaat.

Testen wat ertoe doet. Daarna schrijven we controles voor de paden die geld waard zijn. Niet voor alles, dat is zonde. Wel voor inloggen, bestellen, betalen en het contact met je andere systemen. Daar wil je dat er een alarm afgaat.

De weg naar live bouwen. Naar de testomgeving bij elke wijziging, naar de echte site met een druk op de knop. Testen en uitrollen zijn dan geen aparte klus meer, maar iets dat vanzelf meeloopt.

Wat kost geautomatiseerd testen en uitrollen?

Wat het inrichten hiervan kost voor een bestaande site of applicatie, hangt af van waar je begint. Staat de code al netjes in versiebeheer, dan is het een paar dagen werk. Moet dat eerst nog gebeuren en is er ook met de hand van alles op de server veranderd, dan wordt het meer.

Bij projecten die wij bouwen zit dit in de bouwkosten. We kennen geen fatsoenlijke manier om zonder te werken, dus het staat niet als keuzevakje op de offerte.

Daarna loopt het mee in hosting en onderhoud. Testen en uitrollen kosten vanaf dat moment nauwelijks nog tijd, en dat is precies de bedoeling.

Waarom Mediavisie Web

We bouwen en beheren zelf, dus we kunnen deze weg naar live ook echt aanleggen. Bij een kant-en-klaar bouwpakket waar je alleen in een venster mag klikken kan dat niet: de live site is dan de enige plek waar iets bestaat, en dus ook de enige plek waar je het stuk kunt maken.

Testen en uitrollen horen bij elke oplevering, samen met een controle op toegankelijkheid. Niet als aparte regel op de factuur, maar als onderdeel van hoe we werken.

En omdat de code van jou is, staat die hele weg naar live in jouw project. Stap je ooit over, dan neemt de volgende partij hem over.

Waar je op moet letten

Testen en uitrollen op de automaat vangt niet alles. Een controle kijkt naar wat iemand erin heeft gezet, en de fout die niemand had bedacht glipt er gewoon doorheen. Het voelt in het begin ook als vertraging: een wijziging die vroeger in vijf minuten op de server stond, gaat nu langs een reeks stappen. Die tijd verdien je terug bij de eerste keer dat er iets stuk zou zijn gegaan.

De techniek eronder

Alle techniek

Waar we het mee bouwen.

  • Uitrollen

    GitHub Actions

    Bouwt, test en zet live bij elke wijziging. Faalt een test, dan gaat er niets naar productie.

  • Omgeving

    Docker

    Iedereen werkt in dezelfde omgeving, en die omgeving lijkt op productie. Scheelt de klassieke verrassing bij livegang.

  • Testen

    Playwright

    Doorloopt je site als een echte bezoeker in een echte browser. Ook de toegankelijkheidscontrole draait hierin mee.

  • Versiebeheer

    GitLab

    Elke wijziging vastgelegd en terug te draaien. Jij krijgt toegang tot de code die van jou is.

  • Bewaking

    Sentry

    Meldt een fout op het moment dat hij optreedt, met de regel code erbij. Wij zien het voordat jij belt.

  • Server

    Ubuntu

    De basis onder onze servers. Lange ondersteuning, dus je hoeft niet elk jaar mee met een grote sprong.

Werkwijze

Hoe we het aanpakken.

Van het eerste gesprek tot doorbouwen na livegang. Vier fases, en je weet bij elke fase wat er af is en wat er nog komt.

  1. 1 tot 2 weken

    Uitzoeken

    Wat er moet komen en wat er al ligt

    We brengen in kaart welke systemen mee moeten, wie het straks beheert en waar het vorige traject op vastliep. Daar komen de uitzonderingen boven water die later de planning bepalen.

    Lees verder over Uitzoeken
  2. Eén week

    Afbakenen

    Van wensenlijst naar een plan met een prijs

    We knippen het werk in stukken die los opgeleverd kunnen worden, en zetten er een prijs en een volgorde op. Daarbij spreken we af wat er in de eerste versie zit en wat later komt.

    Lees verder over Afbakenen
  3. 6 tot 12 weken

    Ontwerpen en bouwen

    Eerst de schermen, dan de techniek eronder

    Je kijkt vanaf de eerste week mee op een testomgeving. We leveren in rondes op, te beginnen met het deel dat het meeste werk uit handen neemt, zodat je stuurt op wat je ziet.

    Lees verder over Ontwerpen en bouwen
  4. Doorlopend

    Doorbouwen

    Na livegang begint het pas

    Updates, bewaking en nieuwe functies, met een vast aanspreekpunt dat je project kent. We meten wat er gebruikt wordt, en dat bepaalt waar we het volgende kwartaal aan werken.

    Lees verder over Doorbouwen

Wij werken onder andere voor

Aan de slag

Iets te bouwen?

Vertel wat er moet komen. We denken mee over techniek, haalbaarheid en wat het kost, ook als het plan nog niet rond is.

Een project bespreken
Ontdek jouw mediavisie