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 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 -
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 -
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.