My Portable Virtualization Saga
The Cloud Zone is brought to you in partnership with Iron.io. Discover how Microservices have transformed the way developers are building and deploying applications in the era of modern cloud infrastructure.
When I last talked about my virtualization strategy for my dev PC, I had built a new PC with new hardware, but didn’t have much of a need for portability.
Lately my need for portability has increased a bit, so I got an opportunity to put my virtualization strategy to the test.
I recently purchased a 13” MacBook Pro with Retina display so that I could have one portable machine to use for my workshops and speaking on cross platform mobile development, but I wanted to be able to run my primary dev machine on it as well.
When I first got the MacBook, I thought I would just copy my VMWare image to the MacBook and go, but I soon found out that copying 100 gigs over my wireless connection was not exactly a quick task.
I also wanted to be able to create a few other virtual machines with different setups that I could transfer easily back and forth between my desktop PC and my MacBook.
If it was going to take me several hours to copy the VMs back and forth, this was going to be a real pain.
I also realized that my MacBook had pretty limited disk space since I had only opted for the 256GB storage.
USB 3.0 Changes things
Now that USB 3.0 is fairly prevalent, the idea of having an external hard drive to use as a virtualized PC is much more conceivable.
I decided that the best way to be portable would be to buy a decently sized SSD drive and put it in a USB 3.0 hard drive enclosure.
With SSD prices coming down so much, it only cost me about $80 to get a latest generation 128GB SSD drive.
I put this SSD drive in a USB 3.0 enclosure and suddenly I have the ability to take my development PC anywhere I want. All I need to run my dev PC is a computer with a USB 3.0 connection and a copy of VMWare player.
This ended up working out great. Now I could have multiple VMs on different USB 3.0 hard drives that I could just swap out as I needed.
I could also very easily copy VMs back to my desktop if I wanted to be able to run them from there.
I had my first true test of the concept this last week when I went to Austin for the the .NET Rocks Road Trip show.
I was presenting there and doing a live recording for the tablet show, but I still wanted to be able to work during my downtime.
I brought my MacBook and my external hard drives with me and I was able to successfully run my full development workstation right off my USB 3.0 hard drive just like I was sitting at my home office.
I had a few wireless connectivity issues, so I will probably add a Ethernet converter to my bag for use with my MacBook in the future, but other than that it worked out perfectly.
I finally have a really good reason to virtualize my development environment.
Even though I’m pretty happy with this setup, I still want something better.
In the future, I’d like to be able to pull down the differences in my virtualized environment from the cloud. There is no real reason to be carrying around and copying around multiple copies of the same old operating system on a disk image.
I should be able to just store what is different in my workstation and I should be able to get those differences from the cloud instead of a USB drive.
I’d also like to not have to install my apps, but rather to be able to stream the apps to my PC as I am using the app.
I think we’ll eventually get there, but for now I’m happy to carry around my USB 3.0 hard drives and have a completely portable workstation for whatever task I need.