Table of contents
Companies today are moving to the cloud at breakneck speed, but waiting until you’re actually in the cloud to begin monitoring your applications and infrastructure is often too late. Instrumentation is essential at every stage of the cloud adoption journey.
The major cloud vendors typically divide a cloud migration into three phases: Plan, Migrate, and Run. But they don’t often stress the essential role that monitoring should play at each stage. That’s critical, because while the importance of monitoring once your apps are up and running in the cloud (the “Run” phase) is well established, it’s just as important to instrument and monitor your applications and infrastructure during the earlier Plan and Migrate phases.
In this ebook we will provide an overview of the cloud migration process, and provide best practices for how to successfully plan for and move your workloads to the cloud.
First, answer these 3 critical questions
Before you’ve migrated a single application to the cloud, you need monitoring to understand the current state of your on-premise workloads. After all, you need to know what you’re working with before you begin. Establishing this baseline is key to understanding and maintaining application health during the migration, and invaluable for demonstrating your cloud strategy business case. Too many organizations turn to their cloud provider after they’re running workloads in production, only to realize they can’t fully measure the benefits because they failed to baseline performance before starting their migration.
And should something go wrong during the migration, monitoring can help you get to the root of the issue quickly and resolve it. It’s the only way to know “Is it the app or the cloud that’s causing the problem?”
Put simply, instrumentation, measurement, and monitoring are essential to answering three critical questions on the road to the dynamic cloud:
- Baselining: How can I baseline my applications so I know whether performance has been impacted during the migration?
- Business value: How do I know whether I’ve realized the business benefits that justify the time and resource investments in my cloud migration (that is, How do I develop my cloud business case)?
- Instrumentation: How can I ensure a safe and comprehensive migration that enhances functionality for my systems and customers?
Planning your cloud migration
Before your cloud migration initiative has even begun, while the majority of your applications are still on-premise, it is important to appropriately plan and prioritize your workloads for a successful migration. During the Plan phase of your cloud migration, you should anticipate the possible obstacles that might arise. Technical challenges could include issues with latency, cloud security, role-based secure access, custom network configurations, throughput, and performance. By addressing such potential pitfalls early on, you can save both time and money—as well as avoid undue stress.
Your organization needs to assess what workloads are ready for the cloud, which existing workloads are best suited to migrate to the cloud, and how to determine the right mix of cloud services to meet your organization’s overall priorities.
This process involves identifying workloads and the servers on which they run (physical and virtual), storage devices and databases used, resource patterns, networks and components, and the relationships and dependencies between all of these entities.
The Plan stage is also the time to calculate the current and projected costs of ownership and operations. A Total Cost of Ownership (TCO) analysis should look at non-payroll cash flows and a comprehensive operating-expenses analysis that includes the costs for compute power, storage, software (operating system, virtualization, controllers, etc.), vendor software, and human resources. The comprehensive analysis should provide clear evidence of the significant economic benefits that the SaaS model provides compared with the traditional on-premise model.
Which applications should you migrate?
At New Relic, we have discovered that many cloud projects go beyond a simple lift-and-shift operation (simply porting existing applications to a new cloud environment). Instead, they also include net new development using cloud-native capabilities. In the process of replatforming their applications, many companies choose to make certain cloud optimizations to achieve the tangible benefits that they’re aiming for, without changing the core architecture of the application.
Applications that demonstrate repeatable, acceptable performance against your service-level agreements (SLAs) with customers, on the other hand, are sometimes called “green apps” because they’re often good candidates for migration to the cloud. New Relic provides extensive capabilities to define, measure, and report on SLA compliance, which can help you assess which applications should get the green light for cloud migration.
New Relic SLA reports help you better understand your application performance by showing application downtime and trends over time.
Other appropriate candidates for moving to the cloud include applications with highly variable throughput. Applications that experience large seasonal changes in volume, for example, can benefit from the compute elasticity the cloud provides.
An application with variable throughput may trigger further investigation to determine any negative causes.
Keeping these considerations in mind (and employing the performance and throughput data provided by New Relic) can help you determine which applications are good candidates to move to the cloud in their current form. Remember that a cloud migration doesn’t have to “freeze” your applications; you can still refactor or revise applications after migrating them to a cloud infrastructure.
Migrating an application that’s performing poorly introduces new variables that could make it difficult to determine if any future problems are due to the new cloud architecture or lie in the application itself. Refactoring and re-architecting these applications may be expensive and cumbersome, but if the product-market fit is justified, there can be tremendous benefits to moving problematic applications from a monolithic architecture to a service-oriented architecture in the cloud.
Establishing pre-migration performance baselines
When moving to the cloud, New Relic can serve as both a vehicle for visibility and an anchor for control. The goal is that no matter what changes you make in your infrastructure, platform, or applications, the customer experience should not suffer—ideally, it should be improved.
“We’ll be using New Relic to monitor the migration to AWS and make sure we’re maintaining the same quality levels using our current benchmarks. This will allow us to build in the cloud with speed and confidence.” —Adam Gelinas, Advisory Software Engineer, Constant Contact
Start by capturing performance baselines. Use New Relic APM to view your application’s performance trends—page load times, error rates, slow transactions, and the servers on which your app runs. Analyze your Apdex score to find out whether most users are satisfied with, tolerating, or frustrated by your app.
The New Relic Apdex overview screen shows how well users are accepting the application.
Also, look at your web transactions response time, starting with the list of slowest transactions. Set your Apdex to measure users’ satisfaction with the response time of web applications and services—is the response time acceptable? If not, start troubleshooting and tuning. Create baselines against which you can compare performance before, during, and after migration. Likewise, measure error rates so you know whether they have increased after the migration.
Viewing web transactions response time in New Relic
Pro tip: Don’t stop with establishing baselines just for the factors that you normally measure. Migrating to the cloud can introduce new variables, such as network latency and load balancing. Performance and transaction behavior that was acceptable when all or part of the application was on-premise may spark performance or cost changes when running in the cloud. Make sure to establish baselines for anything that might be affected by the cloud migration, even metrics that are currently working well.
With systems, as with people, past behavior is often the best predictor of future performance. You should look at several weeks of historical data to evaluate three factors that help predict the behavior of metric data, and to determine what “normal” is without needing to manually understand the baselines. All of these factors are included in the baseline calculation:
- Recent data: What values have you seen recently?
- Trend: In what direction and how fast is the value changing over time?
- Seasonality: What was the value at a similar time in the past?
Weighting all three behaviors and using them in combination allows you to predict the next data point. Based on that prediction, you can create dynamic alert thresholds that look at the difference between the expected value and the actual value, which is exactly what New Relic’s Dynamic Baseline Alerts is designed to do.
“For migrating workloads to the cloud and developing new applications, Microsoft Azure with New Relic enables us to deploy quickly and reliably, delivering consistent value for the business.” —Steve Novoselac, Director of Digital Product Management, Trek Bicycle
Migrating your workloads to the cloud
Once you have established your application baselines and completed the rest of your cloud migration planning activities, you’re ready to move to the Migrate phase. In this phase you will focus on identifying potential issues and roadblocks, validating cloud improvements, and begin performing acceptance testing.
It makes sense to start out small and simple so you can demonstrate the value of your migration in incremental steps.
Using automation to power your cloud migration
Automation is key to leveraging the cloud’s agility. Your first step will be to set up a program management office (PMO), the part of your team that will be charged with managing the overall migration and ensuring that proper communication and change procedures are followed. A Cloud Center of Excellence (CCoE)—a cross-functional team responsible for developing and managing the cloud strategy, governance, and best practices for the rest of the organization—can serve as a model and technical advisor, working alongside the PMO to help ensure a successful migration project.
Your approach to the cloud must be comprehensive. That means internal processes need to be managed to embrace your organization’s significant cloud migration. You should also leverage managed services wherever possible, including cloud services such as Amazon Relational Database Service (RDS), AWS Directory Service, and Amazon DynamoDB. Day-to-day maintenance activities can be managed by these services, allowing your engineering and ops teams to focus on innovation and improving the customer experience.
Measuring the business value of your cloud migration
One benefit of leveraging New Relic as a partner in your cloud adoption and migration journey is that our platform functions the same way whether an application is running on-premise or in the cloud. New Relic is cloud native, so you can scale and improve your applications without worrying about your monitoring solutions keeping up.
And unlike some on-premise APM solutions, New Relic can securely monitor cloud applications and components. That flexibility makes it easy to make “apples-to-apples” comparisons before, during, and after your cloud migration. During the migration, you can use New Relic APM to compare the performance of application code, databases, and external services against the pre-migration baselines you established during the planning phase. Here’s where all that preparation pays off—this is the apples-to-apples comparison you’re looking for:
Pre-migration feasibility and benchmarking allows you to ensure that the actions you’re taking are leading to measurable value and business impact.
After the migration, you can use New Relic APM for optimization:
Post-migration performance can be visualized and optimized by Apdex score and application activity.
Constantly test the factors most important to your business
While examining performance, it’s not enough to just ping your servers. In web applications, some transactions (purchase confirmations or searches, for example) are more important to your business than others. New Relic Synthetics can help you create scripts that focus on these key transactions in your applications to measure performance during migration, including app response time, call counts, and error rates. Because it is agentless, Synthetics can reduce procurement and adoption woes by reducing the friction often associated with installing monitoring agents on specific web applications. (Of course, to truly understand application and infrastructure performance in the cloud, you need more than synthetic monitoring.) You can also simulate a user’s workflow and set alert notification conditions for when your key transactions are performing poorly:
Proactively monitor the results of your checks using New Relic Synthetics.
Don’t neglect acceptance testing!
Migrating an application to the cloud can lead to unexpected changes, so you need to look beyond individual variables and monitor the application’s total performance. Operations that weren’t causing issues when the application was running on-premise may develop unexpected problems when running in the cloud.
For example, if you move your database to the cloud, queries may run faster but the network time required to process requests could increase. If a transaction is chatty with the database, overall end-user time consumed can balloon. Likewise, network and per-access times can be higher in the cloud than in a direct-connect situation. This is where having a solid set of baselines can help you pinpoint any new performance issues.
Compare database performance against baselines using New Relic.
“During migration, we identified a few edge cases that caused some performance regression. Using New Relic, we were able to do a quick root-cause analysis and fix the problems before any of our customers noticed.” —Josh Koenig, co-founder and Head of Product, Pantheon
Once you have migrated the designated workloads, your next step is to validate that the migration was successful by answering these four questions:
- Are all linkages and connections between applications the same after migration as they were before?
- Are all SLAs being met at the same level or better than they were before migration?
- Have all security and compliance requirements been met?
- Have prominent risks and threats been considered, analyzed, contained, and managed?
New Relic customers have learned that complete and early instrumentation of their applications and infrastructure is critical to making their cloud migration as fast, seamless, and successful as possible. Once you successfully complete your cloud migration, you will be able to validate the connections, service levels, security, and performance considerations of your newly migrated applications. At a higher level, proper instrumentation can help you adopt new cloud services with speed and confidence, because you know exactly how well your application is performing and can see the quality of the digital customer experience you’re delivering.
Cloud migration is a continual process, and New Relic can support you every step of the way, providing data-driven insights to help you make smart business decisions when considering trade-offs between performance and costs. Deploying New Relic as part of a cloud migration can have a significant impact on your organization’s bottom line in a wide variety of ways.
Learn more about the power of early instrumentation and the New Relic Cloud Workload Migration Methodology by visiting New Relic’s Cloud Adoption Solution Page. For more information on the role of instrumentation and monitoring throughout the cloud migration journey, read Measure Twice, Cut Once, our guide to cloud migration measurement and acceptance testing.