I wrote a post for jruby migration 2 monthes ago, it mentioned a solution to do zero downtime deployment: pull out server out of load balancers, restart server, and then put in the server. It works but has some cons
- you must have more than 1 app hosts.
- deployment process gets much slower if you have lots of app hosts.
- you lost one host's throughput during deployment.
I'm using a different solution for zero downtime deployment now, instead of processing app hosts one by one
- it starts replicated ruby instances...