APM for Vendor Provided Business Critical Enterprise Applications
January 20, 2017

Sri Chaganty
AppEnsure

Share this

Traditionally, Application Performance Management (APM) is usually associated with solutions that instrument application code. There are two fundamental limitations with such associations. If instrumenting the code is what APM is all about, then APM is applicable only to homegrown applications for which access to code is available.

However, the majority of business critical applications are not homegrown. As the chart below shows, the $320B enterprise software market is driven by vendors who provide solutions for which there is no access to the source code. The enterprise software market in the chart covers a full assortment of commercially off-the-shelf products ranging from corporate databases to Enterprise Resource Planning (ERP) solutions and from Cloud-enabled productivity tools to mission-critical vertical applications. However, there are technical challenges with code instrumentation that are overlooked with this traditional association.


Source: Apps Run the World, 2016

Vendor Provided Software

Traditional APM vendors focus on application software that is developed in house, mainly based on Web Services. These solutions employ Byte Code Instrumentation (BCI), a technique for adding bytecode during "run time." These solutions are developer focused. If developers want to debug or profile the code during run time, BCI is an effective solution.

In reality, enterprises depend on both in-house developed software as well as vendor provided software. Applications that businesses use can be dived into two categories: 1) Business Critical Applications and 2) Productivity Applications. While business critical applications are the foundation on which the business success is dependent upon, productivity applications like email are also equally important for enterprises.

Generally, about 80% of the applications that enterprises use in either category are packaged applications supplied by vendors like Microsoft, SAP, Oracle, PeopleSoft and others. Only 20% of the applications are developed in-house. In the majority of cases, the in-house developed applications generally wrap around vendor provided software.



A common example is an application developed based on web services customized for a business that are supported on SAP in the background. Instrumenting vendor provided software is not possible as the source code is not provided by the vendor, therefore, code instrumentation techniques are not feasible for vendor provided software.

Instrumenting in-house developed application software at different points gives a rich view to optimize the application throughout development. However, there are several types of problems that such instrumentation just can't see. It does not, and cannot, always deliver the complete visibility that users think they're getting. In addition, code instrumentation is not "free", even with the expensive tools commercially available, it takes considerable coding skills (not widely available) to achieve effective code instrumentation without degrading the performance of the production code execution.

Technical Challenges

Code instrumentation can report on the performance of your application software stack, but the service offered to customers depends on far more than just the software – it depends on all of the networks, load balancers, servers, databases, external services like Active Directory, DNS etc., service providers and third parties you use to provide the service. 

Traditional APM products do only BCI. They claim to be transaction management solutions, though there are limitations to what they can do in Java environments, and they have zero visibility of non-Java topologies.

A real transaction management product needs to follow the transaction between different types of application-related components such as proxies, Web servers, app servers (Java and non-Java), message brokers, queues, databases and so forth. In order to do that, visibility into different types of transaction-related data is required, some of which only exists at the actual payload of each request. Java is an interpreter and therefore hides parts of the actual code implementation from the Java layer. The Java Virtual Machine (JVM) itself is written in C, therefore there are operating system-specific pieces that are not accessible from Java and thus not accessible through BCI techniques.

If you want to use features of TCP/IP packets for tracing a transaction between two servers, the actual structure of packets is not accessible from the Java layer. There is information that is crucial to trace transactions across more than just Java hops. Such information is available only at a lower layer than the Java code, thus not accessible by BCI, which limits the ability to trace transactions in the real world.

Conclusion

For vendor provided software, BCI is an ineffective technique. For in-house built software, BCI allows programmers to enhance the code they are developing. It is a necessary tool for development teams but insufficient as it does not offer the visibility that IT Operations require in order to understand the application service delivery chain performance. If your business depends on mission-critical web or legacy applications, then monitoring how your end users interact with your applications is more important than how well the code is written. The responsiveness of the application determines the end user's experience. The true measurement of end-user experience is availability and response time of the application, end-to-end and hop-by-hop – covering the entire application service delivery chain.

Sri Chaganty is COO and CTO/Founder at AppEnsure.

Share this

The Latest

February 24, 2017

Global revenue in the BI and analytics software market is forecast to reach $18.3 billion in 2017, an increase of 7.3 percent from 2016, according to the latest Gartner forecast. Gartner believes the rapidly evolving modern BI and analytics market is being influenced by the following 7 dynamics ...

February 23, 2017

An important aspect of performance monitoring is where the observer stands when looking at the IT scenario. Each participant has a different view of what is bad performance - network, database, web, system, user personnel, management and external people - customers, regulatory bodies etc. These are what I call viewpoints ...

February 22, 2017

An important aspect of performance monitoring is where the observer stands when looking at the IT scenario. If a complaint says the performance of an application is dreadful, the network man might say "Everything is fine" and the database man may agree, both saying "What's the problem?" All these people may say that the performance world is rosy but not to other people who have a different idea on what is rosy and what is not ...

February 21, 2017

Instapaper, a "read later" tool for saving web pages to read on other devices or offline, suffered an extensive outage 2 weeks ago. While Instapaper hit a unique problem — a file size limitation — its experience speaks to a much larger problem: scaling a database is difficult, and never quick. That basic fact explains why outages like this are surprisingly common ...

February 16, 2017

Hybrid Cloud is the preferred enterprise strategy, according to RightScale's 2017 State of the Cloud Report ...

February 15, 2017

IT departments often try to protect against downtime by focusing on the web application. Monitoring web application's performance helps identify malfunctions and their cause on a code level, so that the DevOps team can solve the problem. But, monitoring application performance only protects against application errors and ignores external factors such as network traffic, hardware, connectivity issues or bandwidth usage, all of which can have an impact performance and availability of a website ...

February 14, 2017

Everybody loves DevOps. In fact, DevOps is the hottest date in IT. That's because DevOps promises to satisfy the deepest longings of digital business — including fast execution on innovative ideas, competitively differentiated customer experiences, and significantly improved operational efficiencies ...

February 13, 2017

Forrester forecasted that direct online sales totaled 11.6 percent of total US retail sales in 2016, but digital touchpoints actually impacted an estimated 49 percent of total US retail sales, according to The State of Retailing Online 2017: Key Metrics, Business Objectives and Mobile report, released by the National Retail Federation’s Shop.org division and Forrester ...

February 10, 2017

Cisco's acquisition of AppDynamics – and the premium it paid – represents a "statement acquisition" that addresses several converging trends in both technology and financial markets. For strategic acquirers and tech investors, the acquisition is about delivering value to users and improving business outcomes through a go-to-market model that drives recurring revenues ...

February 08, 2017

Industrial and technological revolutions happen because new manufacturing systems or technologies make life easier, less expensive, more convenient, or more efficient. It's been that way in every epoch – but Continuity Software's new study indicates that in the cloud era, there's still work to be done ...