VMware for Web Development
I've been getting into the habit of firing up VMware and configuring virtual servers for web development. There are tons of benefits to using virtual machines, but some of the key benefits for me are:
- My local machine doesn't get cluttered with different development environments for different projects
- I can install different versions of software and libraries on their own machines without conflicts
- Using a virtual server allows you to run identical systems as your staging and production servers
- Deploying to a local virtual server can be a similar process to deploying on a staging or production server
- Development environments can be replicated by the development teams so everyone is working on an identical platform (or at least deploying to an identical development platform)
- You don't have to develop directly on the virtual server -- use your local machine to write code and then have an automated deployment to your virtual server.
- If you're using bridged networking, other developers on your network can connect to your virtual server
After going so long developing web apps on my local machines and having to deal with different Python package versions, different databases, web servers, etc, it makes complete sense to use virtual servers for web development. Another thing I've been doing lately is using virtualenv for sandboxing Python environments. It helps a lot for locking a web app into specific package versions (and Python versions) while also keeping your system's Python environment clean.