Software releasen met Suske en Wiske

Op door Dieter Provoost

De perfecte flow voor software releases

Het staat als een paal boven water: een website is een ongoing process. Of je nu een eenvoudige website met boeiende content hebt, een full blown B2B-webshop of een applicatieplatform met alles erop en eraan: verandering is de enige constante. 

Er zijn heel wat redenen die ervoor zorgen dat je website nooit écht klaar is. De groei van je zaak die om functionele wijzigingen of een schaalbaar platform vraagt, een nieuwe huisstijl die pas compleet is met een gloednieuw webdesign … Bij Marlon doen we er alles aan om updates en wijzigingen zo vlot mogelijk uit te voeren én snel online te plaatsen. 

Ongeacht de omvang van het project werken wij daarom steeds volgens een vast stappenplan dat bestaat uit voorbereiding, testing, release en monitoring. Een efficiënte aanpak die werkt. Om dat aan te tonen, leggen we je uit hoe we dit precies hebben aangepakt voor Be-Mobile
 

Think first. De voorbereiding.

Bij Marlon bestaat een project altijd uit meerdere sprints en werken we van de ene sprint naar de andere toe. Iedere twee à vier weken leveren we een nieuw afgebakend product of onderdeel van een website, webshop of platform op. Dit helpt het team om gefocust te werken én geeft de klant op elk moment een duidelijk zicht op de vooruitgang van het totaalproject. 

Aan het begin van onze samenwerking met Be-Mobile besloten we unaniem om iedere nieuwe release een allitererende titel uit de stripreeks Suske en Wiske mee te geven. Zo werd de meest recente versie van het 4411-platformDe Kleppende Klipper’ genoemd. De release is intern ook wel bekend als V2.0.0, maar geef toe: dit klinkt een pak minder catchy.

Na de kick-off meeting van het project ‘De Kleppende Klipper’ volgde een continue flow van verschillende sprints die bestonden uit development, reviews en testing. Voor elke sprint werkten we nauw samen met de klant. Tijdens de ontwikkeling pikte de build-server Jenkins wijzigingen aan de programmacode automatisch op en werden de resultaten van automatische tests gepubliceerd via pull requests. 

Deze pull requests worden steeds aangemaakt op Github, een website waarop onze developers samenwerken en code met elkaar kunnen delen en reviewen. Wanneer bijvoorbeeld de ‘build’ van een aangepaste wijziging groen kleurt, kan deze worden toegepast op de bestaande code. Deze (mini-)updates worden automatisch gedeployed naar een testomgeving waar de klant de wijzigingen kan valideren.

Letting go. De release.

Nadat de klant - of het testing team van de klant - alle wijzigingen in de testomgeving heeft doorlopen en goedgekeurd, staan wij klaar voor dé release. 

We passen de wijzigingen in de code toe op de master branch en vervolgens wordt de nieuwe code geüpload naar één of meerdere servers. Indien we het databasemodel moeten aanpassen, vindt er ook steeds een migratie plaats.

slack deploy release

Om de downtime zoveel mogelijk te beperken, pre-packagen we de code en/of maken we gebruik van actieve of passieve server setups. Zo hebben we steeds een server ter beschikking voor de gebruikers van het platform zodat zij niets merken van onze activiteiten.  

Zodra de release succesvol is afgerond, verschijnt dit automatisch in onze chat tool Slack zodat iedereen van het succes kan meegenieten.

A continuous story. Testing en monitoring.

Als digital agency staan we 100% achter de uitdrukking ‘You build it, you run it’. Na de release staan we zelf in voor de nodige functionele testen en focussen we in de eerste plaats op de nieuwe functionaliteiten. Maar we analyseren ook verbanden zodat we eventuele achteruitgang binnen andere features opmerken en kunnen aanpakken. Zo heeft ieder project een regression checklist met verschillende scenario’s die we vlak na iedere release opnieuw doorlopen en valideren.

Monitoring gebeurt continu via InfluxDB en Grafana, en zeker net na een release bewijzen deze tools hoe waardevol ze zijn. Naast gegevens over de infrastructuur (geheugen- of processorgebruik op de servers, disk space of netwerktrafiek) zorgen we ervoor dat vanuit de applicatie heel wat extra meetpunten worden meegestuurd. Op een grafiek zien we dan snel waar er iets misloopt om dan gepast in te grijpen. Dit werkt een pak efficiënter dan een volledig logbestand uitpluizen waardoor we veel sneller kunnen ingrijpen.

Een optimale workflow

Zowel onze developers als onze klanten zijn fan van onze werkwijze. Allereerst zorgt het proces intern voor een doeltreffende workflow. Niet alleen zijn alle noodzakelijke stappen duidelijk, ook de manier waarop we code schrijven en controleren ligt vast. Dat schept een duidelijk kader voor onze developers en maakt samenwerken nog makkelijker

De klant behoudt dan weer op elk moment een duidelijk overzicht van het verloop van het project. We leggen de deadline en inhoud van iedere sprint vast zodat de klant perfect weet wanneer hij wat mag verwachten.  

Of het nu gaat om een kleine of grote wijziging: testing, release en monitoring gebeuren steeds nauwgezet. Ons proces is zo geoptimaliseerd op vlak van snelheid en stabiliteit dat zelfs deployen op vrijdag met een gerust hart kan. Als Marlon releast, weet je dat het goed zit.  
 

Junior PHP Developer? En denk je damn, dàt is wat ik wil?

Meld je aan voor onze volgende sprint. Ons team staat alvast klaar om je te helpen groeien in je vak. Maar is ook razend benieuwd naar jouw inzichten en kennis over allitererende albumtitels van Suske en Wiske. 

Check onze vacature

Gerelateerde berichten