Deployotron

Deployments at the speed of Drush.

Deployotron makes deployments a one Drush command affair, and is simple to set up:

Commit your site to Git
Deployotron expects your site to be committed to the root of your Git repository.
Install Deployotron
Copy Deployotron into sites/all/drush and commit it. This ensures that everyone is using the same version when deploying.
Fix your alias file
Aliases makes Drush much more fun to use, and committing an aliases.drushrc.php in sites/all/drush makes it easy to share them with the rest of the team. It's also the place to configure Deployotron.
Clone site to prod
Clone the site repository where you want to deploy it to, using the same user as setup for the alias, to ensure that the permissions of the files are properly set up.
Enjoy
From there it's just a matter of pushing your changes and running drush deploy @alias to deploy your changes.
Oh no...
Something bad happened? Run drush omg @site to re-import the last dump and checkout the revision the site was at before deploying.
See GitHub for the code and README.