Understanding Application Dependencies

By Scott McKeever, Certified Captiva Professional

What are Application Dependencies?

Application Dependencies occur when technology components, applications, and servers rely on one another to provide a business solution or service. When developers build solutions, they do so with a certain technology stack in mind. This normally includes the operating system (OS), a database engine, and development frameworks (such as .Net or Java Virtual Machine), in addition to other possible infrastructure.

application dependencies concept

Why is understanding “application dependencies” important?

  • To protect against critical business systems outages.

As an example, one of your web servers is dependent on a listing of files that resides on a file server. Without the knowledge of those dependencies, maintenance on that server could take a mission-critical website down.

  • Moving services to the Cloud.

An application migrated to the cloud without consideration of the dependent services can cause severe performance issues or have severe, unintended side effects on other applications that are still on-prem. Imagine moving an application server to a cloud provider but maintaining the database on-premise. Performance for the business would most definitely suffer. Or other applications may mysteriously start to fail due to an unknown application dependency that is disrupted when the target application is migrated to a cloud-based deployment environment.

To avoid the pitfalls of poor application performance and even service outages, application dependency mapping is important.

But, where to even start?

Tools That Can Help

Unraveling application dependencies can be a major blocker in cloud migration projects. To solve this issue, several public cloud platforms, such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP), have developed tools that can help you manage this task.

Of course, the downside of using these tools is that they are closely tied to the cloud providers’ services. If you choose to do your assessment using one of these vendor tools, you are also (perhaps unintentionally) also making a decision about what cloud provider you will use as your target cloud environment.

In 2015, Microsoft acquired a company called Bluestripe to give them an inroads in assisting potential clients in moving to their Azure platform. The tools available are Azure Migrate and Azure Service Maps. AWS also has Application Discovery Service. Though each is targeted to the specific cloud platform, the data provided is similar in nature.

On a per application basis, the tools provide modeling of the inter-server relationships, processes running, inbound and outbound connection latency, and what TCP ports are necessary.

If you have concerns about using a cloud vendor provided application dependency tool, there are several open source tools such as Pinpoint and Prometheus that provide similar services without having a bias towards your eventual cloud deployment environment. Both provide application performance monitoring over time with mapping capabilities.

Taking It a Step Further

While these tools can provide some quality information, working with a company that has experience in migrating business-specific applications to the cloud can be invaluable. As experts in the integration of content management solutions, we have the tools to know dependencies that might otherwise be overlooked, putting your business-critical solutions at risk. In addition, we can provide you with an objective, vendor-neutral assessment of the best approach for cloud migration for your existing application inventory.

With the current business environment and the need for remote work models, now it is more important than ever to consider getting your applications in the cloud. Our three-part analysis can help you get started.