9 comments

[ 3.0 ms ] story [ 27.3 ms ] thread
Note that the author is Rasmus Lerdorf, the creator of PHP. The system he describes covers a variety of edge cases that are almost never properly handled in PHP deployment scripts I've seen in the wild.
I'd say they tend not to be handled well in most deployment mechanisms regardless of the language because all moderately complex systems are going to have multiple levels of caching that need to be taken into account when you are trying to update without restarting anything.

This isn't a failure of the deployment tools, by the way, because there is no way to write one that can take everything into account.

There is a fundamental difference — PHP is one of the only programming environments for any system in which the minimum viable deployment mechanism is nothing, and for which that approach scales to considerable heights.

Other environments demand a base level of sophistication for even a Hello World app to ever execute in the first place.

This is pretty awesome, I was looking for something exactly like this the other day. I can't wait to play around with it.
Twitter's murder project( https://github.com/lg/murder ) for deploying via bittorrent was also really creative.
Yeah, I looked at that too, but we don't quite have the number of servers that Twitter does. :) The primary goal was to get the deploy sequence and cache management right.
We looked at a bittorrent/murder based system also, but found that the time it takes to get the (IMO massive) code base on to the machines is one of the stages that takes the least amount of time.
I find it hard to believe that this is Rasmus' first public code contribution on Github.
Well, the things I have contributed to over the years have had their own source control systems.