The Cloud Challenge: Choice Paralysis and the Bad Strategy of “On-Premising” the Cloud
The cloud has its own challenges that we need to understand and resolve; otherwise, we are wasting time answering the wrong questions.
Join the DZone community and get the full member experience.Join For Free
The cloud is vast. It is natural that we look at the cloud and understand it through the narrow lens of our previous experiences. This can translate into solutions that underutilize/overutilize one area of the cloud over other areas. Innovative and robust solutions often require the use of the full spectrum.
Most companies are migrating to the cloud because they want to unlock new business opportunities, but many of them stumble because they continue to build solutions that are only suitable for on-premises. Imagine your IT workloads are on servers that sit in the basement of your corporate office. Would moving these servers to the first floor of that office open any new opportunities for your business? Of course not. Lifting and shifting your servers to the cloud might save you money, but it certainly won’t take you any further. The first and most important thing to remember about the cloud is that the cloud is not a place, it is a model. Building for the cloud requires a mindset change, not a location change.
How Is the Cloud Different From On-Prem?
A decade ago, on-prem was probably the only way we could understand/explain the cloud because on-prem was a common frame of reference for most people. However, in today’s world, explaining the cloud through this reference is harmful because it prevents us from exploiting the main strength of the cloud. We can probably do a better job comparing the cloud to Netflix rather than comparing it to on-prem. We have to focus on the differences rather than the similarities. One difference stands out.
With on-prem, we had limited service/product choices, and we couldn’t afford to have many services because we needed a license for each service/product to be able to use it (not to mention that maintaining a huge pool of various services was not feasible). On Cloud, we have a plethora of managed, task-oriented products/services at our fingertips, all on a consumption basis so there is no entry cost.
You will appreciate the difference more if you see it. The below screenshot is for one of the PaaS services of Azure called "App Service." It is where you can deploy your web workloads. Go through the list of things this service allows you to do out-of-the-box (e.g. Scale up/out, Backups, Monitor, Authentication, API Management). You surely can deploy a web server in a VM, but how much effort is it going to take to build all these capabilities around it? Even if you do, how much effort is it going to take to keep these VMs/web servers up to date and well-managed?
Like Azure App Service, there are tens of other PaaS (and Serverless) services that offer very comprehensive capabilities out of the box. Don’t waste your time and resources building and maintaining infrastructure, use the managed cloud-native/task-oriented capabilities so you can focus on developing your business solutions.
The Cloud Challenge: Which Service To Use?
Here is the troubling fact: most organizations know that the cloud is different than on-prem, most of them also know the main differences. Yet, this knowledge doesn’t translate into better solutions. That is because most organizations face a challenge: "With all these cloud services out there, which one to use in each scenario?" Too many choices can lead developers/architects to some kind of decision paralysis. Instead of going through the many choices, they just resort to the most familiar. In the case of organizations who are used to building on-prem, this often means choosing the old-stack (VMs/Container orchestration clusters) without even considering the alternatives.
Having tens of cloud services is indeed a challenge (Azure has 400+ different services at the time of writing this, each service might have tens of built-in capabilities). However, it is still a good challenge to have. That is because if you’re not dealing with resolving this challenge you’re effectively dealing with the challenge of how to make the cloud behave like on-prem. Resolving the first challenge (which service to use) unlocks the power of the cloud while resolving the second challenge only locks you tighter in the on-prem boundaries. The cloud challenge is real but dealing with it will pay you extremely well in the long run. I have seen it time and again, on-premising the cloud produces poor solutions that often hit a limit where investing in developing them further becomes a bad investment.
How To Resolve the Cloud Challenge
I don’t know if there is a magic bullet for resolving the cloud challenge, but here are some tips that can help you work your way up:
- Use the reference architectures: These can be a good start for how to match your use case to the appropriate cloud service. Here are Azure reference architectures.
- Involve more of your teams: Gone are the days when the CIO (or anyone individual) knew everything related to IT. Involve your employees (technical and non-technical) to partake in modernizing your IT solutions. The cloud offers many low-code/no-code options that can turn your non-technical people into a big force in creating innovative solutions.
- Unlearn the on-prem model: If all that you see in the cloud is a VM, vNet, storage, and a Firewall, then no matter how much effort you put into creating your cloud solutions, you will always end up with an on-prem solution, even though it might be located on the cloud.
Lastly, I don’t want to downplay the importance of cost-saving that the cloud offers, but even in the lift and shift scenarios, the cost-saving can only be maximized by embracing the cloud model: destroying resources when you don’t need them, recreating them when needed and scaling them on demand. The cloud is not a place, it is a model.
Note: My writings are personal opinions and don’t represent my company.
Opinions expressed by DZone contributors are their own.