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

  • August 28, 2015

Provisioning and running on-demand ESXi labs on AWS and Google Cloud for automation testing - Managed Services Platform and delivery

Myles Gray
Myles is Infrastructure Engineer for Novosco Ltd in the MSP division. Primarily focused on implementing IaaS projects and automation for both self-hosted and private customer clouds.

Company Profile

Novosco is a leading provider of Cloud Technologies, Managed Services and Consulting. We specialise in helping organisations utilise the unique aspects of emerging technologies to solve business challenges in new and dynamic ways. We operate under managed service or strategic partnership contracts with our major clients.

Our Use Case

Ravello's ESXi labs in particular is used by the Managed Service Platforms division.

In order to support our growth and deliver a consistent managed service quality across our client base we have standardized "checks" we run on environments at differing intervals.

This gives us a pro-active element and an ability to see problems before they emerge, or indeed catch them and detail for remediation.

There is only so much we can deliver reliably with manual effort, as such, to allow our MSP division to scale clients without needing to scale team size unnecessarily we turned, as any company would, to automation and scripting.

We have some very valuable and specialised checks that we have automated, that would either take an individual a considerable amount of time and effort to produce, be prone to error due to complex calculations needed or just not be feasible to monitor at the frequency we require.

So scripting was a must, what about testing?

That's where Ravello's labs come in (in particular ESXi virtualisation) this allowed us to, at scale, test scripts to a level that are just not feasible within a physical lab, or indeed with the same repeatability and consistency of environment.

I'll take one instance as an example, I was asked to produce a script that would automate the testing of host level operations. Obviously at some point, you're going to have to modify the environment.

So, environment modification, that's completely automated... Sounds like a recipe for disaster, right?

Sure, but if you test it thoroughly with enough configs and hone your permissions down, you minimise risk, and that's what we use Ravello for:

Testing scripts that could cause collateral damage before putting them anywhere near production.

Ravello allows us to spin up and down environments that are similar, if not identical to customer's or test cases that we think may break our automation.

Their Blueprint feature makes it super-easy to spin up and destroy these to test whether a new feature in the code will break under certain environmental conditions.

We are building up a library of VM profiles (different ESXi builds or vCenters) and blueprints that simulate these environments and allow us to deploy for very reasonable cost and minimal effort the same conditions these scripts will see in the wild.

And the icing on the cake?

We don't break our own lab or customer infrastructure, win-win.

Repeatable, robust and shareable

Obviously when you create a lab of any kind it takes a time investment, so if you are able to have that environment and spin it up many times, for the same initial time investment isn't it a no-brainer?
Yep, and that's just what we were able to achieve with Ravello's blueprint feature, I created a single blueprint with a common environment (4x hosts, 1x vCenter and shared storage):

Pretty standard, nothing extravagant, but something we see quite often. I was able to spin this up in a few hours (that includes time to create an ESXi template, a vCenter install and shared storage with a NexentaStor CE VM), that's not bad considering most of those components are now reusable in other blueprints.

Obviously i'm not the only one that works in the division, so this was shared amongst all the other engineers and now regardless of who it is, if we are collaborating on a development effort, we all now have consistent test conditions that were otherwise impossible to reproduce.

Have we found a new factor that may affect how the script works?

Run the blueprint, make the environmental change, spin it down, create a new blueprint and there we are - consistent environments for all members with this new variable. Perfect.


Overall we've been very happy with Ravello, it fits our need perfectly and I can see it (with the API support) becoming a CI tool for us to have tests run automatically on different environments on milestones, we have a way to go yet, but Ravello have been more than helpful and don't foresee this being a problem!

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.