Cloud adoption has become one of the most important strategic initiatives for modern software companies. With the promise of increased agility and velocity in mind, companies are working hard to migrate their infrastructure and applications to public cloud platforms like Amazon Web Services (AWS), Google Cloud Platform (GCP), and the Microsoft Azure Cloud.

Are they getting the results they seek? Last year, Infoworld predicted that in 2018 one in three cloud projects would fail. At New Relic, we believe that just a few hours of instrumentation can save weeks—or months—of effort and cost in cloud adoption, potentially making the difference between success and failure.

Critically, you can’t wait until you’re in the cloud to begin monitoring—the earlier you instrument, the faster your migration will go and the more likely you are to achieve success. Our Guide to Planning Your Cloud Adoption Strategy provides deep-dive best practices for using New Relic at every stage of your cloud migration. This blog post shares some of the high-level takeaways from these tutorials.

A 3-step strategy for cloud migration

A cloud migration typically consists of three phases:

  1. Plan
  2. Migrate
  3. Run

Each phase includes multiple steps and, in several cases, their own measurement strategies. We’ve created tutorials to address every step. Let’s take a closer look at each phase.

Phase 1: Plan

In the Plan phase, you’ll prepare application baselines, identify application dependencies, and prioritize the migration order of your applications.

1. Create application baselines

Before you migrate to the cloud, you need to form a baseline, which is a measurement of the current performance and availability of your application. This baseline allows you to compare the same application’s performance and availability after your migration. You’ll also use this baseline at various milestones along your journey to determine operational parity for your cloud-based applications. In this tutorial, you’ll establish a baseline for your application and create Insights dashboards to track KPIs.

KPIs tracked: availability percentage, average duration, page load time, throughput, web transaction time, CPU percentage, average load, memory used percentage, response time, and Apdex

2. Identify application dependencies and inventory

When 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 the migration. In this tutorial, you’ll use New Relic to uncover your application’s connections and dependencies, including databases and external services, and reduce the possibility of missing interdependencies during the migration.

3. Prioritize migration order

Before you migrate any applications to the cloud, verify that your applications and their underlying server infrastructures are candidates for migration. In this tutorial, you’ll instrument every layer of your application to prepare a focused cloud migration priority list. You’ll use New Relic APM to uncover any errors or issues with your application, and create a New Relic Insights dashboard that contains widgets for each application that show application and infrastructure health as well as baselines.

Phase 2: Migrate

In the Migrate phase, you’ll identify issues and roadblocks, validate cloud improvements, and perform acceptance testing of your migrated applications.

4. Identify issues and roadblocks

As you migrate your applications to the cloud, you want to catch and correct any unexpected behavior or outcomes as soon as possible. Detecting errors and issues related to your new cloud architecture, performance, and scale is critical—getting the right information at the right time can be the difference between success and failure. In this tutorial, you’ll use New Relic Infrastructure’s cloud integrations to monitor usage status and error statistics and set up alerting.

KPIs tracked: availability percentage, average duration, page load time, throughput, web transaction time, CPU percentage, average load, memory used percentage, response time, and Apdex

5. Validate cloud improvements

One of the main reasons you’ve decided to migrate to the cloud is to take advantage of cloud services that improve the performance of your applications. In this tutorial, you’ll capture new baseline metrics after your migration and build dashboard widgets to track all your improvements.

KPIs tracked: Apdex, duration, transaction time, cloud spend, and HTTP response time and errors

6. Perform acceptance testing

In this tutorial, you’ll compare your original on-premise baselines against the new baselines you took in step 5 and build dashboards for each application you migrated that compare both baselines. Comparing these baselines will ideally prove the success of your migration. This is one of the most important steps of a cloud migration, and with New Relic, one of the easiest.

KPIs tracked: availability percentage, average duration, page load time, throughput, web transaction time, throughput, Apdex, CPU percentage, average load, memory used percentage, and response time

Phase 3: Run

In the Run phase you’ll monitor the services you’re using to power your applications, optimize your cloud spend, perform application refactoring as needed, and optimize your applications to perfect your customer experience.

7. Monitor your cloud services

Once you have migrated to the cloud, you’ll want to monitor the cloud services you use for your applications and infrastructure to prevent any usage issues or errors that might occur in this new architecture. In this tutorial, you’ll learn how to monitor, query, and alert on usage metrics and errors within your cloud environment, including services based in multiple regions and availability zones.

8. Optimize your cloud spend

Now that you’re using cloud-hosted infrastructure and services, it is important to start looking very early and very closely at your cloud spend. You want to make sure that your assumptions about your cloud spend are correct and that you’re able to detect and fix any unexpected spikes in spending. From there, you can start fine-tuning the usage of your cloud-based resources. In this tutorial, developers, operators, and executives can all learn how to manage their cloud spending, from selecting the most efficient resources to correctly configuring services to making better business decisions.

9. Perform application refactoring

In this tutorial, you’ll refactor—or re-architect—your cloud-based applications and infrastructure as needed. One key aspect of refactoring your software is splitting out your components into different services available from your cloud provider. For example, you might move your database component away from a traditional MySQL database to a cloud-hosted solution, like Amazon Relational Database (RDS) services such as DynamoDB. You should also see your cloud spend improve after refactoring.

10. Optimize customer experience

Finally, you’ve gone through your planning stages, identified your dependencies, performed acceptance testing, started perfecting your cloud budget, and everything is looking great. But there are still some big questions: How are your customers experiencing your service? Did the performance of your frontend applications improve, or did it stay the same? In this last tutorial, you’ll create an Insights dashboard that provides the status of metrics related to your customer experience.

KPIs tracked: availability percentage, average duration, page load time, throughput, Apdex, and response time

The cloud is ready for you. Are you ready for the cloud?

You definitely are because we’ve got you covered. Visit our Guide to Planning Your Cloud Adoption Strategy to learn how to accelerate your planning and migration and create a delightful customer experience.