Prologue
Organizations use Amazon Web Services (AWS) to store, manage, and access the rapidly increasing quantities of data that accompany digital innovations for evolving customer needs. Enterprises such as GE, the Coca-Cola Company, BP, Enel, Samsung, NewsCorp, and Twenty-First Century Fox have successfully migrated their on-premises workloads to AWS. By doing so, they benefitted from IT cost savings and improved productivity, business agility, and operational resilience.
While there are various ways to approach cloud migration and transformation, the recommended approach is to first migrating applications to the cloud, and then modernize. With this “move and improve” migration strategy, the first step is to rehost applications and data on AWS with minimal changes, so that you can quickly access cloud benefits such as increased security, elasticity, and cost savings. For example, rehosting applications on AWS typically yields an initial TCO savings of 30-40%. After your applications are running on the cloud, you can more easily improve and modernize applications by leveraging cloud-native technologies such as container services and serverless services to achieve additional business and technology benefits.
Getting to the cloud quickly is particularly important if you have strict, time-sensitive timelines for your project, such as a deadline for a data center exit. It can also be helpful if you need to maintain normal operations throughout the migration process.
1. Evaluate migration tools based on desired business outcomes
Migrating applications process begins with assessing your organization’s cloud readiness and determining the desired business outcomes from your migration, such as infrastructure savings or improved agility. Your defined outcomes for the migration can help you prioritize migration activities and make strategic decisions as your project moves forward, including which migration tooling to use. The tools you choose during the early assessment and discovery stages can help you match your business drivers with a migration strategy for each of your applications and servers, in order to create an operational plan that is specific to your workload portfolio.
A general principle you can follow when you choose migration tools is to automate as many processes as possible. For example, when you start building your business case, you can use Migration Evaluator to automate the assessment of your organization’s current resource usage pattern and the projected costs associated with rehosting your environment on AWS. You can also perform a migration readiness assessment with AWS Migration Acceleration Program (MAP). MAP is a comprehensive program that includes guidance and automated tools to reduce costs and accelerate enterprise migrations.
After you have assessed your current environment, develop your migration plan further by creating a detailed map of the entire repository of resources in your current environment. You can use an AWS tool such as AWS Application Discovery Service to automate discovery of application dependencies, usage, and configuration. You can also implement AWS Management and Governance services to help you manage cost, compliance, and security requirements during your migration process.
The recommended AWS tool to quickly rehost applications is AWS Application Migration Service (AWS MGN). This service minimizes time- intensive, error-prone manual processes by automatically converting your source servers to run natively on AWS. It further simplifies migration and reduces costs by using the same automated process to rehost a wide range of applications without changes to applications, their architecture, or your migrated servers.
For large-scale migrations, you can use the Cloud Migration Factory together with AWS Application Migration Service to automate and orchestrate additional migration processes. The Cloud Migration Factory also helps integrate data flow efficiently between various migration tools.
In some cases, you may identify that help is needed from an expert who is familiar with one or more of the tools you select. An expert from outside of your organization can help perform specific aspects of your project or can help train your IT staff. This could include assistance from AWS Professional Services or an AWS Migration Competency Partner.
2. Create a detailed migration plan
After you have determined which resources you will migrate to AWS, divide your workload repository into groups. The detailed migration plan you create for your workload groups should include the deadlines and milestones you will reach as you proceed with your project. It should also include your technical requirements at each stage, the IT skills needed, the tools and processes you will use, and the responsible teams and decision makers. Your plan should include adequate time for testing and validation, and time to evaluate the results of each step.
Depending on the size of your IT organization, you might have different people or teams that are responsible for various operations in your environment, such as applications, networking, security, and infrastructure. Some organizations create a cross-functional core migration team that is responsible for developing policies, defining migration tools and processes, and communicating to stakeholders and third parties. As you create your plan, it’s important to align all business and IT stakeholders and decision makers, so that teams and individuals know how they will be collaborating and have clear escalation paths before implementation.
Keep in mind that it’s common for a migration plan to change during the migration process due to unknowns that arise. This could include discovering systems in your environment that require further investigation or production incidents that cause delays. By building time into your plan to react to unknowns, you are more likely to meet your migration project deadlines. If you will be using new or unfamiliar tools, also account for a learning curve when you plan your project timelines.
3. Validate technical requirements
A mapped inventory of resources in your current environment can help you determine the technical requirements for your applications to run in the cloud just as they run currently. Check your technical requirements early to allow time to address necessary changes. For example, you might need to make firewall configuration changes to allow on-premises data to be replicated to AWS.
You should also measure the throughput of your network link for the migration. Your actual network throughput might be different from the declared throughput due to bottlenecks caused by firewalls, routers, or other reasons. Insufficient network throughput slows your data transfer rate, which could put your cutover deadline at risk. This could become a significant issue if your network throughput is so narrow that larger applications or databases cannot be migrated at all without significant downtime. To minimize downtime during your cutover window, measure your actual throughput in a way that mimics how your migration tool sends data. This will help you determine if network optimizations are required.
In addition, make sure that you have the necessary storage and compute capacity in your AWS Region to run your workloads. You should also check that all of your operating systems are supported in your AWS Region, and determine if different processes are necessary to migrate different operating systems. Since licensing agreements can sometimes be different for on- premises and cloud environments, also confirm that your current software licenses allow you to run your workloads on AWS. Work with your vendors to determine if your existing licenses are cloud-ready, or if you will need to renegotiate licensing contracts or procure new licenses.
4. Start small, then ramp up
A migrating applications wave is a set of workloads that you will cut over at the same time. Each wave should include applications and resources that are designed to work together. Grouping your workloads into waves allows you to test each wave individually. This can help you avoid being obstructed by dependencies between resources that are migrated as part of different waves. Implementing your migration in waves also allows you to quickly address any issues that arise, to limit their impact on your project.
Your first migration waves should be small, to leave yourself room for error. Even highly skilled IT teams that are familiar with all of the migration tools can benefit from small initial waves and flexible initial deadlines. By building in time to learn from mistakes, you gain familiarity and expertise in your tools and technical processes, while also meeting your project deadlines and milestones. It can also facilitate improved communication and coordination between different areas of your organization.
How small you start can depend on factors such as your experience with the migration tools and the complexity of your applications. Your first two migrating applications waves should typically include around 10-20 servers. Evaluate the success of these initial waves and apply any adjustments necessary to continue your project as planned. Increase the size of your migration waves according to your desired rate of progress and available resources. Large-scale migration projects typically include hundreds of servers per wave.
After you complete a migration wave, perform checks such as validating operations integration and governance and compliance requirements. You can also implement additional AWS tools to monitor costs and resource utilization. This can help you determine whether you are on track to meet your IT and business goals. It can also help you define improvements for future waves. For example, you might discover when you complete a migration wave that you can automate additional processes, or you might identify unused resources that you can delete or retire to further reduce costs.
5. Test everything before migration cutover
Testing is an essential part of a successful migration. Your migration plan should include testing all of the source servers in a given migration wave at least two weeks before your cutover window. This timeframe will help you address any issues that arise without needing to postpone your planned migration cutover window.
Migration tests should validate that all of your applications launched as expected in your AWS account and that you have connectivity to your launched workloads. You should also perform acceptance tests on your applications. If you need to maintain normal business operation during this process, make sure that your migration tool allows you to test without disrupting your source environment.
6. Optimize your migrated applications
Perform a data-driven evaluation of the productivity and cost benefits you achieve when you complete your migration. Analyzing the results of your migration is helpful for determining which future optimizations can provide your organization the greatest value. With your applications already running on the cloud, you can quickly access all of the technologies available on AWS to further optimize performance, cost, security, and resilience.
For example, The University of the West Indies, Open Campus (UWIOC) estimated that by the end of the first year after its migration, it would achieve a 50% TCO reduction compared to its on-premises environment. After running on AWS for just six months, UWIOC identified the potential for even greater cost savings by using additional AWS services. This included utilizing new storage and instances using AWS Graviton processors and further right-sizing instances using AWS Compute Optimizer. “Adopting AWS Application Migration Service was key to highly automate the university’s migration and accelerate its digital transformation,” explains Tommy Chen, the Campus Chief Information Officer at UWIOC.
You can modernize the applications you rehost on AWS in parallel or one application at a time, to take advantage of AWS services such as Amazon Relational Database Service (Amazon RDS), Amazon Aurora, Amazon DynamoDB, Amazon FSx, Amazon Elastic File System (Amazon EFS), Amazon Elastic Kubernetes Service (Amazon EKS), AWS Lambda, and AWS Fargate.
Summary
You can migrate applications, websites, databases, storage, and physical or virtual servers from an on-premises environment, hosting facility, or cloud infrastructure to AWS. A “move and improve” approach allows you to migrate your applications to AWS with minimal changes, to rapidly gain business and technology benefits from the cloud. Then you can access the full range of AWS capabilities to improve these applications and gain additional benefits, such as added features, scale, or performance. Visit AWS Application Migration Service to see how you can start quickly moving your applications to the cloud.