5W – Application Performance Management (APM)

Thank you for reading! Please see “Why 5W?”  for context, methodology and disclaimers.

APM Overview

Application Performance Monitoring (APM) is an important tool used to monitor and optimize application performance. APM provides real-time insights, allowing businesses to detect and diagnose issues quickly, reducing downtime and improving the overall customer experience. There are many benefits of APM, including increased operational efficiency, improved customer satisfaction, and enhanced business performance.

APM is comprised primarily of system and network monitoring, measuring performance and availability of software applications to end consumers. Note that end consumers can be end users or other systems relying on the output from an application. These dependencies can impact downstream application performance, compounding to the point of failed Service Level Agreements ( SLAs) and diminished user experience.

APM can be classified into two primary types: Passive and Active monitoring.

  • Passive monitoring collects data from an application without active interaction .. examples include reading log files, monitoring network traffic and observing system metrics. Passive monitoring is useful for identifying issues in production environments, especially as there is no direct interaction with the application itself, thus no performance impact.
  • Active monitoring is the approach to measuring the performance of an application by simulating user activity and measuring response time of application components. Active monitoring generates synthetic traffic and activity to simulate user behavior, and can identify potential performance problems along the way. This type of monitoring is particularly useful during the testing phase of an application, as it can help developers identify performance bottlenecks prior to the application going live. Active monitoring can also help IT teams optimize application performance by identifying areas where additional resources may be required. Active monitoring may require application ‘hooks’ within or close to each component for data collection creating the risk of the monitoring impacting the performance of the application.

A centrally-managed combination of collecting and correlating both passive and active monitoring provides comprehensive insights into the performance of an application.

APM Business Benefits

One of the primary benefits of APM is increasing the operational efficiency of an application. By monitoring application performance, businesses can identify and address issues before they become major problems. This helps to reduce the amount of time and resources needed to manage and maintain applications, freeing up IT teams to focus on other critical tasks. In addition, APM can help to automate many of the monitoring and management processes, further improving operational efficiency.

Another significant benefit of APM is improved end-customer satisfaction. Slow or unreliable applications can have a significant impact on customer satisfaction and can lead to lost revenue and damage to a company’s reputation. With APM, businesses can identify and address issues that impact user experience quickly, improving the overall performance of their applications and providing a better experience for customers.

APM also provides businesses with enhanced business performance. By monitoring application performance, businesses can identify areas where improvements can be made, such as optimizing application code or upgrading hardware. This helps to improve application performance, reducing downtime, and increasing productivity, resulting in improved business performance.

APM Capabilities

A bit of discussion about application architecture and application composition (multiple applications participating in an overall business process) is in order.

Business requirements and customer opportunities have driven application architecture to evolve in recent years to include loosely-coupled (requiring no detailed knowledge of, or persistent connection to a remote system) integration with outputs of other applications. This evolution has enabled applications to be more interactive with background business systems through the paradigm of real-time access to business and ephemeral data. Using these capabilities, developers write applications to employ software automation to complete business activities in real time.

The immediate value to this is improved, real-time interactivity business systems. This has delivered multifold advantages to business processes. Some application composition examples include:

  • Credit card processing: Call-outs to credit card systems to gain approval for a transaction.
  • Inventory transactions: Call-outs to an inventory system to remove items from a remote inventory to add to a shopping cart. Counts in each must be incremented / decremented as part of a single transaction and rolled back should a shopping session be terminated, or a credit card / payment fail.
  • Application embedding: A host application exposes content from another application as part of the host application UI. An example of this is map-enabled applications, or mash-ups that overlay data from disparate sources into a composite experience.

Beyond enabling business processes, these capabilities improve end-user experience with the underlying application. Further, integration delivers more relevant data and reduces the level of effort on an application architect: architects can design applications to consume, rather than writing robust supporting services. Note that In many cases, building external services likely falls outside the core business capabilities of the application architect, and would stall application enhancements.

Architects now build applications with the expectations of interaction with data from other applications as well as user data and results from internal operations. A representative application diagram follows:

As an example, please imagine this diagram as one of several, stacked one above and one below:

  • The ‘External Systems / Service Consumers’ box at the top accepts inputs / actions from the ‘Services’ box at the bottom of the diagram above it.
  • Each application emits data to one-to-many systems and potentially receives data from many other systems.
  • The applications are loosely-coupled, without persistent connections to each other .. each connection and data interactivity is made on-demand.  These applications must be written to manage these connections and contain robust failure management in the case a connection cannot be made within the SLA.

Real-world use of this paradigm doesn’t really involve stacking .. rather, the applications are loosely-coupled, exchanging data along published endpoints. Note that connecting external applications to exchange data introduces interdependencies which can create performance risks. These can manifest themselves with SLA impact or expose consuming applications to security risks, hence the need for APM.

APM Use Cases

