A while back Duncan Epping wrote a wonderful post VMotion, the story and confessions about how people remembered the when they witnessed vMotion for the first time and asked people to add their experiences. I of course remember mine vividly - and also remember that when I first saw vMotion I knew that this would change the way we used computers in the future.
A few weeks ago - I got that feeling again - but this time not with vMotion but rather with a product that I saw for the first time from Ravello Systems.
Some background about the company and its founders
"Ravello was founded in 2011 with the sole purpose of changing the way companies, large and small consume the public cloud. Ravello is brought to you by the team that introduced the KVM hypervisor (now the standard virtualization technology in Linux)
Rami Tamir (Co-Founder, CEO) – was VP of engineering at Red Hat. He joined Red Hat through the acquisition of Qumranet where he was the co-founder and president.
Benny Schnaider (Co-Founder, President and Chairman of the Board) was VP of business development for Red Hat. He joined Red Hat through the acquisition of Qumranet where he was co-founder and CEO.
Navin R. Thadani (SVP, Products) – ran the virtualization (KVM/ RHEV) business line for Red Hat. He joined Red Hat through the acquisition of Qumranet in 2008 which he led as the VP of products.
Ravello Systems is the first company to tackle the problem head-on from an infrastructure perspective. It’s very much like what VMware did back in the early 2000s to the enterprise data center.”
“The leadership team behind Ravello has a track record of developing innovative technologies in the virtualization infrastructure space and backing it up with solid execution,” said Adam Fisher, partner, Bessemer Venture Partners. “Their previous virtualization initiative, KVM has been a tremendous success in the market with record breaking virtualization performance and scalability. This time around, HVX is another ground-breaking technology and if any team can deliver, it’s these guys.”
Enough marketing babble…
I will try and explain to the best of my knowledge how I understand their technology. Ravello have developed what they name a Cloud Application Hypervisor. This hypervisor can be deployed on any cloud provider (at the moment - AWS, HP Cloud and Rackspace are the supported providers, but vCloud environments are expected to be added soon). They name their hypervisor HVX.
So how does it work (at a 10,000 ft. view). You, the user, upload a workload to the Ravello environment, and decide from there where you want to deploy it, it could be on Amazon, Rackspace or another provider. You might ask why is this such a special thing - I mean there are other companies out there that are providing a similar service - for example Cloudify - which allows you to upload an application to virtually (pun intentional)any cloud. Well the difference here is it is not an application you are moving around here - it is a complete VM. You then deploy this VM to a Cloud provider, regardless of what platform they are using underneath.
Think about it for a second. I have a VM running a complex application, in my datacenter, on my VMware environment. Installed with my standard builds, all the correct patches configurations everything I am used to doing in house. I now want to move that workload from my environment to the Cloud. VMware have vCloud Connector which will allow me to move a VM from my vCloud environment to a supported vCloud environment with very little (if any) change needed to perform this migration. That is actually quite amazing if you ask me - but the limitation is - it needs to stay within the VMware platform.
Now you need to do the same - but this time to an Openstack or AWS cloud? How would you go about getting that done? Not as simple… The VMware drivers are not exactly the same and those running on XEN(AWS) or KVM (Rackspace) so how?
Ravello have the technology that allows you to do this.
So how does it work? When you deploy a VM to a cloud, any cloud, Ravello will deploy a VM that contains an additional layer, a nested hypervisor, that will allow you to run a virtual machine on top of that VM. We have been doing nested virtualization for a while already - vSphere does that very very well. The whole concept of vInception, the VMworld HOL have been using it for years. But here is where the "secret sauce" comes in.
You can deploy a VMware VM on AWS or Openstack and I suppose the plan is to do it on anything. And of of course - vice-versa. HVX will allow you to do that. Please feel free to read about how it works.
They have very nice interface where you can upload the virtual images to the Ravello system, and from there deploy them onto the cloud of your choice. Then you can create an application blueprint with a simple interface allowing the connections in between and out of the VM's.
Does it work? Oh YES! very well.
I did some testing with a basic VMware Linux VM - and uploaded it to Amazon. VM powered on - and I felt the urge to confirm - yes it was the same one. VMware tools installed and active in the VM. So there was no streaming of the data portions of the VM - the whole VM was uploaded - as is, encapsulated in their HVX and working. Paravirtualized SCSI drivers and VMXNET3 NIC (if my memory serves me correctly).
One of the interesting use cases that I was presented with - was the economical aspect. Ravello have the ability to identify the VM's needs, and deploy on the most cost effective destination - be it Amazon, Openstack or others in the future. I find that to be a huge advantage for the enterprise. If you are no longer dependent on the cloud infrastructure, you can pick and choose according to a number of considerations, be it cost, location, technology etc… There are several other use cases that they present on their site. Think about how you might use this as well to maximize the use of the Cloud instances you have already. Running multiple VM's the same AWS instance - can save a lot of money.
I plan to get some more information about how exactly the product works and if possible - will be able to post a follow up.
Ravello is the first (and only) company that I know of that can do this.
The directions in which this could be taken are more or less endless. And that is what makes me excited about this technology.
Let me give you three examples.
- Developers create VM's in their local environment, this could even be on a local laptop, vagrant or what ever they want. Once the application / environment is ready to be moved up the chain to QA / Test / Production - the VM can be imported to the cloud of your choice - whilst maximizing your savings. Minimum or next to no changes needed
- Take the other direction - you have an application in the cloud - which is suffering a problem in order to debug - you can either do it in the cloud - but not always is that feasible - so you want to bring it in house - with this kind of technology this will be possible.
- Risk management. I do not want to have everything on vCloud or AWS or Openstack - I would like to have my application run in multiple clouds. Up until now that was very difficult to do - I could not deploy the same application the same way to different cloud providers. With this kind of technology this will be possible.
Not all of the features / ideas I have mentioned above are available today - but they will be - and I do not see it being too far away.
The product is not perfect, and has some improvements that can be made over the next few months or years. Performance will improve, support for more Cloud Platforms will be added including in-house cloud environments as well.
There are other companies that have solutions which manage multiple clouds like Rightscale or Enstratius but I think they all do it with software solutions similar to the concept I described here - Orchestration Will Rule Them All #BRC2K11
One last thing. I tried to push the system to a bit of an extreme - and tried to upload a vESXi VM to AWS - but the system did not like it that much …. Perhaps one day we will be able to run ESXi on an AWS instance.
Ravello have a YouTube channel where you can go through their tutorials.
I am excited about the product, and see a real business need for such a technology.
I will keep my eye out on Ravello.
Disclaimer: I received access to Ravello Systems public beta - but it is open to anyone. I was given a briefing on the technology from two of the staff members. I blogging about this because I feel that the technology will make a difference to the way we will consume resources in the cloud, a disturbance in the force if you would like - but one for the better.