Which tool(s) do you use to install/upgrade your app on production?
sowbug: Puppet with RPMs in yum repositories. Python scripts push individual RPMs to the development repository, then to staging, and finally to production.Also a few custom tweaks to restart the Puppet daemons when they die, which they do frequently.