In the mid-1980’s my dad ran SWAT teams for the LA County Sheriff. As a team leader, he had a simple mantra that he had learned while training with the Navy Seals and which he and his team repeated before every entry: “Slow is smooth. Smooth is fast.”
This simple phrase was their reminder that in the heat of the battle, there is a great urgency for speed. But when you move so fast that you make mistakes, it’s not fast at all. The key is to move slow enough to ensure that everything works smoothly — and that’s how you go fast.
This is an important thing for enterprise organizations to understand because the overriding philosophy today can best be summed up in two words: speed and agility.
This rallying cry has led to significant interest in agile development methodologies, DevOps, release and deployment automation, and the continuous integration/continuous delivery movement. Amid all this focus on delivery speed, however, organizations often leave code-level, transactional performance testing until it’s far too late in the development and deployment cycle.
The result is often less-than-smooth operational deployments that undermine the very organizational speed that they seek.
There is, however, a very familiar class of tools, but one which organizations see as purely operational, that can help solve this problem: Application Performance Management (APM).
A Fresh Look at APM
The logic of identifying code-level, transactional performance issues early in the development cycle is glaringly obvious. But so are the reasons that APM tools haven’t been used to perform this function thus far: cost and difficulty of deployment.
APM tools have been a staple of the enterprise IT management stack for most of the last two decades. But the major players in the market designed their tools to monitor applications in production — not in development. As a result, their architecture and pricing models made their use within the development lifecycle itself an impracticality.
This unavailability has left organizations with only legacy system testing and load testing technologies to test performance in pre-production — solutions that are far too slow, clunky and burdensome for a fast-moving world.
Stackify, a developer-focused Application Performance Management company, is offering an alternative approach that moves beyond simple simulations to uncover the relationship between the code and application performance throughout the pre- and post-production lifecycle.
Improving Performance at the Point of Development
There is a well-known axiom in the development world that is synonymous to my father’s SWAT team mantra: “The best time to find bugs is when you’re creating them.”
Of course, development teams know this — or at least they pay lip service to it. Quality Assurance (QA) teams and their embedded testing procedures are almost universally a part of the software development lifecycle. But there two corollary facts that are just as prevalent, if less discussed, in an ever-faster-moving development world: coders want to code (not test), and traditional testing won’t uncover the most common performance-related issues.
The problem is that traditional testing approaches primarily test code at a functional level — their aim: to identify code that just doesn’t work. But in today’s world, that’s a rarity. We’re long past the point in which consumers (internal or external) were tolerant of rampant and blatant bugs in the code. Today, the vast majority of issues that make the difference between perceived success or failure of a deployment come down to one thing: performance.
Unfortunately, developers discover most transactional performance issues only after they’re in production rather than at the point of development.
Stackify created Prefix to help close this gap. Prefix runs in your development environment and is a lightweight tool that shows real-time logs, errors, and queries, along with other real-time, performance-related information on the developers’ workstations. It helps them understand how long transactions take and can answer the key question, “what did my code just do,” while they can still do something about it.
Using APM to Improve QA
Prefix goes a long way toward closing the performance error gap. It enables coders to keep on coding, while simultaneously improving performance. Still, the highly integrated nature of the modern enterprise stack means that developers will not discover all transactional performance issues during development.
QA will continue to play a critical role in the development lifecycle. Here too, however, APM can play an important part in improving the quality of deployments.
Most current approaches to QA can only identify a limited set of functional and load-based issues. They test to ensure that things work as developers expect, but provide little insight into transactional performance problems — and also do little to help developers uncover the source of performance problems once they discover them. This challenge becomes even more acute when the source of the problem is an integration with another system or data source — an increasingly common occurrence.
For this reason, Stackify offers their Retrace APM tool in a version exclusively for Dev/Test environments. It is effectively the same tool as their production monitoring version, but they have priced it to encourage its use in development and test scenarios. When deployed in this manner, it can significantly help both QA and development teams identify and resolve performance issues long before they go into production.
The Intellyx Take
Increasing organizational speed and agility is a strategic imperative for nearly every enterprise. Organizations are expending vast resources and launching far-reaching efforts to reshape their organizations to compete in this fast, digitally-transformed world. In doing so, however, they run the risk of over-focusing on delivery speed and under-focusing on the need for “smooth” deployments that eliminate debilitating transactional performance issues before they occur.
Stackify’s approach of utilizing APM within and throughout the development lifecycle — as well as within production — is a unique strategy that can deliver significant benefits to organizations that apply it.
Copyright © Intellyx LLC. Stackify is an Intellyx client. Intellyx retains full editorial control over the content of this paper.