BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
Application performance management (APM) software lets enterprises gather usage and performance metrics on a wide range of applications and services. The information that an APM tool provides can help enterprises correct issues they're currently experiencing and identify bugs before they become product-crippling. Here are a series of scenarios in which organizations have found themselves needing APM software.
The cloud, virtual machines and mobile
It wasn't that long ago that every major application came on a custom server; all the software inside the company was on desktops or in the server room. Some of those relics are still around, but for the most part, the local install on real hardware is an outlier. Modern software is distributed and often runs on virtual machines, a set of nodes in the cloud or on the quickest growing software market, mobile devices. Having one of these environments is manageable; having all three might be trouble, because each comes with its own stream of logging, user activities, integrations and performance data.
APM software can bring performance, usage and resource information from all of those platforms into one place.
You may sometimes hear from employees, "The website is slow." This is a common problem possibly due to the Web server being slow to respond, the network being slow to get the information to the device, the database queries being slow, the device being slow to display the screen, the third-party Web services being slow -- or all of the above. Instead of having to use a combination of guessing, or worse, gathering data from them all and analyzing with a spreadsheet, APM gathers the metrics in one place. Combine that with other metrics, such as memory and bandwidth usage, and APM lets users see connections -- for example, how hitting a geolocation search API endpoint from mobile users in Texas is related to a spike in memory usage in an Amazon ec2 node.
A growing user base
A giant upswing in user growth is a good problem to have for nearly any company -- from startup to enterprise. More demand means more customers -- or more customer engagement -- which is a sign of a valuable product. In our experience, increased use can uncover unexpected problems such as software issues that weren't anticipated during product development and testing. Software users want a fast product, so much so that 47% of users will abandon a page that takes more than three seconds to load.
Sustained growth isn't instantaneous; it happens over a period of weeks or months. An APM tool can show which parts of your product are being used the most, what time of day server resources are struggling, which parts of your API get the most usage and what direction performance is moving toward. All of this information tells you what needs to be optimized and, more importantly, what to start on right now.
Maintaining level of service
Companies that provide software through the Web on a subscription model, or software as a service (SaaS), usually include a service-level agreement (SLA) as part of the sale. The SLA includes the expected software uptime, how to call for support if this is breached and how long it will take support to reply to your questions. Some companies like to guarantee their product will be accessible most of the time, something like 98.99% uptime, as an insurance policy for customers who need their software to be available all the time. An SLA also can serve as a goal for the development and operations team.
Without constant monitoring across the layers of your product, figuring out your uptime -- let alone taking the steps to get there -- is close to guess work. The information APM software collects can show that one server in your load balancer is running low on virtual memory and needs to be restarted now, or that a database query is popular enough to benefit from being indexed. Making use of the data can add a few more nines to the end of your 98.99% uptime. With some diligence, maybe you'll get to 99%.
This assumes you are providing the SaaS. If you are consuming the software, some APM products can monitor other websites to tell you if they even meet the stated SLA -- meaning that your internal service desk can be working on the issue before the barrage of calls start from other departments.
Detailed usage statistics
When products are designed, product managers work with potential customers and users to discover what they value and what problems they need solved. The first time you get real feedback, though, is when that new feature is in production. You can learn more about the customers by sitting with them and watching them use the product, but that can be done only a couple times a year at best. At worst, like with mobile apps, it is nearly impossible.
APM software can help collect more detailed data about what your users are doing: what pages they hit in what order, how long they spend on each page, where they are located and what platform (operating system, device, Web browser) they are running on. This is especially true for products built on an API or microservices architecture.
Efficient time to market
So far, we've focused on APM software in production environments. That is certainly the most popular setup. Taking a couple of steps back in the delivery chain to personal development environments, performance environments and even test environments, can help get a better product to market faster.
All aspects of development and testing can benefit from performance and error reporting provided by APM software. Developers could set up instances that point to their local environment to help them find problems in their cursory testing. Having APM pointed at the test environment could help testers discover server errors faster, see differences in data sent when a form is submitted and some very basic information about page load times. APM software really shines for the performance tester by providing more granular detail and reporting on the software and system resources than most performance tools.
APM used before production acts as an early warning system to tell your enterprise about application errors such as when the buy now form is submitted with special characters, that the login page loads 20 ms slower on this release or that performance in the shopping cart is on a downward trend. With that information in hand, you can fix these problems before your customers experience them.
These are a few common reasons -- distributed platforms, user growth, level of service, better information and time to market -- to help you decide if you want to invest in an APM tool for your development and operations team. If you found yourself nodding along with these problems, it might be time to consider the value APM software can bring to your company.
Before you start to test, know what to test.
A lightweight APM tool can do the heavy lifting without weighing down systems.
Preventing issues is just as important as fixing them.