Continuous deployment: kan het nóg pijnlozer?

Recent schreef Dennis Doomen over wat Continuous delivery is en hoe je dit technisch het beste faciliteert. In zijn nieuwe bijdrage gaay hij een stapje verder en komt Continuous deployment aan de orde. Ook hier vind je weer meer over de benodigde technologie.

Continous deployment gaat net een stapje verder dan continuous delivery en staat geen enkele handmatige actie meer toe. Elke goedgekeurde broncodewijziging moet in principe in een automatische uitrol resulteren, inclusief automatisch gegenereerde release notes én een bijgewerkt databaseschema.

Maar ook geen enkele vorm van handmatig testen is toegestaan aldus Dennis. Sterker nog zegt hij, zelfs de servers waarop de software draait moeten automatisch ingericht worden. Heb je een bepaalde Windows-patch nodig? Dan is het uitrollen van die patch onderdeel van het bouwproces (en dat is weer onderdeel van de broncode).

Xunit is een unit-test-raamwerk dat het bouwen van geparallelliseerde software stimuleert. Niets is zo confronterend als het omzetten van bestaande unit-testen, die bijvoorbeeld met Microsoft’s eigen MSTest zijn gebouwd, naar Xunit. Dit haalt vaak pijnlijke ontwerpproblemen naar boven die normaal gesproken pas in productie aan het licht komen. Bijvoorbeeld als er veel gebruikers tegelijkertijd met het systeem bezig zijn. Door hier al vanaf het begin rekening mee te houden, is de kans een stuk hoger dat het uiteindelijke systeem goed omgaat met grote hoeveelheden gebruikers.

Hoewel je handmatige tests van het systeem moet minimaliseren, door bijvoorbeeld gebruik te maken van Javascript en Jasmine, heb je altijd een aantal zogenaamde smoke tests nodig. Dit zijn geautomatiseerde testen die het systeem in een testomgeving testen om na te gaan of alles nog goed werkt. In dat geval heeft de online service Browserstack in combinatie met het Selenium browser-testraamwerk de voorkeur. Hiermee kun je websites dynamisch testen in verscheidene browsers en platformen.

Lees hier het hele artikel van Dennis.