Identify application dependencies and inventory

When you are planning a migration to the cloud, it is important to analyze your current on-premise architecture and identify the scope of your migration. When you have a full understanding of your applications, your hosts, and their architecture, you reduce the possibility of missing dependencies during your migration.

Here are the seven steps covered in this tutorial:

Identify applications and dependencies

1. Identify applications and components

First, you need to determine the level of instrumentation that is possible or allowed within your organization. The deeper you instrument, the more visibility you gain into your applications. Then, address the scope of your cloud migration by answering the following questions and keeping track of your answers:

  • What applications do I need to include in the migration?
  • What are the dependencies of each application?
  • What are the underlying services/inventory supporting these applications?

2. Install New Relic agents

Based on your answers when you determined the scope of your cloud migration, verify that the applications that you want to migrate are compatible with New Relic products and install the agents:

>New Relic APM

New Relic APM delivers data about your application's performance, providing information about app availability and external services so you can visualize your application dependencies.

Confirm that your system meets the requirements for the APM agents that you want to install, and then install the APM agent on your application stack. Steps for installing APM agents vary based on language.

New Relic Infrastructure

New Relic Infrastructure provides flexible, dynamic server monitoring so you can inventory your hosts and their configuration settings.

Confirm that your underlying infrastructure meets the requirements for New Relic Infrastructure. Install the Infrastructure agent on instances that host your applications.

Infrastructure on-host integrations

Infrastructure on-host integrations monitor the services that your code depends on. Install the on-host integrations for the services that you are using.

3. Visualize application dependencies with APM

After you install the APM agent, use Service Maps to get a full view into your application’s architecture. Service Maps allow you to identify any connections from applications to external services, web services, databases, or APIs.

After creating a Service Map for the application that has dependencies that you want to explore, add an application node on the map. Then, begin to add connections to the map including databases, external services, third-party APIs, and even New Relic Browser-monitored applications. New Relic pulls every node you add into the map, and you can watch the shape of your architecture emerge.

AP - Service maps - overview
rpm.newrelic.com/apm > Service maps: Use service maps for a visual overview of your system architecture and to see the health of each entity in your architecture at a glance.

Based on the visibility into internal and external dependencies that the Service Map provides, you can create a migration plan that includes all aspects of an application’s ecosystem.

4. Inventory underlining instances with Infrastructure

New Relic Infrastructure's Inventory page gives you visibility into the software packages installed on your servers. Essentially, the Inventory page displays detailed information about a system’s per-host configuration, including details about system modules, configuration files, metadata, packages, services, and user sessions. The Inventory page provides a real-time, filterable, searchable view into each host’s configuration.

The Inventory page not only provides you with the list of packages installed but also provides version information as well. Use this version information to know which packages to upgrade and which packages to replicate for your cloud migration. It also helps you track the dependencies between the software packages and configuration files.

Inventory page
infrastructure.newrelic.com > Inventory: View the Invengtory page for details about your hosts and their configurations.

You can also use the Inventory page to get a sense of what software or packages you no longer need, which is a great way to “clean up” your servers before you migrate to the cloud.

5. Uncover unknown applications and components

Since anything can happen during an application’s lifecycle, like an application changing ownership, you may come across applications or component dependencies that you did not know about. If you discover any unknown dependencies, assess their relationship to other applications and components in your infrastructure to determine if they should be pulled into your migration plan.

If you discover any applications or components while viewing Service Maps or while reviewing the Inventory page, remember to instrument them before you migrate them.

6. Resolve errors or other issues

After you instrument your applications, APM may uncover errors or issues with your current on-prem applications. Use APM error analytics to determine the root cause of any errors or issues in your applications.

screen-error-analytics.png
rpm.newrelic.com/apm > (select an app) > Events > Error analytics: Use error analytics to determine the root cause of errors in your applications.

Start with the Error rate chart to see if there are any unexpected spikes, dips, or error patterns. Correlate any patterns on the Top 5 errors chart to alerts occurring during the same time period.

The Error trace table includes specific stack trace details, such as associated host, user, framework code, and custom attributes to help you identify the root cause of an error.

For more detailed information about the New Relic Error Analytics dashboard, check out New Relic University’s Error Analytics Dashboard tutorial.

7. Create Insights dashboards

In addition to the application baselines you built, create New Relic Insights dashboards to assess your on-premise applications in preparation for migrating them to the cloud.

Use Insights to gain visibility into the average response times, the top transactions, the associated average duration, and the overall CPU usage for your instrumented application. Drill down into individual applications to see your top processes and the CPU percent for each process.

You can also view an error analysis for a set of instrumented applications:

Error analysis in Insights
insights.newrelic.com > (select a dashboard): View errors in Insights to visualize issues with your applications.

Check out the Insights best practices guide for tips on creating and utilizing Insights dashboards. Sharing New Relic Insights dashboards with your teams and stakeholders is a powerful way to communicate the impact of your migration during your cloud adoption process.

For more detailed information on writing advanced queries using NRQL, check out New Relic University’s Advanced Query tutorial series.

Expert tip for reporting custom data

Utilizing Service Maps, error analytics, and inventory management gives you a critical look at the architecture of your applications and their dependencies. If you find that you need data that is not available by default, New Relic products allow you to capture custom data:

For more help

Explore the New Relic Platform.

Recommendations for learning more: