Constructive Cloud Migration Best Practices You Should Know in Advance
Cloud migration can be a challenging endeavor that depends on many factors that govern your business processes. In this article we have collected some of the key points that can be addressed during the initial stages of your migration to cloud and that can be tracked throughout the duration of the project to help you overcome most of the common cloud migration challenges.
After reading this article you will become familiar with the People, Technology, and Process perspectives of cloud migration best practices.
Businesses that are up-to-date with the current state of the market can easily come to the conclusion that they no longer have a choice of whether to migrate their applications to the cloud or not. Rather, they are now facing the question of how this migration should be conducted. Today, relying solely on in-house infrastructure can limit your business’ growth, stall digital transformation, and slow down adoption of new tech stack. These and other limitations of on-premise infrastructure can all contribute to falling behind the competition. In addition, in-house systems get more expensive to implement, maintain, and ensure security as you scale up.
Table of Contents
Cloud migration best practices recommended by AWS experts
AWS has a publicly-available series of in-depth documentation that focuses on migration to AWS Cloud. This documentation outlines the best practices for cloud migration to AWS and provides use cases from customers across various industries, like financial services or healthcare, as well as real-life customer insights learned from migrating to AWS cloud.
The strategies described in this article are based on AWS recommendations, and can enhance a migration process at any stage. However, we assume that you already have a 100-level introductory understanding of AWS services and that you’re aware of the AWS recommended migration process. This outline of the AWS cloud migration best practices is also based on Romexsoft’s experience helping a wide range of customers in the role of an AWS Professional Services Provider.
If you want to migrate to AWS cloud, or are already invested in an AWS cloud migration journey, our certified experts would be happy to assist you. You can send us a message via our website or fill out the contact form at the end of this page.
The following best practices of cloud migration are based on data collected from various AWS customers. AWS divides the best cloud migration practices into three main categories:
People perspective of cloud migration best practices
Identify a single-threaded leader
Single-threaded leaders are individuals who are fully committed to solving a single business challenge; they are empowered to make decisions, and are dedicated to and accountable for the project. Identifying a single-threaded leader in a cloud migration project is important since it can help avoid silos and maintain consistent priorities.
Align senior leadership
It’s important that project teams are aligned in terms of the success criteria of the cloud migration project. Migration planning and implementation can be accomplished by a small, dedicated team. However, cloud migration challenges might arise when defining the application migration to cloud strategy or performing peripheral activities. To overcome these obstacles, you might need to engage different areas of your organization, including the following:
- Third-party vendors
Direct action from application owners, project team alignment, and a clear vision of the single-threaded leader are important elements of a successful cloud migration project.
Create a cross-functional Cloud Enablement team
It’s critical that the organization is actually able to work in the cloud during the migration. Creating a Cloud Enablement Engine (CEE), which is a team that ensures that the organization is ready to migrate to AWS, can help reach this goal.
This team should be cross-functional, and needs to include representatives from the operations, infrastructure, security, and applications teams. The CEE will be responsible for the following:
- Policy development
- Stakeholder alignment
- Definition and implementation of tools, processes, and architectures that establish the cloud operations model
Define migration project requirements in advance
Identify the involvement of the teams that are not at the core of the migration project, paying special attention to the applications teams. Their knowledge, skills, and ability to identify errors will facilitate the migration project, especially at its later stages.
We recommend approaching the migration to cloud services as an application migration project, rather than an infrastructure migration project. The infrastructure migration approach can lead to alignment problems, which can be avoided by having the applications teams involved in the migration plan validation and testing stages.
We also recommend considering the applications teams input when selecting the migration strategy. Choose a strategy depending on the availability of the product owner and of the applications teams, where certain strategies like replatform call for more involvement of the owner, while others like rehost rely more on the application team.
Check licensing compliance when migrating workloads
Ensure that you are complying with all of your licensing when migrating to the cloud. Your license agreements might have to change when you move in-house products to the cloud. So, make sure to renegotiate with your vendors in advance, preferably as soon as you define the scope of your cloud migration project, to avoid unnecessary delays and adjust your migration plans, if necessary.
Train teams to use new processes and tools
To reduce migration delays, invest sufficient time in training your teams on how to use the new processes and tools provided by migrating to the cloud. You can start outlining what kinds of training might be necessary right after the migration strategy is defined. We recommend letting your teams experiment with the new tools in a hands-on fashion, especially in a large migration to cloud, to ensure they are familiar with those tools in time the migration is completed.
Technology perspective of cloud migration best practices
Technology provides a great foundation for accelerating migrations. For example, the Cloud Migration Factory solution by AWS is focused on how to provide end-to-end automation for migrations.
The overarching principle is to look at areas of automation wherever possible. If you have thousands of servers in scope, performing tasks manually can be a costly and time-consuming effort.
To speed-up a cloud migration, look for technology solutions and try to automate as many areas as possible. To achieve that, you can employ tools, such as AWS Cloud Migration Factory, that focuses on end-to-end migration automation.
In general, the tools listed are among the most common ones used in cloud migration:
- Migration implementation
- Configuration management database (CMDB)
- Inventory spreadsheet
- Project management.
You will use these tools throughout different stages of migration, and you should select them based on your business goals and time constraints. After selecting the migration tools, make sure that your migration team possesses the necessary skills to use them, and allocate time for training if necessary.
Automate migration discovery
Discovery is an important part of understanding the scope of the migration to cloud and developing a migration strategy. Migration metadata, collected by an automated process and compiled into a migration strategy decision tree can greatly shorten the discovery process.
Automate repetitive tasks
One of the most efficient cloud migration practices is to build a migration factory that adheres to your business goals and migration requirements. It will help you to automate or even eliminate the repetitive and manual tasks necessary for the migration by using a framework with a standardized dataset.
Automate tracking and reporting
Another great practice for cloud migration is to build an automated system that will generate reports and track KPIs (key performance indicators) of your migration project. The live data provided by this system will help stakeholders like leadership, architects, testers, application teams, infrastructure teams, and others, to perform their roles and make decisions more efficiently.
Choose migration tools
Selecting the right tools for your migration project is very important, and is worth paying special attention too. Carefully evaluate the tools available on the market, even if it involves licensing fees, as well as consider the tools that are already implemented in your on-premises systems.
Build the landing zone during the pre-migration phase
We recommend developing a thought-through landing zone for the architecture you are migrating before you start the migration itself. Having a completed and validated environment to migrate to will allow your migration team to fully focus on migrating the workloads and avoid disruptions. The landing zone should be complete with the necessary controls, like security, monitoring, governance, and operations.
Align prerequisite activities
It is also important to synchronize all of the activities that serve as prerequisites to cloud migration, like firewall changes, to avoid unnecessary long lead times. Identifying the prerequisites and allocating the correct resources can greatly speed up the migration to cloud services process by avoiding delays.
Implement post-migration checks
Don’t forget to conduct post-migration validation checks that go over cost optimization, compliance, governance, operations integrations, and other aspects of your project. Assess the migrated workloads for bottlenecks and inefficiencies and gather insights that you can apply to future migration waves.
Process perspective of cloud migration best practices
This perspective will focus on the best practices that can help you develop your own unique processes for migration projects. Processes are used to bring consistency and order into your project. At the same time, you will need to constantly review and adjust your processes to identify roadblocks and introduce improvements. Such an approach to migration through ever-evolving processes will elevate your project to a different level.
Identify business drivers
Your application migration to cloud journey should be based on your business goals. This means that you should select migration patterns depending on what you need to achieve business-wise. For example, you should be more inclined to rehost your workloads if you need to quickly vacate a data center, because of the speed the rehosting approach provides. Or, as a counterexample, if time is not an issue, but your workloads start feeling like they need an overhaul, you can take the time to redesign them completely into a serverless application.
A migration project requires input from many stakeholders, so it’s important that all of the key players in your cloud migration project are synchronized on the business objectives. Make sure that the stakeholders like application owners, network teams, sponsors, database administrators, and others, are aware of the business goal the migration is pursuing, and have sufficient access to metrics that measure target business outcomes.
Define a clear escalation path to help remove the blockers
Cloud migration projects usually involve multiple stakeholders, all of whom are driven by different priorities. Such a situation is completely normal, especially if you are migrating applications that have been hosted in-house for many years, or even decades.
Managing the stakeholders and their priorities can be challenging, and is further complicated by migrating hundreds or even thousands of applications in the scope of one cloud migration project. Attempting to accomplish this feat on a tight schedule and with a strict budget becomes even more challenging. Creating an escalation matrix, documenting the business goal, and adhering to a well-defined roadmap will help remove the blockers outlined above. Doing so can save you a lot of time and synchronize your teams around the same goal.
Minimize unnecessary change
Pay attention to the business goals you want to achieve by cloud migration, and do not overextend the project. While it is common for companies to take full advantage of cloud migration and utilize all the newly-available services by rewriting everything, sometimes this can be too far away from your business goal.
We recommend keeping as close to the business goal and minimizing any changes. However, you can document all the improvement points you find along the way and work on implementing them after the completion of your migration project.
Document end-to-end processes
Keeping detailed documentation of everything that transpires in a cloud migration project is extremely important in educating your stakeholders about the process of the migration and their roles and responsibilities in the migration. This documentation can also help you discover issues and roadblocks in your migration processes.
While documenting your cloud migration, make sure all of the processes are clearly understood, and that all dependencies, integration points, and interactions with external vendors are included.
Document migration patterns and artifacts
Keep track of the references, documentation, runbooks, and patterns that can be reused. This approach will greatly shorten the time it will take to scale up your migration. This will also be helpful in future projects.
Some of the examples of such artifacts are:
- A standard migration process
- Network diagram style
- Formatting standards
- Application architecture standards
- Application security standards
We recommend setting up centralized ownership of these artifacts with clear processes for submitting recommendations and changes. Also make sure to communicate all of the changes to these artifacts to your teams and stakeholders on a regular basis, to improve communication and consistency in your cloud migration project.
Establish a single source for migration metadata
When you are thinking of how to plan a migration to cloud, establishing a source of truth is important to keep the various teams aligned and enable data-driven decisions. When you start this journey, you might find numerous data sources that you can use, such as the configuration management database (CMDB), application performance monitoring tooling, inventory lists, and so on.
We have already mentioned a couple of times how keeping your teams aligned across your business goals is important for planning a migration to the cloud. Your teams should have the same source of migration information and metadata to rely on to make data-driven decisions.
If your applications have many sources of information to collect metadata from, define which sources and under what circumstances your teams should use. Otherwise, if your metadata resources are scarce, you will need to create mechanisms to collect the data you need. For this, you might need to use discovery tools or survey your IT department.
Complete your migration in waves
We believe that one of the most important best cloud migration practices is completing your migration in so-called “waves”. Your first wave should be small and low risk, migrating a single, preferably small (up to 10 servers), application. Increase the size and velocity of your migration waves as you succeed with the previous ones and build confidence in your processes. Try to migrate the less complex and risky applications earlier in the migration so that your migration teams gain as much experience as possible before attempting the migration of your core applications.
This approach safeguards the migration and contributes to speed, because the experience gained in the earlier waves allows the teams to adjust and improve their procedures as early as possible. It can also help your teams develop automation algorithms, which can help shorten the discovery and cutover processes in the later migration waves.
Plan migration waves ahead of time to ensure a steady flow
It goes without saying that the planning stage is one of the most important in migrating your applications to the cloud. Planning can improve your team’s ability to adapt to changes, and makes them better at decision-making and forecasting. Plan out your migration waves ahead of time so that your project can move smoothly and your team can become more proactive in a well-defined environment.
Separate wave planning and wave implementation
There is one great advantage to keeping your wave planning and wave implementation teams separate: they can work at the same time. With the help of good communication and coordination practices, the two teams can overcome challenges presented by misalignments, like:
- not having enough data collected for the next migration wave
- not having a buffer between the planning stage and the implementation stage of a wave
- not having the implementation team involved in the planning process
Make sure to plan out migration waves ahead of time, create sufficient buffers after the planning stage for the implementation team to prepare for the next wave, and have the two teams synchronized on the common business goal.
This will help the teams to collaborate better, avoid rework in the future, and will speed up the cloud migration process overall.
Reduce cutover windows
Having cutover windows that are too frequent or too flexible can actually reduce their value. Setting up a cutover window takes around the same time no matter how many servers are in it, meaning that the setup time for one big cutover with many servers will be much more efficient. Instead of having 20 cutover windows each with 5 servers in them, try having just two cutover windows with 50 servers each instead. This will reduce some of the scheduling burdens and remove a lot of unnecessary delays.
All business owners know how important it is to “fail fast” – to get over your losses and draw valuable insights from them as soon as possible instead. Apply this approach to your cloud migration journey: you should expect to meet roadblocks on the way, and you and your teams need to be prepared to identify roadblock in small waves fast and learn from them, so that the lessons can be applied in the future during the larger and more important migration waves.
You should expect the first waves of your migration to cloud to be slow due to some of the common issues. You can expect to see the following at the beginning of your migration:
- Your teams are not performing at maximum efficiency because the members are adjusting to the new processes and to each other.
- The people are learning to use the numerous new tools that are required in a cloud migration.
- It will take time to polish up your processes through a fail-learn-iterate framework.
Finally, don’t forget to encourage your teams along the way, especially at the beginning of the cloud migration. A migration to the cloud is oftentimes a very complex and unique event. Try to have your teams understand that some failures are just part of the migration process, and that the discouragement should not become a roadblock as the migration goes on.
We recommend holding retrospective lessons-learned sessions after each migration wave. Having such lessons at the end of a project is a more common practice, however a cloud migration is a project that requires the teams to apply the knowledge they gained while working on a previous wave right away.
For your waves to increase in velocity and efficiency, you need to constantly improve and evolve your processes, tools, and teams. Hold retrospective sessions at the end of each wave and put emphasis on how looking back, openly discussing, and drawing insights fast is important for a successful migration to cloud services.
Because these retrospective sessions are so important to the successful completion of your cloud migration project, make sure to include them in the planning session of each wave of your migration.
Constructive cloud migration best practices FAQ
Cloud migration best practices involve a combination of people, technology, and process perspectives. From the people perspective, it's important to identify a single-threaded leader, align senior leadership, create a cross-functional Cloud Enablement team, define migration project requirements in advance, check licensing compliance, and train teams to use new processes and tools. From the technology perspective, practices include automating migration discovery, automating repetitive tasks, choosing the right migration tools, building the landing zone during the pre-migration phase, aligning prerequisite activities, and implementing post-migration checks. From the process perspective, best practices include identifying business drivers, defining a clear escalation path, minimizing unnecessary change, documenting end-to-end processes, documenting migration patterns and artifacts, establishing a single source for migration metadata, completing your migration in waves, separating wave planning and wave implementation, reducing cutover windows, failing fast, and being retrospective.
A cloud migration decision tree is a tool that helps organizations make informed decisions about their cloud migration strategy. It's used during the discovery phase of the migration process to collect metadata about the applications and workloads that are being migrated. This metadata is then used to determine the best migration strategy for each application or workload, taking into account factors such as the application's architecture, performance requirements, security requirements, and business criticality. The decision tree helps to streamline the migration process and ensure that each migration decision aligns with the organization's business goals.
The ideal cloud migration team structure includes a cross-functional Cloud Enablement team that ensures the organization is ready to migrate to the cloud. This team should include representatives from the operations, infrastructure, security, and applications teams. The team will be responsible for policy development, stakeholder alignment, and the definition and implementation of tools, processes, and architectures that establish the cloud operations model. It's also important to have a single-threaded leader who is fully committed to the cloud migration project and is empowered to make decisions.
Cloud migration patterns are strategies or approaches used to migrate applications and workloads to the cloud. These patterns can include strategies such as rehosting (also known as "lift and shift"), replatforming, refactoring, repurchasing, retiring, and retaining. Each pattern has its own advantages and considerations, and the choice of pattern depends on factors such as the application's architecture, performance requirements, security requirements, and business criticality. These patterns are documented as part of the cloud migration planning process, and this documentation serves as a guide for the migration team during the migration process.