Definition
Multicloud is the use of multiple public cloud services from multiple cloud vendors.
Overview
Multicloud is the norm for many businesses today. Often multicloud environments come about organically as different business requirements require different cloud technologies. For example, an enterprise may depend on G Suite for email, collaboration, and office applications, GitHub Enterprise as a code repository, and StackPath Object Storage for hot storage.
However, the real power of multicloud is when it is strategically implemented. Enterprises that take a purposeful and strategic approach to multicloud can reduce costs and limit vendor lock-in while also achieving performance and redundancy gains.
Multicloud vs hybrid cloud
The terms multicloud and hybrid cloud can easy to conflate. Multicloud is the use of solutions from multiple public cloud vendors. On the other hand, hybrid cloud is the integration of public and private cloud infrastructure.
It’s clear, the two aren’t the same. However, they also aren’t mutually exclusive. For example, you may store sensitive data in an on-premises private cloud while storing less sensitive data in the cloud. This would make your environment hybrid cloud. Now suppose you split your cloud storage across two public cloud providers. Now your infrastructure is both hybrid cloud and multicloud.
Multicloud pros and cons
If you can effectively implement a multicloud strategy for a given workload, the potential benefits are:
- Better resilience and fault tolerance
Even the biggest players in the public cloud space have experienced outages in the past. A single cloud vendor means a single point of failure. Using multiple vendors spreads your risk and reduces the likelihood of a complete outage. Additionally, it adds a layer of resilience to disaster recovery plans and business continuity efforts. - More flexibility
Different vendors offer different price structures and feature sets. A multicloud approach reduces vendor lock-in and allows you to select the right platform for the job. Multicloud also enables you to mix and match where it makes sense. - Reduced costs
More flexibility also means you can optimize your spend by choosing the vendor with the best value for each service, region, and deployment model.
Of course, multicloud isn’t without tradeoffs. Potential downsides of multicloud include:
- Increased complexity
With each cloud vendor you add, you also increase infrastructure and operational complexity. With each vendor, deployment, provisioning, monitoring, billing, and support is a little different. As complexity grows, so does opex and the potential for configuration oversights. - Performance & security challenges
If workloads that need to interact are geographically distant from one another or lack quality integrations, latency can hamstring performance. Additionally, more cloud providers means a larger attack surface you must protect.
Key drivers for multicloud decision-making
There are no one-size-fits-all solutions for cloud architecture. That’s why decision-makers need to take a strategic approach to adopting or avoiding multicloud for a given use case. Gartner identified 3 key drivers to consider when making multicloud decisions:
- Sourcing
Multicloud can clearly increase agility and reduce vendor lock-in. However, not all services are created equal, so understanding the SLAs, features, performance, and regulatory compliance a given vendor offers must also be taken into consideration. - Architecture
Modularity is a common characteristic of modern applications making multicloud adoption easier. However, you need to account for potential additional architectural complexity in the decision-making process. - Governance
Standardization in administration and monitoring is an important part of optimizing your infrastructure. If you need to use different procedures and tools to monitor each cloud solution you adopt, the increase in complexity may the upside of multicloud. Similarly, if you can’t effectively load-balance, performance may become a deal-breaker. As a result, understanding if you can monitor and manage a multicloud environment efficiently is particularly important.
Practical example of a multicloud deployment with load-balancing
A web application deployed across two or more IaaS providers is a prime example of a common multicloud deployment. Deploying server clusters across multiple providers increases your app’s resilience at the infrastructure-level. It also increases your infrastructure’s complexity creates a unique load-balancing challenge.
To provide a specific example, let’s consider the case of running a web app on both AWS (Amazon Web Services) and GCP (Google Cloud Platform). How can you configure load-balancing in a way that is performant, scalable, and cost-effective? One approach is to use Terraform, a Traefik proxy for edge routing, and StackPath’s edge-compute with an anycast IP address. The final configuration looks like this:
- Terraform provides configuration management/infrastructure as code.
- Backend webservers run on AWS and GCP.
- StackPath edge-compute workloads with an anycast IP.
- The anycast IP is announced from all StackPath PoPs (Points of Presence) and used for balancing requests from the PoP nearest to end-users.
- Traefik handles load-balancing across AWS and GCP.
- Failing edge-compute instances are automatically restarted.
- Auto-scaling based on CPU utilization with predefined minimum and maximum instance quantities.
- StackPath network policies (e.g. ingress and egress rules) to allow and deny specific types of traffic.
For a detailed how-to on setting this up yourself, check out our Using Terraform to Create a Multi-Cloud Load Balancer guide.
Key takeaways
- Multicloud is the use of public cloud solutions from multiple vendors
- A strategic approach to multicloud can improve performance and resilience while reducing cost and vendor lock-in
- Multicloud also inherently increases attack surface and infrastructure complexity
- Effective load-balancing can boost the upside of multicloud and minimize the downside