Cloud adoption has become one of modern software companies’ most important strategic initiatives. 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 Microsoft Azure.
This blog post first appeared on the New Relic blog on July 20th, 2018.
By Kevin Downs, Solutions Strategy Director
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 adoption
Cloud adoption typically consists of three phases:
- Plan
- Migrate
- 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 migrating to the cloud, you need to form a baseline, a measurement of your application’s current performance and availability. 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’s 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. Use New Relic APM to uncover any errors or issues with your application, and create a dashboard with charts for each application that show application and infrastructure health as well as baselines.
Phase 2: Migrate
In the Migrate phase of a cloud adoption, 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, 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 cloud integrations to monitor usage status and error statistics and set up alerts.
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 of a cloud adoption 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 adoption 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.