Understanding the goals, costs, and risks of cloud migration
The exodus to the cloud is not stopping, or even slowing down. Gartner finds that spending on cloud has gone up by more than 40% worldwide over the past year, reaching a total of $64.3 billion. This is up from $45.7 billion in 2019. There are plenty of reasons for this increase in spending - for some companies, cloud is an easy route to deploying new services; for others, it was the only way they could launch new services during the pandemic.
Whatever the reason, the move to cloud (or between cloud providers) should be a strategic one. The migration itself is not a goal -- what the migration does for you is the goal. Without a clear understanding of that goal, there is no good way to measure success. Below, we break down some common goals associated with migrations, and what to consider with each.
Better Performance & Reliability
Migrating to faster hardware on a more stable provider is a great idea, but is only one measure of many you should explore if your goal is increased performance and reliability. Look at this as a performance remediation project, rather than just a migration, and think about the proverbial blank sheet of paper - would you make the same choices again, or would you do things differently? Can you make those changes to your existing system over time, or do you have to start again?
Look at your existing approach, and consider any issues that may be holding your stack back. This could include updating to the latest versions of your applications and infrastructure components, and consolidating services. There may also be more efficient tools that you can use within your application, or even more standardized open-source functions you can drop in to replace bespoke in-house code.
Everything you find and improve during this phase will exponentially increase the effectiveness of your planned migration. Just be sure to go about this phase methodically, so you don’t introduce new bugs and complexity.
Whatever the case, it is wise not to think of a migration as a “silver bullet”. Your cloud provider will play a very important role in how successful you are, but a bad stack implementation will run poorly on any platform, wasting the effort of migrating in the first place.
Moving to the cloud - or from one cloud to another - can be an opportunity to make changes to how your application or infrastructure functions. It can provide new tools and opportunities to renovate your application and support your future growth. However, it is also appropriate to look at risk. Any migration will have some risk attached to it, as you are increasing the number of variables in your project. If you try to change everything in one go, then you will find it harder to pin down root causes for any problems when you switch over.
In order to make the move to cloud successful, you need to test, test, test, and test some more. This involves running in parallel for a period, and should provide you with the chance to find any problems you find on your new cloud service, reducing the risk of any mistakes affecting you in production in the future.
The costs of that testing and development period need to be factored into your costs for the project, as they are a non-negotiable requirement for a successful move. Cloud providers understand this however, and may often reduce or even cover costs for such testing periods. Don’t be afraid to ask for help from your prospective provider. They’ll likely be interested in contributing to a project that may win them a new workload.
If you have a goal of cost reduction, there are plenty of other things to consider. Every cloud provider is different, and they all have their own approaches to charging for cloud services. Some cloud providers have different pricing for each location they offer, while others use a blanket price that is the same regardless of where you deploy. This can have a big impact on your costs to run a service over time. Ideally, look for providers that offer simple pricing that you can predict in advance, as this makes it easier to manage your spend over time.
Similarly, you can use your testing phase to find out any hidden or unexpected costs that you have not previously considered. Data transfer costs are a particularly important one. If you are moving into the cloud for the first time, or from one provider to another, be sure to fully understand your network transfer costs (how much data you’re sending each month) and how they may change - some cloud providers offer more data transfer as part of their costs compared to others.
It’s important to get a like-for-like comparison where you can - the bigger hyperscalers tend to have higher costs for data transfer than alternative providers. Knowing this in advance can help you make the right decision on the cloud provider you move to and avoid wiping out your cost savings by overlooking a hidden cost.
Hopefully the framework above helps you understand your own goals in relation to a migration or informs your internal monologue about other goals we may not have covered. You want to avoid a migration becoming “an end unto itself”. Decide on your goals and solve for them instead -- having your goals as a guide will keep you on-budget, on-schedule, and on-mission.
Joseph Bower is the Director of Customer Success at Linode.