SYSTEM TEST AND ENGINEERING SERVICES

Ephemerally Yours, Part 1

Empowering Engineering Efficiency with Infrastructure-as-Code

Joe Zollo
VMware 360

--

In the first of this two-part series, we’ll explore some of the internal tools our team has built within VMware End User Computing’s R&D/System Test organization, and then take a technical deep-dive into some of these solutions in our next installment.

File Photo: Engineering Efficiency = More Time for Nyan Cat Videos!

VMware’s Workspace ONE platform is an industry leading Unified Endpoint Management solution (UEM), it empowers IT administrators to manage thousands of devices — smartphones, computers and tablets, with ease.

When you have a powerful, extensible and widely adopted platform like VMware Workspace ONE, you’re going to need to perform some testing…a lot of testing. Every single engineer in End User Computing is committed to delivering quality products and services that meet and exceed our customer’s expectations.

We’ve become a SaaS first company, but we’ve also continued supporting on-premises customers. Our journey towards the SaaS transformation has required us to rethink many our testing processes and methodologies.

Our engineers needed a fully automated end-to-end solution that would enable them to create a full-blown Workspace ONE UEM environment, hence, our platform was born. By leveraging Ansible and Infrastructure-as-Code, we’ve been able to develop a suite of tools that have accelerated our testing efforts and empowered our engineers to be more productive.

Testing Needs

While most of our testing is automated, there are frequent situations where teams will need temporary environments for more focused testing — namely, upgrade, migration and escalation testing. In the past, this process was semi-manual and less than intuitive. Engineers would spend countless hours getting their environment deployed and configured.

Our team has spent the past year developing a self-service platform with a suite of internal tools that allow engineers to create full blown test environments with just a few clicks — or even a simple API call.

Not only are these environments built based on the engineer’s specifications, but they’re also pre-configured and ready to use — all in about 30 to 45 minutes.

Ephemeral in Nature

Environments are delivered on a timed leasing system and our platform tracks all the built resources and politely reminds engineers when their environment is about to expire. Once an environment expires, or is deleted from the web interface, we’ll clean up the VM’s, DNS records, IP’s and any load balancer configurations.

Bloat inside of our lab has been problematic to say the least, but with proper lifecycle management, we can ensure that resources are removed when they’re no longer in use.

Idempotent Design

One of our most impactful design decisions thus far has been to embrace and require idempotent designs for all our Infrastructure-as-Code components. With this methodology, our build parameters — the inputs we get from the user — should represent the desired state of our infrastructure.

Developing idempotent methods requires a shift in thinking. We must look at the defined or desired variable and compare it with the existing value. Does it exist already? Is it different? What steps do we take to make it match? Is it already equal to the desired value?

This methodology has dramatically improved how our build pipeline operates. If an engineer needs to make changes to their environment, all they need to do is update the build parameters (the complexity of which is obfuscated by our web interface) and re-submit the build. Our code will review the desired state and intelligently skip any processes that aren’t needed.

Problems Solved

Workspace ONE UEM supports numerous integrations with enterprise technologies like Active Directory Domain Services and Certificate Services. It’s not reasonable to expect every engineer to know how to build these services — nor is it an efficient use of their time. Infrastructure-as-Code (IAC) to the rescue! With it, they can focus on their work while our service does the heavy lifting.

Our CI/CD process produces several new builds per day — with integration into the artifact repository, we can deploy new builds as soon as they’re made available.

Greenfield deployments, a fresh install on a fresh environment, are a critical part of our testing workflows and our platform has greatly improved this process. Upgrade testing is another area where we have improved efficiency. Engineers can deploy previous versions and test upgradability against a newer build.

We’re constantly finding more and more use cases where our platform will benefit internal teams. Our GSS (Global Support Services) and PSO (Professional Services Organization) departments are looking to use our tools for training purposes and replicating customer environment configurations in code.

Transform

The SaaS transformation has fundamentally changed how we develop our products. As our development processes move faster and faster, it is our job to empower engineering efficiency by removing bottlenecks and burdens so we can meet that all important release date — symbolizing the commitment we make to our awesome customers.

Stay tuned for Part 2 of Ephemerally Yours, where we’ll take a deeper dive into our infrastructure-as-code pipeline and give you some insight on what goes on under the hood.

--

--

Joe Zollo
VMware 360

(He/Him/His) I’m a Senior Site Reliability Engineer on the VMware Workspace ONE Cloud Services Team.