Accelerate development of complex applications and Android mobile clients with Ravello on Google Compute Engine
Friday, April 25, 2014
Today's guest blog post comes from Hadas Birin, Director of Product Management at Ravello.
Self-service tools are critical for developers to be agile and move forward quickly, prototype new ideas and test implementations. Google Compute Engine provides just that for single VMs – you can quickly spin up a VM on demand and use it. Ravello, paired with Compute Engine, lets you do the same for complex multi-VM environments without any networking or OS constraints.
Developers and test engineers can spin up multiple copies of production-like complex environments on demand in Compute Engine for development and test. An environment may include many VMs (Windows, Linux, Solaris, BSD…) and a complex network topology (static IPs, multiple subnets, firewalls, load balancers…).
Each instance of the same environment has a fully fenced network that uses the same IP addresses inside, and only differs by the DNS names that allow external access into the VMs. The network, storage and multi-VM encapsulation within each environment allows for one-click duplication of environments.

Here are a few common use cases where developers use Ravello:
Accelerating backend dev and test:
Accelerating dev and test for existing complex applications from private data centers without any modifications:
The technology
Ravello was created by the team behind KVM (Kernel-based Virtual Machine) – the linux kernel virtualization infrastructure. Compute Engine itself is built upon the KVM platform and uses it as a high-performance hypervisor to run VMs.
Ravello has developed a high performance nested virtualization technology in order to abstract network, storage, and different cloud hypervisors. This abstraction enables existing virtual machines to be run on third-party hypervisors and on other clouds without any modifications.
The technology includes the following components:
Getting started
You can check Ravello out on your own -- here’s what you need to do to get started:
The combination of Ravello and Compute Engine provides developers and test engineers with the freedom to spin up complex environments on demand and accelerate development and test efforts.
For a live demo of the use cases mentioned above - Join our technical power session on April 29th with Google Cloud Platform.
-Posted by Hadas Birin, Director of Product Management at Ravello
Self-service tools are critical for developers to be agile and move forward quickly, prototype new ideas and test implementations. Google Compute Engine provides just that for single VMs – you can quickly spin up a VM on demand and use it. Ravello, paired with Compute Engine, lets you do the same for complex multi-VM environments without any networking or OS constraints.
Developers and test engineers can spin up multiple copies of production-like complex environments on demand in Compute Engine for development and test. An environment may include many VMs (Windows, Linux, Solaris, BSD…) and a complex network topology (static IPs, multiple subnets, firewalls, load balancers…).
Each instance of the same environment has a fully fenced network that uses the same IP addresses inside, and only differs by the DNS names that allow external access into the VMs. The network, storage and multi-VM encapsulation within each environment allows for one-click duplication of environments.
Here are a few common use cases where developers use Ravello:
Accelerating backend dev and test:
- Every code commit can be tested instantly on a replica of the production environment as part of the Continuous Integration process (read more).
- Multiple identical copies of the production environment can be spun up on Compute Engine to allow for parallel automatic/manual testing, resulting in a faster testing cycle. Environments can be shut down automatically when testing ends or left running for the developer to investigate in case a test has failed.
- Developers can easily deploy into their own environment on Compute Engine from IDE/shell using Maven or REST API (with Ruby/Python bindings).
- Developers can run Android on Compute Engine to test their native and web mobile applications, do continuous integration and run scale tests of thousands of Android clients (read more).
- Developers can test different browser versions including Chrome, Firefox, Safari - all in parallel using Selenium GRID with Selenium WebDriver - and save tremendously relative to specialized browser testing services (read more).
Accelerating dev and test for existing complex applications from private data centers without any modifications:
- Existing VMs (say from VMware) can be uploaded onto Ravello and run on Compute Engine. Ravello provides the VMs with the same network and storage setup they expect to get in the private data center. No change to the VMs is required (read more).
- Developers can utilize Compute Engine to develop and test on existing applications without the need to restructure them for public cloud.
The technology
Ravello was created by the team behind KVM (Kernel-based Virtual Machine) – the linux kernel virtualization infrastructure. Compute Engine itself is built upon the KVM platform and uses it as a high-performance hypervisor to run VMs.
Ravello has developed a high performance nested virtualization technology in order to abstract network, storage, and different cloud hypervisors. This abstraction enables existing virtual machines to be run on third-party hypervisors and on other clouds without any modifications.
The technology includes the following components:
- High-performance nested hypervisor – uses dynamic binary translation to run guest VMs unmodified on top of any cloud hypervisor.
- Software-defined network – provides a virtual fully fenced network that may include static IPs, multiple subnets, routers, switches, DHCP, DNS, firewalls and L2/L3 network/security appliances added by the user.
- Storage overlay – manages a distributed object store and connects it to the cloud provider’s local block storage.
- Management layer - provides the UI and API to create and manage multi VM environments and publish them to various cloud providers.
Getting started
You can check Ravello out on your own -- here’s what you need to do to get started:
- Register and activate your account (it’s free for two weeks).
- Export your existing VMs from VMware, and upload them into your account. Alternatively, use one of our publicly available images and add some Chef recipes to set it up.
- Create a new ‘application’ – this would be your fully fenced environment. Then, drag and drop selected VMs from the library into the application.
- Select each VM in the application, update its IP and mask, and choose which ports would be open for external access on this VM.
- Publish the application to Compute Engine. After a few minutes – login and play with your application.
- Save this application as ‘blueprint’ (a snapshot of the entire environment, including all VMs and the network definitions). Using this blueprint, you may spin up identical copies of this whole environment with one click.
The combination of Ravello and Compute Engine provides developers and test engineers with the freedom to spin up complex environments on demand and accelerate development and test efforts.
For a live demo of the use cases mentioned above - Join our technical power session on April 29th with Google Cloud Platform.
-Posted by Hadas Birin, Director of Product Management at Ravello