The nature of application performance monitoring (APM) is changing, mostly because the nature of application development, application deployment and technology infrastructure is changing. I talked with BMC Software last week about the future of APM and came up with a list of forces that are changing APM and what organizations need to look at to monitor application performance and digital user experiences going forward.
Traditional Versus Application-Centric Infrastructure Architecture
The first force affecting application performance monitoring is the changing nature of application delivery architectures.
Traditional application delivery architectures focus on delivering applications via client-server software or through web server, app server, and database tiers. Legacy applications such as ERP systems reside on a few centralized servers, the application and the database reside on the same server, and the application is engaged through an on-premise data center. Users access applications through company-approved software on devices usually (but not always) residing on PCs and laptops.
New application delivery architectures have a different focus. Most companies are moving towards a multi-source infrastructure where different types of applications are hosted in several different environments, including:
- Traditional on-premise client-server or web-based applications
- Traditional applications that have migrated off-premise into private, public, or hybrid cloud environments
- B2B/B2C applications and micro-services that run in the cloud and are accessed by user provided devices (BYOD – including cell phones, tablets, laptops, connected machines) through the Web or through applications that the user requests and installs on their own devices
- Big data applications that consume larger amounts of computing resources and network bandwidth
Newer technologies such as Software Defined Networking (SDNs) focus less on defining specific Internet protocol configurations and more on defining the connections that are needed to run applications throughout the Internet. These technologies can be collectively referred to as application-centric infrastructures.
Application-centric infrastructures configure and display the entire application ecosystem, including the different application delivery tiers servicing the application (web, application, and database), and where each tier exists. With application-centric infrastructures, administrators manage a system for specific application delivery, rather than managing individual servers, switches, routers, and firewalls, as has been done in the past. This approach offers many advantages over existing traditional architectures, including automated load balancing, on-demand provisioning, and the ability to scale network resources to match upgraded application and data needs. Application-centric infrastructures encompass a virtualization of the data center in much the same way that hypervisor systems such as VMWare virtualized the deployment of computerized systems.
DevOps and Agile Driving APM Change
DevOps and agile software development are also driving changes in application performance monitoring. Both practices drive faster application development and deployment, which while good for the business, also has its drawbacks. Because application changes are rolled out so quickly, it’s sometimes difficult to see the impact of those changes in the real-time production environment.
Application developers and owners have traditionally been responsible for monitoring and fixing application performance. The problem is that because the developers and owners have become the innovators of business growth, they are getting too busy with development to handle all of their old performance monitoring functions. With one exception, application performance monitoring is falling to an organization’s IT Operations groups (IT Ops), who now need to find new tools for that function.
Traditional IT Ops monitoring concerns itself with what I like to call the big four application monitoring issues:
- Are critical servers and applications available? Many times this is accomplished by ping testing.
- Is there an application error on the system that needs to be answered?
- Are all your jobs running on schedule, are any critical jobs running too long or too short, and are there any jobs that haven’t run when they should have?
- Are there any hardware errors occurring in your infrastructure?
Due to time constraints and the need to constantly update legacy software packages, web applications, and microservices, IT Ops may soon need to take on the following additional monitoring responsibilities that application developers previously handled:
- Is the program processing data correctly and do we need to initiate actions to correct data issues?
- What portions of the code are causing issues?
- Is response time slow and what’s causing it (code, infrastructure, telecom, servers, etc.)?
There is one issue, however, that will remain in the application development and business owner purview: customer experience and satisfaction. While IT Ops has been taking over responsibility for most of the traditional performance monitoring issues, applications and business owners are intensely interested in how the customer interacts with the application, and the customers’ satisfaction in using the application. Customer experience is important because it directly reflects on lost opportunity, revenue, and customers. Bad customer experience may result in Service Level Agreement (SLA) breaches, as well as brand and reputation damage with your customers. Customer experience is a critical topic and in most organizations, will continue to be the responsibility of business owners and application development, both inside and outside of IT.
How Does All This Change APM?
As you can see, these two forces point towards using different APM tools from those traditionally used by IT. If you’re experiencing some of these changes and need to update your APM tools, here are some features you may want to look for in your new APM toolset, courtesy of BMC Software:
- Application-Centric Infrastructure Monitoring – The ability to see all your application tiers in a single view, and then drill down to different tiers and evaluate each tier’s performance.
- Application Component Deep Dive – Mapping your application topology and tracking back-end user transactions to pinpoint the source of a problem.
- Synthetic Transactional Management – Automated testing of application scripts in specific locations to discover region-specific problems (i.e., how does this app work in Paris as opposed to San Francisco?) and the ability to monitor native mobile app user experience.
- Passive End User Experience Monitoring – Identifying and tracking usage trends using real-time information containing the atypical behaviors occurring with your application in the real-world. Monitoring actual usage trends such as user load and response time for a given application in a given geographical region.
- Active End-User Experience – Monitoring and discovering end-user interactions with applications and micro-services to determine what the users are experiencing.