Five common use cases for application performance monitoring include:

  • Detecting and diagnosing performance issues within an application or service. By monitoring key performance metrics such as response time, latency, throughput and error rates, teams can quickly identify and troubleshoot issues before they impact end users.
  • Helping teams plan and optimize their capacity by monitoring resource utilization, identifying bottlenecks and forecasting future demand. This enables teams to allocate resources more efficiently and avoid over- or under-provisioning infrastructure.
  • Tracking SLAs that define performance thresholds and uptime requirements. Application performance monitoring helps teams enforce SLAs by monitoring key performance metrics and alerting teams when SLAs are at risk of being breached.
  • Monitoring user experience by tracking user behavior and engagement metrics such as session length, path through the application, application abandonment and conversion rates. This help teams identify usability issues, optimize user flows and improve overall user satisfaction.
  • Security and compliance through monitoring access logs, audit trails and other security-related metrics. This helps teams detect and respond to security incidents, identify compliance gaps, and maintain regulatory compliance.

APM is a powerful tool to monitor an application orchestration enabling application owners to manage performance, security, SLAs and so much more.

APM Providers

Several vendors have capabilities in the space. Given the complexity, there is a lot of overlap and virtually no ‘one size fits all’ solutions. With that said, not all end customers require an OSFA solution and will select a vendor that fits their needs. A short list follows:

VendorProduct / CapabilitiesNotes
AppNettaAppView: End-user experience on the web. FlowView: Application usage to network bandwidth correlation. PathView: Monitoring and troubleshooting along the network path from the end user to your application.Delivered as a SaaS solution.
DatadogApplication-based APM. 
DynatraceObservability, security and AIOps. 
ExtraHopStream analytics platform providing visibility into activity in an IT infrastructure.Captures raw, unstructured data streams and converts these into cogent metrics.
New RelicFull-stack APM capabilities, including application, hybrid and public cloud, infrastructure, mobile and web site. 
ManageEngineIncludes server monitoring, application server monitoring, database monitoring, web services monitoring, virtualization monitoring, cloud monitoring and an array of other application management capability.ME also provides managed IT services.
PulsewayMobile-based APM. 
Sumo LogicTool consolidation across DevSecOps. 

ED: As Article Publish dates are frozen in time, it is quite possible reviewed vendors and their capabilities may have advanced beyond those presented herein. Please accept my apologies for my shortcomings. A note to vendors: please reach out to advise your current offering capabilities and I will update.

APM Audiences

While APM is not industry-specific, there are a few industries with critical needs for APM:

  • Healthcare organizations rely on complex applications  to deliver critical patient care services and must know if parts of their orchestration are not performing properly.
  • E-Commerce companies rely on complex orchestrations that include shopping carts, inventory management, fulfillment, payment and more. They must know if components within their orchestration are underperforming
  • Managed Service Providers / Cloud Service Providers use APM to monitor their operations and provide reports to their customers.

Within (and beyond) these industries, there are several buying audiences:

  • IT Operations are responsible for ensuring the smooth functioning of an organization’s IT infrastructure. They can use APM products to monitor the performance of critical applications and identify potential issues before they impact users.
  • Application and Integration Architects can use APM during prototype and proof of concept stages of offering development to ensure dependent systems can scale
  • Developers need to ensure that their applications are performing optimally. They can use APM products to identify performance bottlenecks and optimize code to improve application performance.
  • Product Owners care deeply about their offerings and are always looking for ways to improve it to gain market share. One way is to expand their offering to leverage outside services (traffic overlays atop mapping software as an example). However, once services are added, complexity increases and dependencies on these external data / operations rise to the fore. APM helps Product Owners and their development teams identify errant services, missed SLAs and the like.

Again, any organization with application integrations is a candidate for APM.

Conclusion

Any business that manages applications and integrations should look closely at APM. APM helps businesses to optimize their application orchestrations and can improve customer experiences while saving money by reducing costly downtime. Organizations benefit when they identify and address application performance issues quickly and can deploy maintenance personnel directly to the issue. The benefits of APM are significant and help businesses improve their operations, enhance customer satisfaction and increase profitability.

About Michael Coates
I am a pragmatic evangelist. The products, services and solutions I write about fulfill real-world expectations and use cases. I stay up-to-date on real products I use and review, and share my thoughts here. I apply the same lens when designing an architecture, product or when writing papers. I am always looking for ways that technology can create or enhance a business opportunity .. not just technology for technology's sake. My CV says: Seasoned technology executive, leveraging years of experience with enterprise and integration architectural patterns, executed with healthy doses of business acumen and pragmatism. That's me. My web site says: Technology innovations provide a myriad of opportunities for businesses. That said, having the "latest and greatest" for its own sake isn't always a recipe for success. Business successes gained through exploiting innovation relies on analysis of how the new features will enhance your business followed by effective implementation. Goals vary far and wide: streamlining operations, improving customer experience, extending brand, and many more. In all cases, you must identify and collect the metrics you can apply to measure your success. Analysis must be holistic and balanced: business and operational needs must be considered when capitalizing on a new technology asset or opportunity.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: