I'm going to lay out some rules of thumb for deploying webapps and then go into the why they're important. But first I should note that while all of these are very important, when you start using an automated tool like Capistrano you stop having to worry about these, because you just take care of them all in the beginning when you write your deployment script.