The multicloud approach is an essential strategy for many companies across all industries. According to Flexera’s 2020 State of the Cloud report, 93% of the survey respondents say they have a multi-cloud strategy.
Multicloud vs. Hybrid cloud
The IT ecosystem is full of terminology that is often confusing. Therefore, let us define what multicloud is and compare it with hybrid cloud.
Starting with the hybrid cloud, traditionally, it meant the combination of private (on-premise or data center) and public cloud infrastructure with some sort of integration and orchestration that shifts workloads between them.
By contrast, multicloud means having multiple cloud environments (also, private or public) but not necessarily with an interconnection between them. That means, a company could use Google Cloud for one group of applications (analytics), and AWS for another (long-term data archiving). However, you will see these terms used interchangeably, which only adds to the confusion.
But, multicloud is more of a strategic decision. It’s an approach in which companies decide not to put all of their eggs in one basket. This strategy is better knows as vendor lock-in avoidance.
Why have a multi-cloud strategy?
The key question is, why should I use multiple cloud environments instead of just one? Because diversifying cloud architecture is a smart move (diversification, in general, is smart). No single cloud can do everything. Take, for example, the hyperscalers AWS, Azure, and GCP. On a high level, they all seem comparable: a plethora of services with similar service level agreements (SLA) and a pricing strategy that you can hardly keep apart (this is especially true for computing, storage, and network offers).
Yet, by looking closely, there are differences.
For example, companies generally choose AWS because it offers advanced analytics capabilities. And it's considered startup-friendly.
At the same time, large corporations tend to use Microsoft Azure because it has been the go-to option for hybrid deployments with Azure Stack (AWS caught up with Outposts, Google with Anthos). Also, Microsoft has been present at these companies for ages now with Office or Dynamics products - integrating them into Azure is much simpler.
Google Cloud, on the other hand, is the leader around AI (Machine Learning, Deep Learning), and open-source technologies. Even if GCP came late with its cloud offer, its recent growth has been remarkable.
Some pundits say that multicloud ensures companies enjoy high flexibility, resilience, and redundant architectures. However, with a robust configuration, even one cloud provider - especially a hyperscaler - is capable of delivering these promises. For simple use cases, you will get along with one cloud platform (add to this container technologies like Docker/Kubernetes/OpenShift and switching the cloud provider is even easier). It’s the complexity of the business itself that usually drives the need to have more than one cloud provider (that’s why some of the hyperscalers offer industry clouds, e.g. for governments - a red hot topic in 2021, just look at Microsoft's latest announcement).
Should you decide on a multicloud approach, be informed that there are challenges with this strategy. Let’s go over some of the most common.
Governance has this negative connotation attached to it. Mention this word in front of your developers, and there will be a sheer sound of disappointment and quivering. The argument I often hear is that cloud platforms emerged with the promise to enforce agility; there is an enormous amount of exciting things to discover and try out - why limit this agility and the joy of experimenting?
Because proper governance saves many troubles. Imagine everyone pulling out their credit card and start ordering cloud services as they please. For one, that’s financially irresponsible. Secondly, the construct that emerges out of it would be a complete mess, where even the engineers and architects would start to complain after a while.
To avoid this, companies need to set rules and constraints. But don't overdo it - if these policies are too strict, you'll kill the spirit and willingness to experiment (a great virtue to have and nurture nowadays). Opt for a middle ground and create a space regulated by procedures in which employees - especially developers - can move freely and access services at will. The main message to your IT staff has to be: "within these limits, do what you want."
Create a "minimum viable governance" - an approach where you define only the most necessary guidelines. Everyone needs to understand that the focus has to be on making well-thought-out and targeted technology decisions. The aim is to balance costs, risks, and expected values optimally.
By looking at cloud platforms individually, there is not much to complain about. They all offer outstanding services. But once you go multicloud, the problems start to pile.
Why? Because there are simply no standards for interoperability in the multicloud world. Workloads on AWS run quite differently than, say, on Azure. Applications have to be rewritten entirely if you want to change platforms. Has your company invested a lot of money in running big data pipelines and analytics on AWS? Moving it to other cloud environment can be complex - and costly. Architecture configurations, CI/CD pipelines, security aspects - all of this, and much more, would then have to be rebuilt entirely.
Users can keep a certain degree of interoperability (and portability) open by limiting themselves to functions that are similar in different cloud environments. This is, again, the role of your governance.
Cloud providers invite businesses to hyper-customize - that's not a bad thing. By doing so, they can use the cloud's full power to create differentiation and competitive advantage. But at the high cost of a vendor lock-in.
But cloud providers invite businesses to hyper-customize. And that's not necessarily a bad thing. In that way, companies can use the cloud's full power and create differentiation and thus competitive advantage. But at the high cost of a vendor lock-in.
Docker containers and Kubernetes offer at least a basic solution, especially since all cloud providers support them. Especially Kubernetes could develop into a kind of abstraction layer between the various cloud offerings. This is often the case where hybrid cloud scenarios are implemented, and workloads are distributed between private and public cloud environments.
3. Data portability
While application portability seems to be technically solvable, porting data gives users greater headaches. Cloud providers encourage customers to upload their data but impose a "data tax" when it's about to leave their environment. This is often expensive. Another challenge is the data architecture: How can data used by different applications in different cloud environments be distributed and synchronized?
With a multicloud approach, it is even more critical to understand your data estate. Where is it? Do I have complete control over it? Can we quickly restore in case of an emergency? In a single cloud approach, these questions are equally important. But with the added complexity of more clouds and perhaps the need to replicate your data across these multiple environments, your company will have to invest more time and money to keep it under control (and ensure transparency).
The challenge here is to adapt internal security controls to each cloud in a different way.
The question a company has is, "How can we ensure - in a multi-cloud environment - the entire security structure that we have developed at the company level is mapped one-to-one to all workloads in the various clouds and regions?". An ideal scenario would be to allow their teams to move workloads into the cloud environment of their choice, and the same security policies would apply everywhere. But currently, we are far from this.
5. Cloud orchestration
Managing multiple cloud environments, with all their nuances and differences, is a significant challenge. The best way would be to move workloads to wherever it makes most sense via a central switching point. Governance, monitoring, and security would have to be abstracted on one layer so that users could work securely and undisturbed in different cloud environments.
There are plenty of multi-cloud management solutions on the market, including Morpheus, CloudBolt, or Optima. However, Each of these products has its gaps; there is currently no one outstanding solution. Some companies fear the risk of becoming dependent on a large software supplier again. Because, as soon they start to trust such a cloud broker, then they would do exactly what they want to avoid with our multi-cloud approach: a vendor lock-in.
There is only one option: to do it entirely in-house. But not every organization is capable of building one.
6. Talent shortage
None of the above matters when your company lacks the necessary skills that are required to run a cloud - multicloud or hybrid - environment. From our experience, this lack of skills is holding enterprises back from innovating across multiple cloud platforms. The biggest challenge is finding people with the right cloud-native development and operations skills.
Forrester upholds these findings, and according to their 2019 The Right App On The Right Cloud report, companies struggle to find people with skills in infrastructure engineering, development platform operations, coding, and DevOps. Filling open positions becomes more and more difficult.