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

  • June 9, 2015

Continuous integration testing with ESXi labs on AWS and Google cloud for StacksWare VDI software asset management product

Vivek Nair
Interests include geeking out about virtualization & building complex distributed systems. Previously worked at Asana and on the Local Law Enforcement team at Palantir Technologies. Currently a lecturer in the CS department at Stanford University

This post summarizes how StacksWare, an agentless software asset management product for VDI, has implemented CI testing of their product on ESXi infrastructure test beds. StacksWare development team has modeled complex production ESXi infrastructures in Ravello service, without the overhead of buying their own rack servers or paying for expensive managed data centers.

StacksWare Introduction

StacksWare is an agentless software asset management solution for virtual desktop infrastructure (VDI). Our product allows organizations to track their application usage and determine whether they are in compliance with their license agreements. Our software passively gathers application usage via VMware’s ESXi hypervisor and Horizon View, eliminating the need to install an intrusive agent on every guest OS.

Why should you care if your organization’s virtual infrastructure is out of compliance? Audits by software vendors have been steadily increasing. According to recent research, over half of all enterprise organizations have been audited in the past two years. If found out of compliance, organizations can be subjected to large penalty fines or even heavy litigation. With StacksWare, organizations can easily monitor and ensure their compliance.

Currently, existing license management solutions require organizations to install a monitoring agent on each and every guest OS to collect application data. This introduces data privacy and infrastructure concerns. StacksWare only requires organizations to install a virtual appliance, the StacksWare Internal Monitor (SIM), into their VDI environment. SIM allows organizations to track application data within minutes. Our software is currently the only agentless license management solution on the market.

Search for scalable, on-demand VMWare ESXi lab/test environment

Enterprises of varying scale rely on StacksWare to track their application usage. For example, some of our customers provide several thousand desktops to their employees. To support both SMBs and large enterprises, we needed a flexible solution for benchmarking StacksWare’s performance.

Before Ravello we rolled our own commodity rack servers to run VMware ESXI. Aside from the headache of setup and maintenance, we couldn’t easily automate and schedule our own hardware. Providing a flexible test infrastructure to benchmark SMB infrastructures (~20 ESXI hosts) and then against large infrastructures (>75 ESXI hosts) was totally infeasible due to memory and compute constraints. After that painful experience, we decided to try out Rackspace’s managed colocation service for ESXi. Though they provided services for quick hardware scalability in their SLA, the price tag was prohibitively expensive. We also found that managed colocation solutions were often hosted in multi-tenant environments that degraded performance and stability.

Running VMware ESXi hosts on AWS and Google Cloud with Ravello Systems

I heard from fellow entrepreneurs that a Sequoia-backed company Ravello Systems provided nested virtualization with a flexible pay-as-you-go model for VMware ESXi labs on public clouds. At first I was nervous that the ESXi beta version would not be full-featured enough to model mature production ecosystems like the VDI environments of major universities with thousands of nodes. I had plenty of questions for Ravello’s infrastructure.

  • What if our customers are using hosts with VMXNet3 network drivers? Does the product have the tooling to support multiple drivers?
  • How can we model a tight firewall network in their cluster?
  • How difficult is it to configure shared storage systems like NFS or iSCSI or vSAN across the cluster?

Within minutes of playing around with its functionality, I learned that Ravello provides a rich ecosystem for modeling sophisticated production environments in minutes. This was definitely the solution that we were looking for.

Our Current Continuous Integration Testing Process

Our team went to work building a development pipeline in Ravello that made sense. With their development API (https://www.ravellosystems.com/developers/rest-api), we developed an efficient process to test any additional features for our virtual appliance with just a few Python scripts.

  1. When we create a commit in our Github repository, our continuous integration service creates a job to spin up a Ravello blueprint, using their Python SDK.
  2. Once the ESXi hosts in Ravello have fully booted up from the blueprint, we use the vSphere APIs to programmatically deploy a new StacksWare internal monitor through the vCenter that’s managing these ESXi hosts.
  3. Once the build finishes, we propagate any errors to our continuous integration service and spin down the blueprint. This ensures that we don’t use any more resources than we need.
  4. If there are no errors in the build process, we then repeat steps 2 and 3 with the “next tier” blueprint. More information about blueprint tiering in the next section.

Blueprint Tiering for multiple test scenarios

We created different tiers of Ravello blueprints to test basic functionality and performance during this build process.

  • The first blueprint sanity checks the basic Ravello functionality across three different ESXi hosts. We catch most bugs without expending time and money with this configuration.
  • The second blueprint models a standard SMB infrastructure with 20 ESXi hosts.
  • The third blueprint models a larger enterprise infrastructure with 50 ESXi hosts.

If the build system successfully builds the latest StacksWare commit against these three blueprints, the code is merged to our master Github branch and the virtual appliance is ready for deployment!


StacksWare is an agentless software asset management tool for virtual desktop infrastructures such as VMware ESXi. We use Ravello Systems service to model complex production ESXi infrastructures without the overhead of buying our own rack servers or paying for expensive managed data centers. With Ravello’s full-featured developer API, we’re able to automate and schedule our build process to test for optimal functionality and performance across infrastructures of varying scale such as SMB ESXi clusters and sophisticated enterprise data centers.

Set up your ESXi lab on AWS by signing up for the beta and you will be able to run your own test labs right away.

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.