Continuous Performance Testing and Application Performance Management: A Performance Engineering Love Story
In the spirit of Valentine’s Day, we would like to tell you an unlikely love story.
Now we know what you’re thinking…what? This is a technology blog! I come here for cutting edge tech info, not sappy love stories. We hear you, but bear with us…we promise this info is too good not to share.
At first glance, this pair doesn’t seem to have much in common. But we all know opposites attract and, ultimately, it was their differences that make them a perfect complement to one another.
Ready for that technology spin? Of course, we are not talking about a famous celeb duo or dramatic romance lost to history. No, we are talking about the relationship between Continuous Performance Testing (CPT) and Application Performance Management (APM).
Before we get ahead of ourselves and tell you why they work so well together as part of a holistic performance engineering strategy, let’s explain CPT and APM independently.
So, what is Continuous Performance Testing (CPT)?
Typically, the continuous delivery cycle has largely focused on automated functional tests. These tests are set up to continuously run and support your release schedule with the goal of finding issues as early as possible. The earlier in the Software Development Lifecycle (SDLC) that a coding issue is found, the faster it can be resolved and released to production. Sounds pretty good, right?
But something is missing. You want to ensure your code is solid every step of the way but… can your application hold up during heavy usage? Does adding new features slow performance?
See where we’re going with this? What has commonly been ignored in the Continuous Delivery Model is performance testing. Oftentimes this step falls at the end of the SDLC, but at KMS we advocate for a Continuous Performance Testing model. Why? Because with the user demand for high quality and quick feature availability, teams can’t wait until the end of the cycle to test application performance. The shift-left mentality of CPT allows you to identify and resolve performance issues early in your development cycle–meaning less rework and major cost savings.
Luckily, with the rise of DevOps and use of tools such as Jenkins, Bamboo (and, of course, with the help of the experts at KMS *wink*), and the availability of powerful tools such as Neoload, Locust.io, and JMeter, it is now easier than ever to pipe performance tests into your CI/CD pipeline.
Ok we get it, CPT is a total catch but what’s the deal with APM?
What is Application Performance Management (APM)?
While CPT is great for measuring performance during the development cycle, it only mimics traffic and does not monitor and evaluate live user interactions.
That’s where APM comes in. Once a product is launched and in use in the wild, APM uses a variety of tools to measure and monitor application performance in real-time.
Typical performance testing is ‘synthetic’, using virtual users to mimic loads and stress on application performance. On the other hand, APM continuously monitors your application and assesses performance in real-time. This live feedback loop offers insights on performance issues not available when only using standard performance tests. Identifying bottlenecks in your system as they arise allows you to respond quickly and ensures your application runs as smoothly as possible for your end users.
Starting to see why we love APM too?
APM can be leveraged to support a shift-right approach that allows you to continuously evaluate and monitor application performance in production.
Keep in mind that APM tools primarily focus on troubleshooting issues just-in-time, as they arise. While this is typically how APM tools are used, we challenge you not to leverage it as a way to proactively evolve scenarios used in performance testing. Use highly skilled resources and train your team to not only troubleshoot but to recommend solutions that help prevent future performance issues.
When it comes to APM tools, there are plenty to choose from. To help you decide, our usual go-to’s are AppDynamics, New Relic, Stackify (licensed) as well as Pinpoint, Scouter and SkyWalking (open-sourced) .
Alright. We’ve built up the backstory, but now it’s time for this romcom to get started. *Cue the romantic dinner, candlelight, and cheesy love song*
Why do CPT and APM work so well together?
CPT and APM are strong when used independently but, when used together, they comprise a dynamic Performance Engineering Strategy. Talk about a power couple!
CPT and APM work seamlessly together. CPT helps avoid performance issues from leaking into production, while APM detects issues after release. Uniting these methods gives you performance feedback during each stage of your SDLC, including production. This type of comprehensive feedback allows you to continually improve application speed and robustness without rebuilding your platform.
A great strategy to effectively leverage both methods is to involve performance test engineers in every phase of the process. This synergy breaks down organizational silos and keeps performance at the forefront of product engineering and maintenance.
Ultimately, this is a win-win for your customers and your team. Your customers are presented with a better performing product and your team has less rework in their bandwidth. Your attrition rate is going to skyrocket with this well-matched duo.
Now you know why we’re excited about this love story and we hope you consider implementing both APM and CPT in your performance engineering strategy. Because let’s be honest, a strategy that includes both is destined for a happily ever after.