Nmedia - Fotolia


Unleash application dependency mapping tools to combat outages

Create a detailed map of application dependencies from the CMDB and cloud resources and help prevent unexpected outages.

IT troubleshooting and updates are never what they seem on the surface. Application dependency mapping tools reveal what's lurking below.

Consider this common scenario: You are a systems administrator at a large company. A colleague informs you that SRV1, an infrastructure server, raised several alerts in the enterprise monitoring tool. You troubleshoot SRV1 and determine that its network interface card is defective.

Because SRV1 hosts no line-of-business (LOB) applications or services, you foresee no problem shutting down the server to perform the hardware repair. Within 10 minutes of doing so, however, the support desk sends high-priority tickets stating the organization's HR application is offline.

You break into a sweat and shift your focus immediately to the outage. At first, you're flummoxed because HR1, the server hosting the HR application, is online and available. However, HR1 depends on a file share hosted on SRV1. With that file share offline, the HR application was unable to service user requests and crashed.

Ring any bells? This real-world situation is an example of an application dependency. In the fast-moving world of IT, bound by service-level agreements, IT operations needs insight into the interrelationships of hardware and software components.

To start, understand how these relationships develop, then examine the application dependency mapping tools available to expose them.

Application dependency mapping essentials

An application dependency is any external component that the application requires to function properly.

IT service management frameworks call for a configuration management database (CMDB), a data warehouse to catalog all of the business's hardware and software assets. Many IT shops maintain a list of assets and applications that they support in the data center and cloud. The challenge exists in creating interrelationships among those components to expose application dependencies.

The value of application dependency mapping is manifold. Well-understood dependencies enable more efficient system outage troubleshooting and ensure compliance with industry and government regulations. They also enable planners to assess the effects of system changes and upgrades prior to execution.

Application dependency management isn't simple. For example, a typical n-tier web application likely depends on web server services and file system artifacts; external storage and perhaps a content delivery network; programmatic components and services that run locally or elsewhere on the network or over the internet; database connections; and other instances of the application running on different physical or virtual hosts. This is potentially only a partial list of dependencies for one application. IT organizations must visualize all dependencies of each LOB application.

Application dependency mapping tools and technologies

Application dependency mapping tools work on commercial and open source software. Dependency mapping can be found in IT systems management products, such as VMware's vRealize Operations and Microsoft's System Center Operations Manager (SCOM). This article covers Microsoft technologies, as one way to highlight the various capabilities available.

Application performance management (APM) suites also integrate dependency mapping tools, as seen in AppDynamics' App iQ Platform, CA's Configuration Automation, Dynatrace's Smartscape, Nastel Technologies' AutoPilot and New Relic's APM Service Maps.

IT organizations operating privately owned infrastructure can draw application maps manually, via Microsoft's System Center management suite. In particular, SCOM performs a network scan and assembles application components into the CMDB. The user can manually assemble a dashboard view from this information that shows the application dependencies graphically (see Figure 1).

Microsoft SCOM
Figure 1. The diagram view in Microsoft SCOM graphically depicts application dependencies stored in the CMDB.

While this is a useful way to discover application dependencies, SCOM requires manual assembly of the diagram, and this mapping process can miss software components not tracked by SCOM.

To gain flexibility and insight include the public cloud in app mapping. The Microsoft Azure public cloud offers two tools: Service Map and Application Insights.

Service Map easily tracks dependencies for Azure VMs. The user integrates Azure-based Windows Server and Linux VMs with a Log Analytics workspace; on the back end, Azure deploys agent software to those VMs. Service Map generates dynamic dependency maps for the VMs (see Figure 2).

Microsoft Azure Service Map
Figure 2. Service Map analysis in Microsoft Azure adds flexibility to app dependency modeling. Various controls and features are explained in the diagram.

Users can integrate SCOM with Service Map to diagram distributed application dependencies that span the hybrid cloud. To connect the powerful Service Map tool to on-premises servers, install the Microsoft monitoring agents on private servers and feed their telemetry and dependency data to Service Map for analysis.

Microsoft Application Insights is an APM engine that runs in Azure and provides detailed monitoring of web applications. In particular, the Application Map feature shows a live view of web applications' dependencies (see Figure 3).

Microsoft Application Insights
Figure 3. Application Map in Application Insights provides Microsoft customers with a live view of app dependencies.

The web app example in Figure 3 hasn't been running long, which is why the map components don't show numerical data. Over time, however, the Application Map will show not only the app's dependencies on other service components -- HTTP level, databases and APIs, for example -- but will also plot warnings, errors and latency statistics.

Dig Deeper on Systems automation and orchestration

Software Quality
App Architecture
Cloud Computing
Data Center