Building a Real Cloud…On My Laptop

March 2 2012 | By | in Open Source

Originally written and posted on Google+

My colleagues and I have written plenty of times about Zenoss’ involvement with various Cloud projects. These are currently focused mostly around OpenStack and Crowbar, which we use and develop for (respectively). As we’re currently extending our OpenStack Cloud to support some of the “not so out of the box” features (i.e. snapshots, dashboard, suspends), I needed a system to experiment with. So I decided to create my own little OpenStack Nano-Cloud on my laptop. This sounded like a big undertaking at first, but to the contrary (thanks to the right tools) it wasn’t a big deal at all.

The base ingredients I needed come in the form of my Ubuntu laptop and KVM. The pieces that actually did most of the heavy lifting were the excellent VMBuilder and the DevStack project. All of the above mixed together, allowed me to roll out my own OpenStack Cloud within 15-20 minutes. I now have an OpenStack Cloud running on a virtual machine on my laptop – how awesome is that!?

I then took a step back and started thinking more about the entire stack; what were the components involved that enabled me to build this mini Cloud? Host OS, Hypervisor, Guest OS, Guest Virtualization Layer, Cloud Layer, and finally the tools that made it fast to plug all this together. From top to bottom, the entire stack is Open Source software! I then began to wonder one could even achieve the same functionality with anything else but Open Source. Since there are a lot of moving pieces that all have to interconnect, my instinct says no. I do admit, however, I am not the most qualified individual to make this call, I am happy to stand corrected if someone would like to leave comments below.

Next, I’d like to extend the micro cosmos of my laptop to the Cloud ecosystem at large. If we do so, we can easily claim, as many have done before, that it was Open Source software that made Cloud possible. I would even venture further, and claim that there really aren’t any impactful proprietary Cloud software platforms at all. While you might disagree with this statement (again, stake your claim below and I will reply), it really isn’t that far fetched.

Let’s look at software vendors or projects one could utilize to build out a private or public Cloud. There is Eucalyptus, Citrix CloudStack, OpenStack and, as the only proprietary candidates for this list, VMware vCenter/vCloud (I am leaving out Microsoft since Hyper-V is a Hypervisor). I am sure I’ve forgotten some, but at the end of the day I am pretty sure the ratio won’t tip in favor of the proprietary camp.

This by itself doesn’t necessarily mean anything, after all, availability and diversity don’t necessarily translate into market share. So it would make sense to take a look at the market, whereas vSphere continues to be king when it comes to virtualization in the private enterprise, this changes dramatically if we take a look at Cloud. Not only does almost every single public Cloud provider (Amazon, Rackspace) rely exclusively on Open Source as their platform, this is starting to percolate into the private enterprise.

This is exactly where “micro meets the macro”, the software ecosystem I tapped into to build out a tiny Cloud on my laptop VM, is driven by a huge community of entities. Everyone from Cloud providers, to hardware vendors, to services companies, need tools to build and provide Clouds to their users. This where Open Source principles kick in, the vibrant chaos of collaboration innovates at a rate a single entity is unable to match. Further, it produces tools which can be tightly interlocked in ways many APIs really can’t anticipate. In this climate, proprietary players certainly have their work cut out for them. Remember, we’re not just providing a core platform, but instead anyone trying to play in this arena, needs to build a vibrant ecosystem – a daunting task for anyone. This is why Open Source software is the catalyst that made the Cloud, and continues to dominate it.


[adrotate block="1"]