On Web Development Environments

I have to admit at times to an amount of ‘Mac envy’. Whenever I attend either a WordPress or Drupal conference, most of the delegates that brought a computer will be using a Mac of some form. The code sprint rooms are packed with Mac users. Myself, I have a 5 year old ASUS laptop, running Windows 7, as well as a 5 year old Windows 7 desktop at home. They were nicely spec’ed when I bought them, so performance is not really an issue. The challenge I have, is, creating a seamless web development environment to support my Drupal and WordPress sites. My requirements include:

  • To match my production environment as close as possible
  • To support Git and a host of Linux/Unix tools
  • To support Photoshop
  • To provide seamless support for developing and staging web sites
  • Can take it on the road with me
  • Can survive a hard disk crash without too much pain

It’s no exaggeration to say that, aside from purchasing a Mac, I’ve tried a LOT of variations and am currently using:

  • My desktop if my principal environment
  • Occasionally use my laptop
  • Oracle VirtualBox
  • KVM

Let me explain. . . .

First off, I’ve been developing with Linux Mint on Oracle VirtualBox hosted on my desktop for several months now. I’ve been looking to offload it from my desktop, as I don’t like putting all my eggs in one basket. Therefore, I setup KVM on a dedicated host so that I could implement several servers independently of my desktop, including my main development environment. Unbeknownst to me at the time, the obvious disadvantage here is that I can’t take that on the road with me. That is, unless I’m prepared to use a rather slow VNC connection.

Rather than offload my principal Linux box to KVM, I think I’ll continue to host my Linux on VirtualBox on my desktop and to copy that environment to my laptop for those times when I’m offsite, let’s say at a development meetup or client site. In the meantime, I’ll continue to use KVM to host various machines, such as my production backup server, test servers as well as a home media server.

In some respects, it’s not quite as seamless as a Mac, but my development environment is stored as an image and can move seamlessly between my desktop and laptop. I’ve also got file sharing and drive mappings setup so that it’s easy to access my Linux Machine from Windows. Furthermore, VirtualBox’s seamless mode looks pretty awesome.

I’m pretty happy with my development environment, and now just need a Haswell chip to run it on. In the meantime, I’ll back off on the Craigslist search for a used Macbook.

Update: Just bought a 4770K desktop with 32G of RAM. Lots of room for virtual servers.

Update2: That desktop rocks!

Comments are closed.