Overcoming Challenges of a Multi-Cloud Strategy
As more and more companies move to a mature cloud strategy, it’s becoming clear that part of that strategy is to deploy on more than one cloud. In practice, this can mean multiple public clouds or some combination of private cloud plus public cloud(s).
There are concrete business reasons for following a multi-cloud strategy, but multi-cloud strategies also create new challenges and compound some challenges inherent in all cloud strategies. There isn’t one ‘right’ path for success with multi-cloud, but there are both technical and cultural ways to get the full benefits from a multi-cloud strategy.
Reduce Risk of Service Disruption
While all of the major global cloud providers offer highly reliable services, they have all had major outages—although not at the same time. Workloads that are distributed over several public clouds, that can automatically fail over into the second cloud if an error is detected with one of the deployments—can weather an outage with little to no disruption to users and little manual intervention.
A multi-cloud strategy also reduces the risks of succumbing to a distributed denial-of-service (DDoS) attack, which can both take a site down and keep it down. The ability to shift to another cloud computing provider seamlessly limits the damage that can be done by DDoS attacks.
One common misconception about developing, deploying, and running applications in the cloud is that all of the platforms have identical workflows and identical processes.
Negotiating Power and Pricing Optimization
Amazon Web Services (AWS), Google Cloud, and Microsoft Azure all have rates posted on their websites—but don’t be fooled into thinking that everyone is paying exactly the same price. Major companies can negotiate for discounts, but it’s hard to negotiate when you can’t credibly move your deployment elsewhere. One component of the multi-cloud strategy in major enterprises is getting the cloud providers to compete for the best rates.
AWS, Azure, and Google Cloud also each offer discounts—Reserved Instances on AWS, Reserved VM Instances on Azure and Committed Use Discounts on Google Cloud. But each cloud provider has slightly different cancellation policies, exchange policies, and payment options. These pricing policies also change multiple times per year, making it difficult to compare AWS, Azure, and GCP pricing directly. However, with the correct pricing management tools some companies take advantages of the different providers pricing structures to deploy applications and route traffic dynamically to the cloud that will offer the best price.
The Right Cloud for the Job
One common misconception about developing, deploying, and running applications in the cloud is that all of the platforms have identical workflows and identical processes. This isn’t the case. A major reason to choose a multi-cloud strategy is the ability to use the cloud environment best suited to your specific application’s needs.
The most obvious difference between cloud providers is in geography—some have better coverage than others in certain regions. For example, some companies choose to send Asia-based traffic to Alibaba Cloud while using Google, AWS, or Azure for traffic from North America.
However, that’s not the only way the platforms are different. With different native tooling, storage, function runtimes, and workflows, it could be that a specific application would work better in Azure than in AWS… or vice versa. For example, Amazon has generally been a better environment for Linux-based applications and open source apps in general, whereas Azure, unsurprisingly, has better interoperability with other Microsoft products. The ability to select the cloud environment with a workflow best suited for the application in question is probably the highest-level reason to adopt a multi-cloud strategy, from an engineering perspective.
There are plenty of reasons to use a multi-cloud strategy, but multi-cloud strategies are inherently more complex. Many of the challenges that arise from multi-cloud deployments stem from that complexity. Modern application architectures are already complex, built on hundreds or thousands of interdependent microservices. Spreading your application over two or more cloud providers makes it that much more difficult to manage. In addition, taking advantage of the pricing and performance optimization that drive some companies to a multi-cloud strategy requires keeping track of how the major cloud providers compare on features and billing structures even when all providers are making changes every month or two.
Making sense of either AWS billing or Azure billing, using just the native tools provided by the platform providers, can be overwhelming and confusing. Deploying to one or two additional clouds means doubling or tripling the complexity when it comes to managing costs. And while a multi-cloud strategy can reduce overall costs if managed correctly, having comparatively smaller workloads in each cloud can lead to less overall discounts. If cost management is part of your reason for pursuing a multi-cloud strategy, you’ll need to ensure you have tools in place to help you understand and optimize your cloud spend.