You’ve made a decision to move from on-premise to the cloud. Now it’s time to get the ball rolling and take steps to migrate your data successfully. Where should you start? What’s the best way to plan the on-premise to cloud migration process to avoid possible pitfalls and make sure everything goes without a hitch?
I talked with Tomasz Obszarny, Senior Technical Lead Cloud Architect, about cloud migration planning, possible strategies and common challenges that may lead to migration failures. Let’s find out what’s ahead of you.
What does the on-premise to cloud migration process look like?
Of course, a detailed roadmap depends on your specific needs. There’s no one-size-fits-all solution. However, here are some high-level step-by-step guidelines to help you successfully migrate your app and data to the cloud:
1. Establish the on-premise to cloud migration scenario
Do you want to do a full or partial migration to the cloud? Or maybe remain on-premise with backups to the cloud? Which cloud should you choose: public cloud, private cloud or a hybrid one? That’s something that should be decided at an early stage, alongside identifying the business needs.
2. Identify your needs
What infrastructure elements do you absolutely need to have access to? It may be that as you’re migrating data to the cloud not everything will be as easy to access or will work as fast as on-premise. The Internet connection latency plays a key role in how a user perceives the speed.
Moreover, there’s the matter of fitting, or in other words, choosing the right size of cloud infrastructure. The size impacts the costs, so it’s important to make sure you don’t go overboard, because you may end up paying more than expected.
3. Choose a cloud migration strategy that fits your needs
There are six cloud migration strategies, commonly known as the 6R’s:
Sometimes after identifying serious obstacles, you may make the decision to suspend your cloud migration project for now and get back to it at a later date. This may occur due to legal issues, for example, if you’re not allowed to store customer data on third-party servers. Sometimes, migration may not be advisable due to high license costs, for instance, when a license model calculates the price based on the infrastructure underlying the physical hardware capabilities.
Rehost (lift & shift)
This strategy involves moving an existing solution from on-premise to the cloud with no changes. It’s a quick method to implement, but not necessarily the most cost-efficient.
Re-platform (lift and reshape)
In this method, your solution is adjusted to the cloud ecosystem. The core architecture remains the same, but the solution is slightly modified to fit the cloud platform. An example of re-platforming can be moving a database from one cloud platform to another.
Repurchase (drop and shop)
Sometimes you may not be able to migrate your application to the cloud because the chosen cloud license doesn’t allow it. You’ll then have to stay on-premise or look for other cloud solutions, which will fulfill the requirements without limitations associated with installation in the cloud environment. So de facto, you replace one solution with another.
In refactoring you adjust the code of your application to make it work better in the cloud environment.
For example, you can optimise it to lower the costs by reducing the expenditures to deliver reliability, by moving the data to object storage, like Amazon S3, where you have the flexibility to control the storage classes associated with data availability. With a small investment towards the savings, you can have AWS automating the process of shifting your data between storage tiers for maximum savings. You can choose different classes, for instance, based on the data modification frequency. Data that is rarely, or never modified, can be transferred to a class with a lower access level, which is therefore cheaper.
In this case, you identify applications that aren’t in use anymore and you make the decision to get rid of them and not move them to the cloud. What’s the point of migrating an unused application to the cloud if it would only waste the resources without providing any value?
And what is serverless computing?
In simple terms, serverless computing is a solution, in which the resources are allocated on demand. You’re charged based on real usage.
The disadvantage of non-serverless cloud solutions is that you need to keep them on constantly if you want users to access the application. You could turn off the virtual machine for a chosen amount of time, but then users won’t be able to access the application at all. If you want to keep the solution accessible on-demand, for example, after users log in to your application, then serverless is the way to go. Once users log out and stop interacting with the application, the solution will stop doing background computations, which you would normally be billed for in case of server based, dormant solution.
However, keep in mind that not all cloud services are serverless. If you build a serverless solution but are using cloud services that aren’t serverless, they will generate costs. In this instance, the “usage” doesn’t always mean user interactions, but for example a unit of database space. If you keep some data in a database, it will still generate costs, even though you don’t interact with it.
What are the on-premise to cloud migration challenges?
The most common on-premise to cloud migration challenges are:
Insufficient pre-migration analysis and preparation
Let’s say your goal is not to use on-premise servers at all. However, during the migration, it turned out that some part of your product can’t be moved to the cloud. You overlooked that in your pre-migration analysis and now the migration can’t be completed.
Good preparation for the migration process is key. You must go through your ecosystem and identify all elements that are to be migrated to the cloud, analyse their cloud readiness and determine which migration method is most appropriate.
Lack of expert knowledge
Every cloud migration project could fail if there’s not enough knowledge and skills to handle it.
Migration of big amounts of data
Sometimes the bandwidth of the internet connection doesn’t allow the transfer of the required amount of data to the cloud at a fixed time.
To prevent this from happening, some cloud service providers offer special services. For example, AWS has solutions called snowball and snowmobile. These are data transport solutions that can accommodate large amounts of data in order for it to be transferred in and out of the cloud.
On-premise to cloud migration case study
Do you have an application that has to be available for users 24/7 without any interruptions? Are you wondering how to plan the cloud migration so that it’s invisible on the customer side?
This was the scenario we faced with TakTo, one of our customers, for whom we executed the “lift & shift” migration strategy. We had to divide the process into a few stages. First, we transferred and tested smaller and non-customer-facing databases and environments. Then, we migrated TakTo’s databases, which were extensive, and from the technical point of view, the trickiest element to move. The migration passed seamlessly, and the change was imperceptible to the users.
Are you ready for on-premise to cloud migration?
Let’s be honest: cloud migration is not a piece of cake. It’s a complex, very customer-specific process that requires expert knowledge and experience because there’s simply too much at stake if anything goes wrong.
It’s safer to get the help of a trusted partner who knows how to navigate the challenges that come with cloud migration and will take care of it from start to finish.