Recently we spoke with Albert Chang from the AppDynamics DevOps team about his team's innovative use of containers and Kubernetes to simplify and accelerate the provisioning of trial environments for customers.
AppDynamics (recently acquired by Cisco) is the leader in Application Intelligence, enabling enterprises real-time insights into application performance, user performance and business performance.
What is the mission of your team at AppDynamics?
One of our team's missions is to iterate and improve our customer trial experience. It's part of our larger go-to-market strategy of bringing in potential customers and quickly showing them how AppDynamics can deliver value. Potential customers don't have a ton of time during their research phase, so there's a delicate balance between showing the value of AppDynamics and not overwhelming them with our entire feature set.
What challenges did you face and why did you think containers could be a part of the solution?
The business goal is to bring as many qualified and educated leads as possible to our sales team. The more educated the customer, the more streamlined the sales experience. We had several challenges during this project, one of which was how to reduce the time it took for potential trial customers to host and instrument their own application.
We quickly realized through user testing that asking our users to install and run Docker images locally was too complex and frustrating. To remove that complexity and get to the "meat" of the product, we decided to host (SaaS) a sample instrumented application for each trial. To make this solution work, we needed something that could orchestrate the creation and destruction of sample applications based on some business criteria.
We're an AWS shop, so we naturally looked for solutions within AWS, specifically Elastic Container Service. At the time, the service was still new (and buggy) so that was a dead end for us. In came the Applatix team with what has since become the open source project Argo.
Why work with Applatix and Argo? What were the results?
We knew Kubernetes would be a long term solution for us, and since Argo was a stable platform built on top of Kubernetes, it seemed like the logical solution.
- Argo installed as an app on Kubernetes and AWS. We defined a workflow with YAML which deploys containers for both AppDynamics and the data required to support the demo.
- Within a few days we were able to provision customers a URL for their trial environment within minutes, eliminating the need for them self-install and configure our product for their own evaluation.
- Using containers and Kubernetes, we are able to efficiently run hundreds of trials concurrently and efficiently. When a trial is complete, we recapture the environment to minimize costs.
We've been running the solution in production for ~6 months and we are happy with our choice to use Kubernetes and Argo.
What is your vision for this kind of capability going forward?
Once we're done with the sample application rollout and have proven the value of the container-native solution we built with Argo and Applatix, we'll look into other areas we can improve/replace with the Argo. For example, our CI/CD pipeline and demo environments for our Labs.