Lighting fast, zero-downtime deployments with git, capistrano, nginx and Unicorn

Everyone who has ever developed a web app has had to deploy it. Back in the day you simply uploaded your files with FTP and everything would be good. Today we have to clone git repositories, restart servers, set permissions, create symlinks to our configuration files, clean out caches and what not. Doctor, what’s wrong? In my opinion there are two critical problems with deployments today: They are slow They cause downtime Both topics have been discussed by the likes of Twitter and Github.