I work on Ubuntu developing a Rails app for my church. We use a hosted VPS also on Ubuntu. I use Capistrano to deploy periodic updates. Inevitably, however, an app that works on my local box, always has a handful of problems after deploying to the host, most likely because the environments differ.
What are some practices/techniques to ease deployment so that what is tested and works locally is just as likely to work on the host. (I have already adopted the "vendor everything" approach.)
My first thought is to develop/work within a local VPS image that itself will eventually be deployed (a virtual appliance of sorts). Is anyone doing this?
What do others do to minimize issues that result from environmental differences? What hosts provide the best deployment options?
As far as possible make sure you're running the exact same version of Ruby, the exact same version of Rails, the exact same database setup, and the exact same everything else. The more differences between your live setup and your development setup, the more problems you're likely to encounter.
The content is written by members of the stackoverflow.com community.
It is licensed under cc-wiki