ClickAider

The best Rails is a virtual Rails: Virtualization for Mac and Windows

I’ve noticed an interesting trend towards mainstream developer use of virtual machines:  Those of us who develop in Rails in Jobster increasingly do so on Linux, either real or virtualized. 

Linux tends to be better supported than either Windows or OSX when it comes to Rails gems– the libxml gem for instance, is critical for fast XML parsing, but is difficult if not impossible to run on Windows. Linux is also better supported than Intel OSX for things like the closed source (boo hiss) Oracle OCI8 drivers.

There are even performance advantages. Tools like Subversion perform much faster in virtualized Linux than they do in native Windows, and even Rails startup time feels faster.

Virtualized Linux is now fast and affordable– VMWare Server is a free download for Windows, and Parallels workstation for the Mac is only $49.

A typical setup shares out the virtualized drive with the Windows or Mac box so that native development environment can continue to be used.  (The virtual machine host allocates a new dynamic IP address for the virtual machine and transparently bridges traffic to the virtual MAC address, so it truly appears as a separate machine to the local network.)

The last compelling aspect of virtualization is the ability to create a system image with all of the tools and gems a developer needs to be productive.  In a few minutes this image can be copied to a developers machine, be mounted, and running.

(If you use virtualized Ubuntu and want to share system images, you should definitely read this thread about a script to update the cached MAC address when you copy an image, otherwise your eth0 ethernet device won’t work in a cloned machine.)

It’s clearly only a matter of time before virtualization becomes mainstream for all users and not just developers. 

2 Comments so far
Leave a comment

Do you have a recommended VMware virtual appliance for RoR that you would recommend?

thanks,
Andy

I just did a clean install of Ubuntu server and added the components I needed using apt-get. The most tedious part was getting all of the Oracle OCI8 drivers installed correctly.


Leave a comment

(required)

(required)