Table of contents
To gain agility and competitive advantage, modernization is a business imperative no company can afford to ignore. This includes modernizing your applications, infrastructure, technology, and even your approach to software development.
From an infrastructure perspective, modernizing from an on-premise or legacy environment to Amazon Web Services (AWS) helps you begin to harness the agility, flexibility, and scalability of the cloud. Modern software development methodologies such as DevOps go hand-in-hand with modern cloud environments, making it possible to take advantage of cloud native technologies and tools to further accelerate software development and optimize the elasticity, resiliency, and performance of software running in the cloud.
However, legacy applications must be modernized as well, or they will hinder your ability to use the cloud to achieve transformative outcomes for IT and the business. Of the six approaches to application modernization (retire, repurchase, retain, rehost, replatform, and refactor), rehosting is the most common first step. That’s because rehosting offers a relatively low-risk way to begin modernizing and reaping early benefits such as lower costs, improved performance, and the ease of operation on a modern platform.
If the thought of rehosting applications seems daunting, that’s understandable. While the risks involved in rehosting are relatively low depending on the criticality of the application, there are nonetheless risks that you should work to minimize. Mitigating those risks requires proper planning, data-driven decision making, and the adoption of best practices such as those in the AWS Well-Architected Framework, which was developed to help companies build secure, high-performing, resilient, and efficient infrastructure for their applications.
This white paper introduces the why and how of rehosting applications on AWS and sheds light on how to apply the five pillars of the AWS Well-Architected Framework to your rehosting effort to optimize your benefits.
“Nearly 60% of North American enterprises now rely on public cloud platforms today, five times the percentage that did just five years ago.... Enterprise cloud spending will soar as core business application modernization takes off.”
Source: “Predictions 2019: Cloud Computing Comes of Age as the Foundation for Enterprise Digital Transformation,” Forrester, November 2018
What Is Rehosting and When Should You Use It?
Let’s start by explaining what rehosting means. It’s a relatively low-risk approach to modernizing an application that involves “lifting” the application as is and “shifting” it over to a new environment without making changes to the business logic, and with only minimal or no code changes to enable the application to run in the new environment.
Rehosting can be as simple as moving an application to a newer version of the same infrastructure or it can be more complex, such as moving from an on-premises server to AWS. Examples of rehosting include:
- Moving an application from an older Amazon Elastic Compute Cloud (EC2) instance to a newer one
- Migrating an application from on-premises infrastructure to AWS
- Moving/migrating an application from a different cloud environment to AWS
Making the decision on how to modernize an application requires deep understanding of the application, the infrastructure it currently runs on, its quality and performance, and the application’s impact on the business. Armed with an in-depth view of the application, you can then decide whether rehosting or some other modernization approach is the best choice.
While there are many compelling reasons for choosing to rehost an application, most often organizations decide to rehost based on common factors and characteristics such as those listed in Table 1 below:
Know the Risks and How to Minimize Them
Even though rehosting is a relatively low-risk approach to modernization, as with any IT project, there are always some risks involved and it’s critical to anticipate and minimize them. Before you begin, it’s important to understand all the possible risks of moving an existing application, which could include:
- Choosing the wrong application to rehost, which prevents you from meeting your project goals
- Losing visibility into application health and performance
- Having some parts, or all, of the application break in the new environment
- Increasing cloud spend beyond expectations because the application inefficiently consumes cloud resources
- Facing unplanned costs from fixing application issues that happen during the rehosting effort
- Not achieving measurable benefits after the rehosting
- Migrating existing problems with the application to the new environment
The good news is that all of the above risks and many others can be mitigated with the right amount of planning and in-depth data derived before, during, and after the rehosting effort.
Take an Informed Rehosting Approach
While successfully rehosting one or more applications requires forethought and planning to mitigate risk and achieve your organization’s business and IT goals, it also takes deep insight into the state of the application.
At New Relic, we call this “informed rehosting” because when you have comprehensive baseline data, you can make informed decisions about rehosting an application that reduce your risk, streamline the effort, and give you the means for measuring success.
One of the critical aspects of informed rehosting is how it impacts the end user. To increase the likelihood of achieving a positive impact (such as improved performance and reliability), you’ll need data that helps you understand:
- The current, “normal” end-user experience
- Ongoing application issues to be prioritized and resolved before rehosting
- Application dependencies
- Brittleness of the application
- Target goals for customer experience
Next, begin gathering data in the context of the AWS Well-Architected Framework. This information helps guide you in prioritizing applications for rehosting and setting goals your organization wants to achieve with the rehosting effort.
Using the information you’ve collected, you can then formulate your rehosting plan by designating:
- Which applications will be rehosted and in what order
- Which issues will be addressed ahead of the rehosting
- What the plans are for testing and user acceptance
- What your technical and business goals are for each application, for example:
- Better end-user experience (improved performance and reliability)
- Lower operating costs or the ability to decommission hardware/data center
- Faster time-to-market with new features
- Improved scalability
Use Data Before, During, and After Rehosting
Data is not only imperative for the planning of your rehosting exercise and decision-making ahead of the initiative, it’s also the best way to gain the confidence and insight to successfully move your application to its new environment. By maintaining visibility into the application, infrastructure, and end-user experience throughout the rehosting effort, you can accelerate your efforts without increasing risk, anticipate and avoid problems, minimize complexity, and maximize the benefits of your cloud environment.
Here’s how to use data at each phase of the rehosting effort:
- BEFORE: Once you’ve selected the applications to rehost, begin monitoring them in their current environment using the New Relic platform to understand application performance, end-user experience, resource consumption, error rates, application uptime, and other critical KPIs. These measurements will serve as baseline metrics for comparison during and after the rehosting. This data also allows you to create a plan for addressing systemic application issues that you’ve identified.
- DURING: As you begin the rehosting process, it’s important to test your applications to make sure the transition isn’t causing any problems or slowdowns. During the rehosting, use New Relic to check the performance of application code, databases, and external services and compare it against the pre-rehosting baselines you established before. This gives you an apples-to-apples comparison.
- AFTER: Once the rehosted applications are running in the new environment, use New Relic to measure your modernization success and identify opportunities to further optimize the applications for performance gains, efficient use of resources, and ease of operation. Comparing before and after baseline data also helps you minimize the amount of time and money spent supporting dual infrastructure while you confirm that everything is working as it should in the new environment.
Early Monitoring Saves Money
New Relic estimates that by monitoring applications during the planning stage and before a migration to AWS, companies can:
- Decommission data centers up to 25% faster
- Reduce average AWS spend by 8% by completing the migration more quickly
- Reduce full-time engineering resources dedicated to the migration by 21%
Read more in this New Relic blog post: Cloud Migration Lightning Talks From New Relic Experts and Partners
Read on to learn how to apply the five pillars of the AWS Well-Architected Framework—cost optimization, reliability, performance efficiency, operational excellence, and security indicators—to your application rehosting strategy.
Pillar: Cost Optimization
Using New Relic helps you stay on track and on budget for your rehosting effort. One example is by reducing the amount of time you need to run dual infrastructure. New Relic also helps by giving you a clear understanding of existing application dependencies, issues, and performance before you begin rehosting so that you spend less time during the rehosting effort dealing with unsurfaced application issues.
New Relic can also help you make better decisions on sizing your cloud instances to avoid wasting budget spend on cloud resources that are underutilized by the application. For instance, with New Relic data you can configure your autoscaling policies properly to manage instance sizes to prevent overprovisioning and unnecessary spend.
According to a report by management consulting firm Bain & Company, 84% of on-premise enterprise workloads are overprovisioned. The report notes that companies that rightsize their workloads to eliminate overprovisioning can cut costs by as much as 30 to 60% in the new environment.1
Use Data to Reduce Cloud Costs
Migration of workloads on 105,000 server instances and 20 terabytes of storage on-premise to the cloud without any rightsizing would increase costs by 22%, while rightsizing those workloads would reduce costs by 36%.
Source: “Rightsizing Your Way to the Cloud,” Bain & Company, December 2018
A reliable system is one that is stable, predictable, and highly available. From an organizational and infrastructure perspective, it’s the ability to prevent failures and quickly recover from any that do occur, with the goal of delivering a great customer experience.
To understand how rehosting impacts the reliability of an application, compare your baseline data to the actual information you gather during and after the rehosting, including:
- Apdex score (user satisfaction)
- Mean time to resolution
- Errors and where they are surfacing
- Reworked tickets
- Any infrastructure-as-code with issues filed
1. “Rightsizing Your Way to the Cloud,” Bain & Company, December 2018
Pillar: Performance Efficiency
Performance efficiency is about using computing resources efficiently to meet system requirements and maintain efficiency as demand changes and technologies evolve. To optimize how rehosted applications use resources, start by focusing on your baseline performance data and compare it against how the application is performing in the new AWS environment. Specifically, you can compare the Apdex score, page load times, slow transactions, and error rates.
Another consideration is locality to users: are you aligned regionally with where your users are located and, if so, what kind of performance are they experiencing in each location? AWS gives you the ability to expand globally in minutes, to locations around the world, to take advantage of different cost structures and geographies for efficiently serving your customers. You can choose to locate resources based on user location and business goals.
You should also review resource consumption, such as CPU and memory usage, in the application’s new environment. Storage is an important consideration as well. Beyond simply understanding capacity, consider read and write patterns to make the best choice of storage option for your application’s usage profile. This information will help you rightsize instances to optimize performance efficiency in AWS.
Pillar: Operational Excellence
Embarking on a rehosting effort is also a great time to start or continue adopting strong practices that support maximizing your cloud investment. According to DevOps research firm DORA, use of the cloud improves software delivery performance, and teams that leverage cloud computing’s essentials characteristics are 23 times more likely to be high performers.2
No matter where you are on your DevOps journey, focus on improving your processes around key DevOps capabilities such as automation, continuous integration, continuous delivery, continuous testing, continuous monitoring, and rapid remediation. Monitoring areas such as AWS CloudFormation and Amazon Virtual Private Cloud (VPC) events as well as tracking how quickly changes are happening in your software will give you indications of how brittle your new environment is and how quickly your team is adopting new processes required for success.
With data-driven DevOps powered by New Relic, you get visibility and detailed metrics to help you maintain performance and availability even as the pace of change and releases increase. New Relic’s deployment tracking, notes, plugins, and other tools help consolidate monitoring into a single dashboard for tracking your process improvements along with your rehosting efforts.
2. “2018: Accelerate: State of DevOps,” DORA, 2018
To learn more about DevOps success and how to measure it, read this tutorial: Guide to Measuring DevOps Success.
Pillar: Security Indicators
Security processes and best practices should be incorporated throughout the software development life cycle to protect information and systems from attack. This life cycle includes rehosting, in which SecDevOps plays an important role in automating security into the continuous integration and continuous delivery model for modernized applications.
Security indicators important for rehosting include the operating systems and their versions, as well as the Amazon Machine Images (AMIs). Security architects will want to know whether an underlying system is out of date and whether there are security alerts filed against it that impact the application.
Data points to consider as you prioritize applications to rehost and prepare to select your new environment include:
- Out-of-date operating systems
- Too many different operating systems and versions being supported
- Instances in the default Amazon Virtual Private Cloud
- AMIs used to create the instances
Armed with this information, you can get guidance from your security team about which hosts should be prioritized for rehosting based on any security issue. To easily find the hosts that need to be updated, use the filter ability within New Relic. If your hosts are in the AWS cloud, you can filter by the additional tags available with the New Relic integration. These include instance type, region, or custom tags like application or state.
Once you’ve completed an application, it’s time to evaluate whether the rehosted application is also a candidate for further modernization. For instance, replatforming (taking a component of an application such as a database and moving it to a managed service) could deliver additional time and resource savings. Refactoring (making code-level changes to take advantage of modern cloud services, architectures, and technologies) could improve the quality, performance, scalability, reliability, and flexibility of the application and enable the rapid delivery of new features.
By using New Relic throughout your continuous modernization and optimization efforts, you can modernize your applications faster, more cost-effectively, and with less risk and begin to reap the benefits of moving to the cloud. As an AWS Advanced Technology Partner, New Relic has been granted AWS Competency in five solution areas (Migration, DevOps, Mobile, Government, Marketplace) based on our technical proficiency and proven customer success.