Nmedia - Fotolia
IT troubleshooting and updates are never what they seem on the surface. Application dependency mapping reveals 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 application dependencies work, then examine the tools available to discover and map 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. 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.
Tools and technologies to track application dependencies
Application dependency mapping applies equally to 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.
Dependency map functionality also appears in application performance management (APM) suites, such as 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 perform manual application dependency mapping 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).
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).
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).
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.