PHP deployment script: nieuw open-source project van NedStars

NedStars SmileyVandaag heb ik samen met NedStars collega Alain Lecluse onze PHP deployment tool opensource gemaakt. Dit script gebruiken we bij NedStars om met één druk op de knop een nieuwe versie van een website, webshop of web-applicatie naar de productieomgeving door te zetten. Deze tool is geïntroduceerd tegelijkertijd met onze overstap van Subversion naar Git, en wordt momenteel primair gebruikt voor onze Magento en Concrete5 projecten.

Voorheen werkten we vaak op productieservers met Subversion checkouts. Hoewel het updaten dan heel simpel is (svn up anyone?), betekent dit wel dat een update down-time tot gevolg heeft (gedurende de SVN operaties zijn de files niet in consistente staat, met mogelijk foutmeldingen tot gevolg). Bovendien kunnen er conflicten optreden, en is het soms lastig om een update snel terug te draaien mocht er iets misgaan. Daarom is besloten om dit te automatiseren in een deployment script.

Dit deployment script neemt wat voorzorgsmaatregelen, zoals het maken van een database backup, en het backuppen van de applicatie folder. Vervolgens wordt een Git export gemaakt in een tijdelijke map (naast de live-webroot), en kopieert het script bepaalde live-data als geuploade afbeeldingen naar de tijdelijke map. Uiteindelijk resultaat is een tweede webroot directory met een volledige installatie van de applicatie. De laatste stap is het hernoemen van de huidige webroot, en het daarvoor in de plaats neerzetten van de nieuwe folder. Aangezien onder Linux een rename operatie atomic is, blijven alle files in een consistent state, en merkt de eindgebruiker eigenlijk helemaal niks van de livegang.

De deployment tool is vanaf vandaag gratis te downloaden op GitHub onder de naam Deploy-Script.

Uiteraard juichen we feedback, of eigen aanpassingen van harte toe!

NedStars Deployment Script v1.0
Screenshot NedStars Deployment Script v1.0 (by Alain Lecluse)