I’ve been developing a web application (written in Python/Django) for a while. All my development work is done on a Windows machine, but I eventually deploy to an Ubuntu 10.10 server (VPS).
I’ve started having a lot of trouble with the fact that my dev environment and production environment are different. I’m constantly trying new libraries that are supported on Linux, but have terrible Windows support, etc. I do have a staging server, but obviously I can’t do most of my development by deploying to a staging server every time.
My Question: I want to keep working with Windows as my development environment, but to not have all these issues. What’s the best way to go about it? I’ve started considering running a local Linux Server on a virtual machine, giving me the speed of a local server but removing the Windows obstacle. Is that the best way to go about this?
I guess there are as many solutions as freelance developpers.
Maybe not the best, but here what I’m doing and it works well :
What does it allow ?
You will loose some of the speed of a local server because of the VM required resources – hosted on the same machine than your windows stuffs, but the “how much” will depend on your hardware. In any case, this shall not become a bottle neck for such a layout.
It’s a bit heavy to setup at the beginning but very convenient once on track.
Hope it gives you ideas at least.
PS: setting up a VM is quite straight forward, even a noob like me has done it 🙂