Should you migrate to the cloud? Answer 3 key questions to find out!
While almost all enterprise workloads were running on-premises just a few years ago, 30%-40% of enterprise workloads run in the cloud today. Most enterprises that move to the cloud expect significant cost savings and improved agility because that is what the cloud vendors have been selling for the past several years.
Having spoken to companies a year or more after completion of their cloud migration journey, the results aren’t always rosy. Some enterprises are more than satisfied with their cloud migration, while others report an increase in costs and they struggle with a new set of challenges in the cloud that they did not face when then they had their workloads on-premises. Why is there such a drastic difference in the results? Why are some enterprises finding the success they expected while others are not?
Three key factors determine the results of a cloud migration, according to my unscientific analysis.
1. How modern is your on-prem infrastructure?
Are the needs of your applications or your IT team very traditional? Do you have high-end servers and storage in your data centers, specialized hardware to improve performance, replication and disaster recovery for your application and data center infrastructure, heavy reliance on a plethora of third-party software for everything from security to monitoring to provisioning? Or are your applications and IT infrastructure very modern? Are your applications capable of running on cheap, redundant hardware? Are they distributed and resilient to failures? Are they provisioned using modern DevOps tooling and capable of scaling out?
Counter-intuitively, if your infrastructure and applications are reasonably modern, the benefits to be had from cloud migration aren’t as great. You will undoubtedly get elasticity in being able to burst workloads without having to provision infrastructure to serve peak-loads, which offers some savings, but not a whole lot.
But if your IT teams and applications demand gold-plated infrastructure, the benefits of cloud migration are enormous. The inefficiencies of your on-premises infrastructure offer an excellent opportunity to drive down cost while migrating.
2. Are you willing to upskill your team?
Assuming the answer to the above question was that your infrastructure was quite traditional, offering lots of opportunities for improvement, I’d suggest moving to the cloud. But a pure lift-and-shift approach isn’t enough.
Reserved instances and heavy usage of block storage are the nemeses of cost savings. The first modification to migrate to the cloud is to redo the provisioning infrastructure to be elastic. If your applications can scale out (even stateful applications can with the help of sticky load balancers), provision minimal infrastructure to begin with and use cloud-native tools to monitor usage and scale out and back as needed. Move anything that can reside in object stores out of block storage, as the cost of object stores is way lower. All clouds support filesystem interfaces for blob/object stores to facilitate this. Analytics workloads that are not time critical can likely be run on spot instances that can be had for a fraction of costs of reserved instances.
Most of these changes can be made without modifying the application, but you will have to redo the provisioning heavily. This will require a team that is skilled in DevOps. Most traditional IT teams aren’t skilled in such tooling. A lot of the traditional skills in your IT team aren’t relevant in the cloud – storage experts, data center experts, a lot of your networking experts etc. aren’t needed. You have to either retrain them to be skilled in the cloud or replace them and get elastic provisioning implemented.
3. Are you willing to change your application to be cloud-native?
If you have determined that there is enough “modernization” potential and you have invested in elastic provisioning, you are only halfway there. You are now using the cloud as an elastic data center – using just its IaaS capability. But to get further savings, you have to go the next step. Usage of infrastructure and middleware software that is licensed by sockets or cores or users is not the best way to get cost optimization in the cloud.
You want to use software that charges you by utilization – cloud-native, serverless services. While there isn’t much uniformity among added value services across clouds, all clouds are evolving to provide serverless services that charge by usage. Databases, security layers, analytics engines, machine learning components, log analysis tools, monitoring tools – all of these are available in most clouds on a pay-by-consumption model. Since replication across availability zones for block and object stores is available in all clouds, you can simplify your disaster recovery infrastructure by migrating to native services and replicating storage across availability zones, further bringing down costs.
This is a longer journey – if you can achieve IaaS level conversion anywhere between a few months to a year depending on the complexity of applications, migrating to utilize cloud-native services might take twice as long to complete.
Traditional applications that use high-end infrastructure, when migrated to be truly cloud-native, offer significant cost savings. I’ve had people report over 50% savings in their overall IT costs even when they haven’t completed their migration to utilize serverless services fully. So, if you are contemplating migrating to the cloud or if you have started your journey – don’t stop until you are all the way there!