What is an Application?

The complex, heterogenous nature of today’s enterprise environments is one reason the demand for APM tools is growing. Another is the complexity of applications themselves, from the perspective of development, IT operations, and the application end user. This introduces an interesting yet very simple question, what is an application? In this post I’ll look at what a modern application looks like from the perspective of different IT stakeholders and what it means for performance management.

What would a typical developer or software engineer say when you ask them this question? I imagine they’d define an application by the code or logic. They would also most likely mention programming languages, containers and software components. For example, we have developed a new CRM application based on Java using a Spring framework and Hibernate, hosted on Jboss and with AJAX based UI.

An IT operations person would probably look at things more from the deployment perspective with less focus on the software building blocks.They would describe the application in terms of infrastructure components. Ops might say something like this: “The new CRM application is hosted in our virtualized environment. It is being accessed through a new type of load-balancers, authenticated using our SSO technology, and the MF is being accessed through the ESB.”

The difference in perspective between these IT stakeholders means that their desired approach to application monitoring may differ as well. However, it wouldn’t make sense to monitor applications strictly at the infrastructure level or at the coding level, especially in a production environment. There is a third perspective to consider.

If you are an IT executive, you might not really care about what drives the application. You probably care more about meeting the service level commitments to the end users and the business. You will benefit from taking a service perspective in your IT approach. First, ask yourself what services does the application offer in production? How does the end-user interact with it? What is their experience? Your approach to monitoring must focus on the service to end users and everything that facilitates it. The context of end user delivery is what matters at the end of the day.

When looking at strategies or approaches to application performance monitoring, you cannot limit the focus to just infrastructure elements or coding. With a service-oriented perspective, you will empower all stakeholders within your IT team while ensuring the end user experience and SLAs are being met. A transaction-centric approach, which monitors everything from the end user perspective, is one strategy which puts the end user delivery into context. It is an approach which should be strongly considered by IT organizations.