Thursday, March 15, 2012

In Home Private Cloud

I am an IT consultant who works for various clients. One practice I have developed over the years is to create a dedicated VirtualBox virtual machine instance for each client. There are several reasons for this:

  1. I can keep the base OS of my laptop more pristine and reduce the number of applications installed on it by installing all the applications needed for a particular task in the VM.
  2. Most clients provide a remote VPN solution for working remotely and by installing the client on separate VM's I can avoid conflict. For example, if a work for two clients that have different versions of the Juniper SSL VPN I don't have to wait for each client to re-installed when I switch between the two.
  3. I can easily clone the VM and provide it to a colleague who has recently been on boarded to the project allowing them to become productive right away without having to laboriously setup a new environment.
  4. I can tailor the build process and development environment to each specific client without worrying about conflicts. i.e. I have an install of eclipse per VM with the necessary plugins installed for each project.
  5. Once I roll off the project I can archive the VM and then remove from my laptop to clear up space for a new machine.
  6. With VirtualBox I can RDP directly into the VM regardless of OS
#6 is  where the private cloud comes in. I have a heavy desktop replacement laptop that I use that has a horrendous battery life, weighs over 10lbs, and runs very hot. Alternatively, I have an inexpensive Acer netbook that is very light and has a great battery life. By docking my laptop and then connecting to it using RDP over Wi-Fi I get the best of both worlds: the extreme portability of a netbook with the power of a laptop.

I applied this same concept to a virtual machine I am using for an Open Source project. I built an HTPC over the Christmas break that has 8GB of RAM and an AMD FX-4600 processor. I am really surprised that in one room I can watch HDTV and then over WiFi run a large maven build in a VM at blistering speeds on the same machine with no noticeable impact.

I suppose I could migrate all my VM's to a public cloud like EC2. However, my VM's are several GB's and it would take several hours to upload it, not to mention installing any software on it or backing it up locally. I also have to pay for it and I would constantly need to worry about stopping them when I am not using them. Then there is the ambiguous question of software licensing where if I have a license for home use or in my rush accidentally install single use software on multiple VM's I have more legal risk if I export that VM to an external cloud provider than if I run the image at home.

For now I am content with running multiple VM's in my home environment for accessibility and speed.

No comments:

Post a Comment