1. Back up your production database daily locally and to Amazon S3 using DB2s3 (https://github.com/xaviershay/db2s3). 2. Host your images on amazon s3. 3. Write a deployment script for every step involved in redeploying your application to server. Document gem vesions and sources.
Uploading your application by FTP is generally going to be much slower than reinstalling the application at the command line and restoring the database. You will also have to manually fix problems with directory permissions. I use an external service like gmail for application mail so I don't have to worry about backing up and restoring mail archives. -Pete