Ravello's Cloud Application Hypervisor

Whereas CloudVelocity moves clones to the cloud for development, production, or disaster recovery purposes, Ravello taps the cloud specifically for the development and testing of applications that will be deployed not in the cloud, but in-house.

Ravello's Cloud Application Hypervisor allows you to run an exact replica of your multitier production application -- including the VMware or KVM virtual machines -- on Amazon, Rackspace, or HP Cloud. You can test in the cloud, iron out the bugs, capture all the changes, then bring the new version of your application back into your data center.

Setup takes a different path than with CloudVelocity. Instead of offering a tool that burrows into your machines and copies them to the cloud, Ravello gives you a sandbox where you can upload your own VMs or start with Ravello's prebuilt virtual machine images, and draw up "blueprints" of your application.

This construction is done in a graphical Web interface that shows all of the machines as blocks. You drag and drop them onto a canvas, then sketch out the connections among them. Ravello offers a few of the standard Linux distros, and some machines are already configured for standard jobs like running a Web server. If you're uploading your own VMs, both Linux and Windows are supported. 

I found it pretty easy to set up a few machines, populate them with the software I was using, and save them as a blueprint. Then I could stamp out new versions. With the push of a button, I could spin up the whole works on Amazon.

One feature lets you preconfigure the firewall settings for each machine by opening or closing the ports for your software. When the machines are spun up, Ravello reaches in and opens and closes the ports to match what you want. This is a great feature because I find that half of what I do with a new machine is fiddle with the firewall. The distro's defaults never match what I need exactly.

The tool subtly encourages better security practices. As with CloudVelocity, you can connect the machines so that they use the internal IP addresses, keeping the second-tier machines like the database machine away from the public Internet. If you twiddle with the DNS correctly, the Web server will always be able to find the matching database machine in all the replicas.

But Ravello's real magic is a hypervisor for hypervisors that allows you to run VMware and KVM virtual machines inside the cloud machines. It's not just repackaging the contents of your servers in AMIs, but dropping the machines themselves onto the cloud.

You can make changes to these VMs, test them, and save them back to Ravello as a blueprint. When you're done, you can download them from Ravello and run them back on-premise.

To the cloud and back again

If you look at systems like Ravello and CloudVelocity from the perspective of, say, the programmers who toggled their software into the front panel of a computer, the layers and layers of hypervisors and operating systems and libraries and virtual machines is pure madness. The stack must be a million calls high.

But if you think like someone who just wants to get the server running before 5 p.m. on Friday, then it makes perfect sense. Everything is packaged together and everything more or less runs.

I was pleasantly surprised by the ease I found using both of these systems. Sure, it made sense for our great-grandparents to install software or configure the machine, but it's simpler to toss the VMs around as solid units.

Ravello lets you upload your own virtual machines or map out a new application using pre-built instances from its library. You can "publish" the results to Amazon, HP Cloud, or Rackspace. 

In all, I preferred the simplicity of CloudVelocity's constant duplication. The synchronisation makes it possible to clone your machines quickly and easily. The clone is ready to go.

But the cost in bandwidth must be pretty high if you're constantly making changes to the file system. Plus, there must be some questions about security risks if you're storing anything valuable on the machine. The cloning tool is a high-powered backdoor even if it's doing exactly what you want.

If you prefer to build your application from scratch and don't want or need the constant copying, Ravello is a simpler solution, though it depends on what you want your clones to be able to do right off the bat. If they're going to serve relatively static data, a blueprint will suffice. But if they're supposed to jump right in and be current with dynamic data, then the CloudVelocity model makes sense.

CloudVelocity is putting much of the focus on recovery from site failures, and this will probably be the biggest market, at least initially. Still, the convenience of having an automatic duplicator for your infrastructure is bound to be a seductive tool that even developers may become addicted to using.

Ravello's tool will be most useful for the developer who's building and testing an evolving system. The ability to move the actual enterprise machines into the cloud and back again is invaluable. Developers can easily re-create problems or bugs encountered in the production system because they're working with an exact replica.

The tool could also be useful for failover, but only when the server blueprint is all that's necessary. If the server doesn't need to track the latest changes, the new clone can take the place of the old. This could be useful during periods of high load when the stock server can step up and do the work.

I imagine that both companies will gradually converge on a tool that meets all of these needs -- development, testing, production, disaster recovery -- in both private and public clouds. Their simplicity solves one of the constant headaches for anyone trying to run a collection of machines. Tossing around applications filled with machines may not be the most elegant or theoretical solution to the problem, but it's simple and effective.

The ultimate message from both Ravello and CloudVelocity is that the idea of the operating system and any kind of software modularisation has failed. No one has the time or the energy to handle the permissions, the libraries, the packages, or any of the other details of keeping a machine running. The simplest solution is to think of the entire cluster of machines as one atomic unit that no one can open or touch.

  • Discovery and cloning tool makes it easy to gather up multiple machines and migrate them to Amazon
  • Synchronisation tool allows you to continuously update copies stored in Amazon EBS with any changes made to their on-premise counterparts
  • Automatically creates the Amazon VPC and security groups for your application
  • Allows you to throttle sync bandwidth between data center and cloud
  • Nested hypervisor allows you to run exact replicas of your VMware or KVM virtual machines in the cloud
  • Allows you to take snapshots of entire, multi-tier applications running in the cloud, save those snapshots as blueprints, and return the VMs to your data center
  • Integrates with source control and continuous integration servers
  • Supports Linux, Windows, and multiple clouds
  • Currently works only with the Amazon cloud (Azure support is in the works)
  • Windows support is limited to cloning
  • No data center to cloud synchronisation capabilities
  • Nested hypervisor and overlay network introduce an additional layer of abstraction and overhead

This article, "Review: Dueling hybrid cloud wizards," was originally published at InfoWorld.com. Follow the latest developments in application development, cloud computing, and open source at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.

OUR VERDICT

The ultimate message from both Ravello and CloudVelocity is that the idea of the operating system and any kind of software modularisation has failed. No one has the time or the energy to handle the permissions, the libraries, the packages, or any of the other details of keeping a machine running. The simplest solution is to think of the entire cluster of machines as one atomic unit that no one can open or touch.