Move your VMware and KVM applications to the cloud without making any changes

  • May 15, 2015

VirtualBox to Vagrant to Ravello Smart Labs - Software Development Infrastructure Evolution

VirtualBox and Vagrant are popular tools in the development & test community because of their ease of use and simplicity - but developers want more. This post discusses when to use Virtual Box, how Vagrant fits into the picture and how SmartLabs is the next step in that evolution.


VirtualBox is popular as a means to create a standard development environment. Using VirtualBox one can package a virtual machine complete with OS, tools, compilers, environment settings etc. that developers can download onto their laptops and start building applications. Thanks to a standardized development environment, software developers don’t run into scenarios that merit saying “...not sure what’s wrong here, but it was working fine on my laptop when I wrote that code!”.

While VirtualBox is great for simple applications that can be deployed on a single machine, it falls short when the application is spread across multiple VMs. VirtualBox alone doesn’t have the capability to define the configuration and networking interconnect for a multi virtual machine environment. This limitation also hampers standardization of test environments by simply deploying VirtualBox. Most test environments need at least two machines - a DUT and a test generator.

Vagrant - builds on VirtualBox

Vagrant compliments VirtualBox in such multi-VM scenarios. Vagrant is a wrapper around virtualization technologies such as VirtualBox (and more recently VMware) that helps configure virtual development environments that are spread across multiple VMs. Vagrant has many features that make it a popular tool in the development community. It is -

  • Simple. To start a multi-VM environment, just type ‘vagrant up’
  • Automates setting up Layer 3 networking between VMs
  • Creates ‘disposable’ development / test environments on servers with ease
  • Centrally controls the configuration for all VMs
  • Enables source-control of environment configuration - Vagrant settings are in a text file
  • Integrates with Chef & Puppet for VM provisioning

Vagrant is great, but developers need more

I get to engage with developers and testers on a daily basis. The overwhelming feedback from developer community is vagrant is great tool and mitigates many a developer pain-points. However, many vagrant aficionados also highlight some shortcomings. They say - Vagrant has the potential to be a truly ‘stellar’ tool if it could also do the following -

  • Snapshot the entire environment along with VMs, their configuration and corresponding network configuration
  • Source control the entire environment (not only the configuration) - without having to use external tools
  • Create exact replicas of production environment, and use for development & testing. No more nasty surprises when code is deployed in production.
  • Spin up as many copies of this environment as they wanted - with just a click. Onboarding a new dev or test resource would become very easy.
  • Create ‘disposable copies’ of this environment on public cloud and pay only for what they use - contain costs
  • Attach a copy of ‘disposable’ production environment to each bug fix, and share the entire environment along with the fix with the testers - no more ‘the-fix-was-working-in-my-dev-environment’ conversations
  • Have access to a clean Layer 2 networking in addition to Layer 3 - build cool application features (e.g. auto-discovery & high-availability protocols) that rely on this

Ravello - a fresh technology perspective on enabling software development life cycle

Ravello’s Smart Labs platform - powered by nested virtualization and software defined networking overlay does all this and much more. In fact, it has the potential to accelerate the entire software development lifecycle.

As an example, early in the product development lifecycle one is typically busy prototyping a concept and needs a flexible environment for the ‘skunkworks’ project. It is difficult to get resources for prototyping at most companies - provisioned resources are already spoken for by the approved projects. In this phase, Ravello’s Smart Labs can help get your prototype lab running quickly on the public cloud without investing in hardware resources - limiting the cost risks associated with prototyping phase.

Once the concept prototype has matured to a planned project, Ravello’s Smart Labs can help the development and test teams to stay in sync and collaborate productively.  Smart Lab serves as an excellent environment for design, development and QA - development team can incrementally build, and pass the developed software complete with corresponding environment to the QA teams for testing. Smart Lab makes it possible to attach an instance of lab environment to each bug/feature. Also, thanks to elasticity of the public cloud - teams can easily accommodate for the burstiness in demand for new dev/test environments closer to the release date.

Before release, one  also needs to validate the functionality of the application in a variety of deployment scenarios. Ravello’s Smart Lab simplifies creating deployment scenarios using ‘disposable labs’. If something goes wrong during the upgrade or deployment testing - one can ‘destroy’ the ‘botched up’ lab, and create a new one with a click. It is easy to resume from the last ‘good-state’ by using a snapshot ‘blue-print’ to spin up the new lab.

Once the software is released, the sales team needs environments for sales demos and customer PoCs. Using Smart Labs, it is easy to create repeatable demos in a cost effective manner. Simply set up demo on Smart Lab, take a snapshot ‘blueprint’ and spin up copies of this environment on AWS or Google every time a sales engineer needs to do a demo. As the opportunity matures, and one needs a PoC environment - the same demo environment can be shared with customer and customized for planned deployment with ease.

To train customers, partners, resellers on the product functionality - copies of training environments can be spun off in AWS & Google cloud at locations closest to the trainees, providing a local user-experience. Also, classroom training leads to burstiness in resource demand that can be easily accommodated using elasticity of public cloud.

Ravello’s Smart Lab also proves to be a great tool to collaborate with customers when troubleshooting issues. Using Ravello, customers can create a high fidelity copies of their production environment that can be used for debugging issues without having to actually provide access to real production environment - mitigating the risks associated.


Ravello’s Smart Lab offers the benefits associated with Virtualbox & Vagrant - and more by taking a fresh technology perspective that enriches every stage of the software development lifecycle. Interested in trying Ravello Smart Labs? Just sign up for a free Ravello trial, and/or drop us a line and we help you get started.


Note - Virtualbox on Ravello is not supported. Ravello Smart Labs offer many enhanced capabilities that offer additional benefits compared to Virtualbox.

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.