With today’s highly networked applications, it can be difficult to find an application that doesn’t contain built-in dependencies of some kind. Most applications depend on a database and an HTTP web service at a minimum. More complex applications leverage the APIs of other applications that may be in their control or be hosted by a third party. Application Dependency Mapping (ADM) can tell you that these dependencies exist, but Application Performance Monitoring (APM) can tell you what these applications are doing. In short, ADM and APM tools are complementary with individual strengths to help you troubleshoot and manage your applications.
What Is APM? What’s It Used For?
Application Performance Monitoring (APM) is used to understand the performance of an application (or application suite) in real-time. Using APM, administrators can understand whether an application is meeting its service level agreements (SLA), whether it’s performing as intended, and whether customers are able to use the application without bugs or timeouts.
Using APM diagnostic solutions, administrators should be able to understand where bugs, slowdowns, and downtime are happening within their application stack. With this data, administrators should be able to pinpoint the cause of these problems and decrease their time to resolution. Ideally, they should be able to detect and mitigate issues before customers start filing support tickets asking for help.
What Is ADM? What’s It Used For?
Application Dependency Mapping (ADM) is what it says on the tin—it maps the dependencies between applications. A good ADM tool will let users find application dependencies in almost real-time using various methods—ping sweeps, NetFlow data, API calls, and more. ADM tools also generally work agentlessly – meaning that they do not require anything to be installed on the various hosts. This will let administrators understand the changing configuration of their applications, even if developers alter the application or infrastructure on a daily or even hourly basis.
Administrators can leverage ADM to support patching and maintaining IT infrastructure relies on the understanding of application dependencies. Patching an application, for example, may alter several of its dependencies, causing them to fail or perform unexpectedly. If the administrator understands the dependencies of the application being patched, however, they can prepare for the disruption—maintaining the application without causing any unplanned downtime.
ADM can also be used to map applications to plan for change. The first step in any cloud migration, for example, is to understand the application in their current environment, including what dependencies the application has on other applications or infrastructure. Without that information, you introduce significant risk to any transformation project. For example, if your application depends on a 3rd party application hosted outside your organization and you move or migrate that application, it may simply not work after being moved to the cloud. By mapping the dependencies, you can feel confident that your application will work on the other side of any migration.
Where Is the Blind Spot Between APM and ADM?
If you’ve been following along, the blind spot between APM and ADM is clear enough. Using application performance monitoring, administrators can understand where problems occur, but not how application dependencies may create those problems. This lets them treat symptoms, but not causes, in other words. If administrators can’t understand the application dependencies that are creating problems, they’ll be stuck remediating the same issues repeatedly.
With application dependency mapping, the reverse is true—administrators will be able to understand that application dependencies exist, but not what those dependent applications are doing. This can present its own set of difficulties when it comes to remediating issues. For example, this might cause a scenario where the administrator can see that a primary application is running and that its dependent applications are running as a result. They can’t see whether the dependent applications are running normally, however—using an appropriate amount of memory, storage, and compute power. Without this ability, the administrator won’t be able to see whether their applications are running amok, making it harder to diagnose critical issues.
The biggest blind spot for APM tools, however, is that they usually require installing an agent either onto the host or inside the actual program. For the former, that means making sure you have agents installed on all of your hosts. For the latter, it means that you can only instrument applications that you or your organization created. For example, you cannot install an APM agent inside of of an SAP install – you simply do not have access to install it. ADM tools, in contrast, do not require installing either an agent and can work with any application, regardless of whether you authored it or not.
Since APM tools require the installation of an agent, or being appropriately pointed at target infrastructure, they cannot, by definition, find any applications or infrastructure that they do not know about ahead of time. This makes it impossible to identify, for example, if a developer has spun up a new application and connected to the primary application unless an agent has been installed.
Lastly, APM tools cannot tell you how your application has evolved over time. ADM tools, in contrast, can repeatedly scan applications and identify change. This is invaluable for compliance and audit, and during troubleshooting where it can be critical to identify the state of the application both before and after an outage.
Using APM And ADM Together—What are the Benefits?
By using application performance management and application dependency mapping together, administrators get the best of both worlds. Using these solutions in tandem provides a greatly expanded view of the applications, allowing administrators to track down problems faster and permanently resolve them.
When administrators add ADM to APM, they gain the ability to understand how dependent applications may contribute to problems in their infrastructure. The problem might not be that an application is consuming too many resources and causing the network to slow down. Rather, it could be that an update has broken an application dependency, which causes the dependent application to request too many resources. If administrators only try to fix the first problem—by rebooting the dependent application, for example, then it will take them a lot longer to understand how to keep the problem from happening again.
ADM tools also provide a robust collection of additional benefits that an APM tool cannot provide by helping track application state at any point in time, and providing an easy way to audit your applications for compliance.