Unicorn has a nice feature that bought it a lot of popularity and set standards
for other Ruby web servers: The ability to do Zero Downtime Deploy, also known
by the name rolling deploy or rolling restart aka hot restart. You start it by issuing
USR2 signal. But here is something that most websites won't tell you. It can fail
and you won't even notice. You will be thinking that everything went ok, living in Wonderland,
whereas in reality your deploy achieved uptime of exactly 0 seconds.
So what you need is a small verification procedure that everything worked as
expected. This article will demonstrate simple solution for achieving it
in case you are using
capistrano for deploying the app. However you can use very similar
procedure if you deploy your app with other tools.