Getting ready for cloud migration? It’s critical that you dive into the process with a complete understanding of everything your infrastructure comprises. Additionally, it is necessary to know what options are available for the migration of each component.
It’s one of those times when doing due diligence saves quite a lot of time and money.
First things first, the more complex a system is, the more difficult it will be in migration – so, baby steps are your best friends. Approach the task incrementally, audit the system, determine what priority should each module have and create a solid plan for the usage of cloud migration services. You can learn more about them here: https://itoutposts.com/cloud-migration-services/
Next, determine the best approach for each item on the list. Not sure what the approaches are? Here’s a handy list of so-called “six R’s of cloud migration”:
- refactoring
- retiring
- retaining
- repurchasing
- re-platforming
- rehosting
It is highly recommended that most vital services in your system are optimized and refactored. Rest can be handled with whatever approach you find best for the task, starting from easiest and least important items to test the approach on them.
Now, let’s examine each migration strategy on its own.
Refactoring
Refactoring focuses on anything that might make your product better. This is not the same as adding new features to the system and burying legacy solutions deep inside; on the contrary, you will need to take the product apart and look deep inside.
Business needs shift and change all the time, and the product must follow. Sometimes this means that you have to reinvent the logic and build the cloud version from scratch.
This is a resource-heavy cloud migration strategy that may require more expenses and more support. Yet, it also ensures that the service you are migrating will be fully integrated with everything the cloud has to offer (e.g. containers). Refactoring is a long-term investment, so you have to choose wisely where to apply it.
A popular way to use refactoring during the migration process is by breaking a solid system into several smaller modules in the cloud, allowing them to function and develop independently.
Retiring
Let’s keep this short: the final day for some modules in your system is long overdue. Decommission pieces you no longer require. If their functionality is still needed somewhere, consider adding these features to other components. Your dev team sets time aside at least once every month to review their project backlog and remove tasks that are no longer feasible or relevant. Follow their lead and groom the whole infrastructure as well.
Retaining
We know, we know, nobody likes legacy code. But sometimes it remains the only way to retain certain components in the system without spending years reinventing them from scratch. Some modules may be kept due to legal regulations or security reasons. Thus, you might have to consider building a hybrid system, where a part of it is still stored locally while the majority is already in the cloud.
Repurchasing
In other words, adoption of a new paid service when moving to the cloud. As an example, customer support in your company might be exhausted after a decade of dealing with a slow CRM system that takes forever to load one ticket. Increase their efficiency by switching to a better cloud-based CRM.
Re-platforming
Replatforming is somewhat akin to refactoring, except it does not go as deep. Change APIs used in your system, optimize processes, make improvements to the middleware as you move to the cloud, making your infrastructure more flexible and cloud-compatible.
This approach does require some modifications to the codebase, so don’t forget to inform the QA team – they will need to retest the whole system extensively before you can take advantage of cloud migration services.
In a way, replatforming is the golden mean between simply dumping everything into the cloud as is and rebuilding the infrastructure from scratch. Thus, it is a highly recommended approach.
Rehosting
This is the aforementioned “dump everything into the cloud” strategy. Just move every piece that can be reasonably moved to a cloud hosting and don’t make any changes. It might be a good start for a relatively simple system, but if it is complex and not particularly cloud-friendly, you might end up spending on hosting services more than you will receive back in benefits.
In conclusion, it will give you time to revise the migration strategy and will free up some resources within the company, but do not treat it as a final decision, never to be revisited.