Wednesday, June 16, 2010

Advantages of Hypervisor Based Cloud Computing

We're creating content for our website... Every. Techie's. Worst. Nightmare. The question came up: "What sets Abacus Data Exchange apart from Rackspace and Amazon's EC2?". Ugh.

We offer a fully customizable virtual machine option. Try getting a 1 CPU, 8 GB RAM, 1 TB persistent storage option with those other two. Most cloud services limit you to specific RAM/Storage sizes. Each of our images come with pre-installed operating systems ready to go on statically sized disk images which don't have much room left on them. At any point, even during creation, you can add additional persistent disk images to your virtual machine (you could try that too, but you won't be able to). Unlike the other two where you can change CPU/RAM/Storage "on-the-fly", we require a reboot of the virtual machine for the changes to take effect.

We also offer hardware based VLAN capabilities. While they cannot be provisioned on demand, a simple request to tech support will get one created free of charge. Combined with a virtual appliance installed with Vyatta, a customer can completely secure a set of virtual machines from the outside world. That's how we run our services. Even our router for our internet service is a virtual appliance.

I believe our biggest advantage is to the local market in Lafayette, LA. Lafayette is home to a successful Fiber-to-the-Home network that is municipally owned. Any home/business on the fiber network can get 100 mbps connectivity to any other peer. Soak that in. If you live in Lafayette, you could create a virtual machine and get 100 mbps connection to that virtual machine. How is that not amazing?!?

Of course, we didn't do this on our own. We have to give props to the awesome team over at Enomaly. Other than that, most of our infrastructure is open sourced. So here's a shoutout to: CentOS, Xen, Fedora, Ubuntu and FAN. Don't forget the ones I already mentioned!

Cloud Computing

Wow. What a whirlwind the last few months have been. The company I'm consulting for at Abacus Data Exchange, is now running a cloud computing solution for end users. We've always offered virtual machines. I've always had redundancy and fail-over on those host machines. The only real difference now is that instead of having to call me to create that virtual machine, you can: create an account, enter a credit card, create a virtual machine and have remote access to that virtual machine within minutes. Our smallest image (router software) completes in about 5 minutes. Our largest (Windows Server 2008) takes roughly 40-50 minutes.

Here's a quick outline of how it went down:

Our only initial goal was to create a customer interface to at least power cycle a virtual machine. I created the outline in my head of the python driven site to allow for this. Before I could even get it on paper, I began to realize how much it encompassed. I thought of frameworks to use such as Tornado. Still seeing the amount of development considering security and user management, I realized I should do what I always do, find the open source solution and go from there.

I came up with Eucalyptus, Enomaly, and OpenNebula. Eucalyptus showed lots of promise, but it was extremely immature and clunky. I've since heard it's made great strides even in the last few months and has become a real contender. Enomaly looked like it was exactly what I wanted hands down. The features it did lack that we wanted were available in the paid version (which came with support which never hurts). OpenNebula gave us a great option on the control side. Clients could manage their virtual machines exactly how I wanted them to.... from the command line. I spoke with a few interface developers and got an idea on cost to build the front end. I called Enomaly and got pricing. Easily, Enomaly was the choice.

The JQueryUI interface is slick, easy to use and full of features. The admin interface, which I didn't even expect to get when this all started, is easy and full featured as well. The development team over there has taken full advantage of hypervisor technology and keep adding features monthly. Just about every feature that I first felt were lacking have all been added in features that have since been released. The only one I still haven't seen is the ability for a customer to boot an existing virtual machine to an iso image, but I hear it's coming soon.

There was only one problem still, I had to create new user accounts as admin. So I grabbed my favorite developer, and we went to town on a php driven user signup/verification process (cause php is so damn quick and easy). We verified credit cards and, using Enomaly's API, gave ability to manipulate virtual machines after a sign-up process.

So with much less cost, we only had to develop roughly 1/10th of what we would have had to develop to begin with. Plus we got all kinds of features we didn't expect!

I guess basically all I'm really sayin is .... Enomaly... FTW!!!!