Cloud computing is not something brand new in the business world. Although we are still very far from the day when all businesses get on the cloud, the number of adopters is increasing fast, especially in the contemporary era where remote work is becoming the norm.
Cloud migration makes it possible for secure access to data from anywhere, as well as enables businesses to reduce costs and streamline processes. Despite the fact that many companies are looking to migrate their legacy data to a cloud environment, a lot of them have not fully grasped how migrating to the cloud really works.
We have written an article to explain what cloud migration is in simple terms, and in this article, we will go on to explain to you how migrating to the cloud works. Let’s jump right into the details!
What does migrating to the Cloud Require?
Migrating to the cloud requires a strategy to be successful. A cloud migration strategy is a detailed plan that a business follows to move its on-premise data and applications to the cloud.
Although migrating data to the cloud sounds as simple as moving an object from one place to another, a cloud migration project is a daunting task that requires lots of understanding and preparation.
The ultimate goal of a cloud migration strategy is to find out the most efficient and effective way to move data to the cloud. This means you’ll need to take into consideration the benefits and challenges of many potential migrating strategies to decide which one is best suited for the unique needs of your business.
So, what are the cloud migration strategies that a business can employ?
The 6 Cloud Migration Strategies: 6 R’s
These are the most commonly used strategies for migrating to the cloud. Each of them has its own level of complexity and required investment, as well as its own advantages and disadvantages. Understanding what to expect from each strategy will allow you to choose the right migration strategy for your needs.
1. Rehost
The rehosting strategy, also known as lift and shift, involves bringing on-premise data and placing it onto a cloud environment without changing the existing code.
Advantages:
Rehosting is the cheapest and simplest way to migrate to the cloud. It requires minimum time and expertise and mitigates the risk of breaking anything by not changing the existing code. It also creates less disruption and fewer learning curves in your business operation because it simply takes what your business is doing and replicates it in the cloud.
Disadvantages:
Although rehosting is a simple approach, failures due to complex application dependencies or long outage periods can occur. If a virtual server goes down, your application goes down with it, similar to the behavior of a traditional on-premise server. Additionally, even if a rehost cloud migration succeeds, you won’t be able to take advantage of all the powerful cloud-native capabilities, because the rehosted applications are not cloud-optimized to allow for distributed workloads like cloud-native applications are.
Use Cases:
Use Rehost if you’re:
- new to the cloud
- migrating with a deadline
- migrating off-the-shelf applications
2. Replatform
Replatforming is one level beyond cloud rehosting. In this strategy, although the applications are going to stay generally the same, they do get optimized to some extent before moving to the cloud to better suit the cloud environment.
Replatforming often involves changing and upgrading specific components of an application. These changes enable the application to function more efficiently in the cloud and often result in better scalability, user experience, and security. Due to this little tweak prior to moving to the cloud, re-platforming is also called Lift, Tinker, and Shift.
However, this modification step doesn’t mean that re-platforming is inherently better than rehosting. If a company’s infrastructure is already compatible with the cloud, it may find that it only needs to rehost.
Advantages:
Replatforming doesn’t require a large investment in time or money. The re-platform strategy allows you to improve a part of an application while the rest of it remains operational in the cloud.
Disadvantages:
Replatforming applications can get out of hand at times. It can vary from making just some small changes to the application or service up to a complete re-architecture of some components, so you have to carry some risks such as errors in the code or configuration when it comes to re-platforming. Therefore, if this is the right strategy for your cloud migration, you need to establish beforehand a thorough plan of the features you need to change, and those changes should be very carefully implemented.
Use Cases
Use Replatform if you want to:
- migrate with a time-crunch
- migrate a sophisticated on-premises app with minor tweaks for cloud benefits
- want the benefits of the cloud without refactoring the app
3. Refactor/Re-architect
Refactoring/re-architecting is one level beyond re-platforming. It involves rewriting an application to make it cloud-native; in other words, refactoring can make major disruptive changes to the fundamental code. This strategy is more complex because the external interface of the application often needs to stay the same (to minimize disrupting users’ experience) despite major changes to the application code.
Businesses select this strategy when they need changes on many fronts, such as features, performance, and scale, which cannot be achieved with minor changes to the existing architecture.
Refactoring makes sense when the existing application is resource-intensive, runs on an outdated legacy system, or carries intensive data processing because refactoring the application for the cloud will result in higher performance and save more on billing costs than rehosting/re-platforming it.
Advantages:
Refactoring allows applications to take advantage of cloud-native capabilities (microservices architecture, serverless, containers, function-as-a-service, and load balancers). From a long-term perspective, it is much more cost-effective to refactor applications than to use other strategies.
Disadvantages:
Refactoring has higher initial costs and is more time-consuming than other strategies. Also, refactoring isn’t for beginners as it requires advanced coding, automation, and DevOps skills to implement this strategy correctly.
Use Cases
Use Refactor if:
- There is a strong business incentive to add scalability, speed, and performance.
- An on-premise app is not compatible with the cloud.
4. Repurchase
Repurchasing (also called Replacing or Drop and Shop) is the strategy in which the legacy application is fully replaced by a SaaS solution that provides the same or similar capabilities. A typical example of repurchasing is replacing an outdated on-premise CRM software with a SaaS solution such as SalesForce or HubSpot.
The complexity of repurchasing heavily depends on the requirements and options you have. A SaaS replacement for an on-premise product from the same vendor can provide an option to quickly migrate data with minimum effort or even automatically. This, however, might not be the case if you switch to a product from a different vendor
Advantages:
Since the SaaS product you replace your legacy application with is already configured for the cloud, you don’t need to spend resources on configuring it yourself. For that reason, repurchasing can be cheaper than refactoring.
Disadvantages:
While you can save on the investment that rehosting/re-platforming/refactoring requires, you may need to allocate that resource to training your staff on the SaaS replacement if it’s an unfamiliar tool. Also, the SaaS replacement might not have some features of your legacy application, and if those features happen to be essential, repurchasing may no longer be a viable option.
Use Cases:
Use Repurchase if:
- You find SaaS solutions for your finance, accounting, CRM, HRM, ERP, email, CMS, etc. more beneficial than your current software.
- Your legacy app isn’t compatible with the cloud.
5. Retain
Retaining, also referred to as revisiting, is reviewing some critical applications/portions of your legacy data that require a high level of refactoring before migrating them to the cloud. Eventually, you come to realize that some applications are more suitable to stay on-premise than to go to the cloud, so they are retained in your on-premise infrastructure. In some other cases, applications are retained due to latency requirements, regulatory constraints, or it’s simply not cost-efficient.
Advantages: You don’t have to pay for the migration of these applications to the cloud.
Disadvantages: When applications are retained on your on-premises servers, you’ll likely need to set up APIs for those applications to be able to communicate with your cloud-based apps without disruptions. Depending on the complexity, this process can be expensive and time-consuming.
Use Cases
Use Retain if:
- You’re heavily invested in your on-premise applications.
- You adopt a hybrid cloud model during migration.
- You want to revisit an app later.
- A legacy app works well on-premise and is not compatible with the cloud.
6. Retire
Retiring means you get rid of applications that are no longer needed in your IT arsenal. If an application is not worth migrating to the cloud, it can either be eliminated or downsized. This is when you need to explore all your applications in terms of their uses, dependencies, and costs to the company.
According to AWS, as much as 10% of an enterprise IT portfolio is no longer needed when migrating to the cloud and can simply be turned off.
Although retiring an app is easy, deciding which apps to require can be a complex process. This should be in the initial stages of planning so you can reduce the scope of applications to migrate and save on costs.
Advantages:
The retiring strategy allows you to free up space in your on-premises servers and reduce costs. Also, retiring obsolete business applications can deliver significant cost savings, as app maintenance often requires substantial amounts of budget.
Disadvantages:
You may need to spend on building a new app to replace the retired one.
Use Cases
Use Retire if:
- An app is redundant or obsolete
- You decide to refactor or repurchase the app.
- A legacy app provides no real value anymore and is not compatible with the cloud.
5 steps for a Successful Cloud Migration
Step 1: Know your existing Digital Assets
This is the first and fundamental part of a cloud migration process. This is when you look deeper into your existing data and applications in terms of cost, performance, size, complexity, and internal dependencies, which will be then used to decide your best-suited cloud migration model and strategy.
Start this step by auditing your digital assets to:
- Make a list of existing apps.
- Identify which apps no longer bring value.
- Figure out which apps can bring more value when in the cloud.
Step 2: Establish your Success Criteria
Establishing a clear KPI will allow you to evaluate the success of your cloud migration, as well as direct everyone in your team in the same direction. You need to compare some before and after ratios to know if your migration is successful. Here is a list of vital metrics to pay attention to:
- Average response time. How quickly the cloud server returns a particular result under normal operating conditions.
- Maximum response time. The most extended time of response from the server under non-standard conditions.
- Total uptime. The percentage of time a particular app is in operation in relation to the entire work time of the system.
- Error ratio. The percentage of returned errors to the total number of requests.
- Error types. The types of detected errors, warnings, and exceptions that occur.
- Network delay. The time between a particular request and response from the server.
To move the workload successfully, the new cloud-based version of your data must match or exceed the performance of the on-premises original version while running at a lower cost; otherwise, the whole migration effort will not be worth it.
Step 3: Choose a Cloud Provider
After you have examined your existing digital assets and established your goals, pick a cloud migration model (public, private, hybrid, or multi-cloud) that allows you to achieve your target. You can get an in-depth understanding of cloud migration models in our Cloud migration simply explained article.
After that, choose a cloud provider that suits you best. The most popular providers are Amazon Web Services (32% market share), Microsoft Azure (18.6% market share), and Google Cloud Platform (8.5% market share). These providers provide all cloud models you might need, as well as have convenient price calculators to estimate the cost of their services.
Step 4: Choose the right Migration Strategy
The six most common migration strategies, also known as the 6 R’s, are explained in the previous section about what they are and when they are used. You can choose one that suits you the most based on your needs and goals.
Step 5: Migrate
You’ve gone through all preparations at this point, it’s time to start the migration. At this stage, you’ll move your data to the cloud infrastructure you’ve chosen.
Final Words
If your company doesn’t have the expertise to execute your cloud migration project in-house, it’s best to find a good cloud migration service provider to help you.
What you should do is hire a cloud migration vendor who has not only the technical expertise but also a proven track record and managerial expertise. For you to have a successful cloud migration project, your vendor must have an in-depth understanding of all aspects of cloud migration, such as cost, tools, compliance, security, best practices, and cloud-skill requirements.
If your company doesn’t have the expertise to execute your cloud migration project in-house, it’s best to find a good cloud migration service provider to help you.
CMC Global is among the top three cloud migration service providers in Vietnam. We operate a large certified team of cloud engineers specializing in Amazon AWS, Microsoft Azure, and Google Cloud who are able to migrate your legacy assets to the cloud in the most cost-effective way and in the least amount of time.
For further information, fill out the form below, and our technical team will get in touch shortly to advise!