Multi-Cloud Strategy, Management, and Costs. When Do Multiple Clouds Make Business Sense?

Jerzy Kopaczewski 22 May 2026 14 min read
Contents

Multi-cloud - strategy, management, and costs

Multi-cloud isn't a question of "whether" but "when and why". Most organisations land on a multi-cloud architecture not by design but by necessity - an acquisition running on a different provider, an ML team choosing BigQuery despite the primary infrastructure living on AWS, a regulatory requirement forcing data separation. This article brings order to the topic: when multi-cloud makes business sense, when it creates unnecessary complexity, what it genuinely costs to manage two providers, and which tools are non-negotiable.

Before we get into the detail - a key distinction. The industry uses these terms interchangeably, but they mean different things:

Term Meaning
Multi-cloud Deliberate use of 2+ public cloud providers for different purposes (e.g. AWS for compute, GCP for analytics)
Hybrid cloud Combination of public cloud with on-premise infrastructure or private cloud
Multi-region Multiple regions with a single provider (e.g. eu-west-1 + us-east-1 on AWS)

Multi-cloud ≠ hybrid ≠ multi-region. Each carries different operational complexity and different costs.

 

When multi-cloud makes business sense - 4 scenarios

1. Best-of-breed: the best service from each provider

The most common scenario. An ML team chooses BigQuery + Vertex AI (GCP) for analytics while the rest of the infrastructure runs on AWS (EKS, RDS, Lambda). Or the data team uses Snowflake (hosted on Azure) while the production application sits on AWS.

When it works: Services are loosely coupled (data flows in one direction - batch or streaming) and the team has competence in both ecosystems.

When it doesn’t: Services require real-time communication with low latency between providers. Data transfer between clouds costs $0.08-0.12/GB - at 10 TB/month that’s $800-1,200 in egress alone.

2. Regulation and data residency

European regulations (DORA, NIS2) may require financial data to reside in the EU while simultaneously requiring geographically separated DR (Disaster Recovery). Solution: production data on AWS eu-central-1 (Frankfurt), DR on Azure West Europe (Amsterdam) or GCP europe-west4 (Netherlands).

Another variant: a defence-sector client requires provider separation for different data classifications.

When it works: Regulations explicitly require provider separation or physical infrastructure separation.

When it doesn’t: Most regulations (ISO 27001, SOC 2, PCI DSS) do not require multiple providers. Multi-region with a single provider usually suffices. Don’t build multi-cloud “because compliance” without legal confirmation.

3. M&A - mergers and acquisitions

Company A runs on AWS. It acquires Company B, which runs on GCP. Migration from GCP to AWS would take 12-18 months and cost hundreds of thousands. For that period (and often permanently) you maintain both environments.

When it works: Always - this isn’t a choice, it’s a fact. The question is: how quickly do you consolidate vs. how long do you maintain both.

When it doesn’t: N/A - this isn’t an architectural decision, it’s a business situation.

4. Strategic avoidance of vendor lock-in

An orchestration layer (Kubernetes) + IaC layer (Terraform) create an abstraction layer that enables moving workload between providers in weeks, not months.

When it works: Organisations of 500+ employees with a mature platform engineering team that negotiate large contracts with providers and need real negotiating leverage (“we can leave”).

When it doesn’t: Small and medium businesses where the cost of maintaining an abstraction layer exceeds negotiation savings. Terraform + Kubernetes don’t automatically mean portability - an application using DynamoDB, SQS, and Cognito won’t move to GCP without rewriting parts of the application.

 

When multi-cloud does NOT make sense

I’ll be direct: in 60-70% of cases we see in consulting engagements, multi-cloud is complexity without proportional business value. Here are the three most common anti-patterns:

Anti-pattern 1: “Multi-cloud for resilience”

Myth: “if AWS goes down, we have GCP as backup”. Reality: full multi-cloud DR requires:

  • Real-time data replication ($$$)
  • Two sets of CI/CD pipelines
  • Two IAM, networking, and monitoring configurations
  • Regular failover testing

Cost: 1.8-2.5x the operational budget. For comparison, multi-region DR with a single provider costs 1.2-1.4x.

If the goal is purely availability - multi-region with a single provider (e.g. AWS eu-central-1 + eu-west-1) delivers 99.99% SLA at a fraction of multi-cloud DR complexity.

Anti-pattern 2: “Multi-cloud because teams know different clouds”

Team A knows AWS, Team B knows Azure. Instead of training on one platform, they each run on their own provider.

Result: two monitoring toolsets, two security models, two budgets that are difficult to compare, no shared services (common SSO, centralised logging, unified security policy).

Solution: Choose one provider as primary and invest in training. The cost of training 5 engineers (€15-25K) is many times lower than the annual cost of maintaining two ecosystems.

Anti-pattern 3: Small team (<10 people) with a “multi-cloud strategy”

Each additional provider is an operational complexity multiplier:

Dimension 1 provider 2 providers 3 providers
IaC providers to maintain 1 2 3
IAM models to understand 1 2 3
Networks to interconnect 0 1+ 3+
Pricing models to monitor 1 2 3
Team certifications/training 1 set 2 sets 3 sets
Ops cost multiplier 1x 1.5-1.8x 2.2-2.8x

A team of 5-10 can be sufficient to fully cover one provider. With two providers, that’s no longer a given.

 

Multi-cloud management architecture

If after analysing the scenarios above multi-cloud is justified for you, you need a management layer. There’s no “easy multi-cloud”. But there are proven patterns.

IaC layer: Terraform as lingua franca

Terraform and OpenTofu are the only serious IaC tools supporting multiple providers with a uniform syntax. Alternatives (Pulumi, Crossplane) exist, but Terraform’s ecosystem (providers, modules, community) is disproportionately larger.

# Example: VPC module on AWS + VPC Network on GCP
# managed from a single Terraform repo

module "aws_vpc" {
  source  = "./modules/aws-vpc"
  cidr    = "10.0.0.0/16"
  region  = "eu-central-1"
}

module "gcp_vpc" {
  source  = "./modules/gcp-vpc"
  cidr    = "10.1.0.0/16"
  region  = "europe-west3"
}

# Cross-provider connectivity
module "interconnect" {
  source      = "./modules/cross-cloud-vpn"
  aws_vpc_id  = module.aws_vpc.vpc_id
  gcp_network = module.gcp_vpc.network_name
}

We cover a detailed Terraform comparison in Terraform vs Pulumi - which tool to choose.

Orchestration layer: Kubernetes as an abstraction layer

Kubernetes on both providers (EKS + GKE, or EKS + AKS) gives a common deployment model. But note - this is not automatic portability between providers:

  • Common: Pod spec, Deployment, Service, Ingress (with ingress-nginx/Traefik)
  • Different: Storage classes, Load Balancer annotations, IAM integration (IRSA vs Workload Identity), node pools/groups
  • Dangerous: Assuming a Helm chart works identically on EKS and GKE without testing

Real portability requires:

  1. Abstraction over differences (e.g. External Secrets Operator instead of native secrets)
  2. CI/CD capable of delivering to both clusters (GitHub Actions + ArgoCD with multiple destinations)
  3. Testing on both environments

Networking layer: connectivity between providers

Three approaches, depending on scale:

Approach Bandwidth Monthly cost Complexity
Site-to-Site VPN (IPsec) up to 1.25 Gbps ~$70-150 Low
Managed Interconnect (AWS/GCP) up to 100 Gbps $500-5,000+ Medium
SD-WAN / transit (Aviatrix, Alkira) Variable $1,000+ High

We cover detailed comparisons, configurations, and our implementation experience in our multi-cloud networking article.

Monitoring layer: a single view of everything

This is often the most neglected element. Two providers mean two native monitoring systems (CloudWatch + Cloud Monitoring). You need an aggregation layer:

  • Metrics: Grafana Cloud, Datadog, or self-hosted Prometheus with federation
  • Logs: Grafana Loki, Datadog, or ELK with centralised log collection
  • Traces: Grafana Tempo, Jaeger, Datadog APM with OpenTelemetry Collector on both sides
  • Costs: Kubecost / OpenCost (multi-cluster), plus each provider’s native tools

Key principle: one dashboard, all clouds. If you need to log into two consoles to understand an incident, you have an organisational problem, not a technical one.

FinOps layer: multi-cloud cost control

Each provider has a different pricing model, different discount tools, different reporting. Multi-cloud FinOps requires:

  1. Unified tagging - the same tags (team, environment, service) across both providers
  2. Centralised reporting - a tool aggregating costs (Kubecost, CloudHealth, Apptio)
  3. Separate egress budgeting - inter-cloud transfer as its own budget line item
  4. Egress monitoring - transfer between providers ($0.08-0.12/GB) can catch you off guard

More on cost control strategies in our showback model implementation guide.

 

What multi-cloud actually costs - a realistic calculation

Below is an estimate of operational overhead for a typical organisation (20 engineers, 50 microservices, 2 cloud providers):

Item Single cloud Multi-cloud (2 providers) Overhead
IaC maintenance 8h/mo 14h/mo +75%
Monitoring/observability $500/mo (native) $1,200/mo (cross-cloud tool) +140%
Networking (interconnect) $0 $150-500/mo New cost
Inter-cloud egress (1 TB/mo) $0 $80-120/mo New cost
Team training (annual) €5K €12K +140%
Engineering time on ops 40h/mo 65h/mo +62%
Provider certifications 1 set 2 sets +100%

Estimated multi-cloud overhead: €3,000-5,000/mo for an organisation of this scale. This isn’t an argument against multi-cloud - it’s the information needed for an ROI calculation. If multi-cloud delivers €10K/mo in business value (better tools, reduced risk, negotiating leverage) - it’s worth it.

 

Checklist: are you ready for multi-cloud?

Before making the decision, answer these questions honestly:

  • Do we have a concrete business reason (not technical) for a second provider?
  • Does the team have ≥10 engineers with capacity to specialise?
  • Do we have Terraform (or equivalent IaC) covering 100% of infrastructure?
  • Do we have centralised monitoring capable of aggregating data from multiple providers?
  • Do we understand egress costs and have budget for them?
  • Do we have shared CI/CD capable of delivering to both environments?
  • Do we have a documented strategy (not “let’s see how it goes”)?

If ≥5 answers are “yes” - multi-cloud is feasible. If <5 - focus on one provider and address those gaps first.

 

You have the business reason but lack the team? There’s a third way

We frequently see this situation: the business requires multi-cloud (M&A, best-of-breed, regulation), but the team is 5-8 people without experience on the second provider. Two common mistakes in this position:

  1. Hiring 3-5 specialists for the second cloud - takes 6-12 months, costs €200-400K annually in salaries alone, and the project stalls
  2. Abandoning multi-cloud - you give up the business advantage (better tools, negotiating position, regulatory requirement) because the team isn’t ready

The third way: an external operational partner that covers the competency gap. Not as a one-off project, but as strategic support - short, medium, or long-term.

What this looks like in practice

Model Scope Typical duration For whom
Strategic (1-2 months) Designing multi-cloud architecture, tool selection, implementation plan 4-8 weeks Teams that can implement themselves but need a solid plan
Implementation (2-6 months) Standing up infrastructure on the second provider, configuring connectivity, CI/CD, monitoring 8-24 weeks Teams with limited capacity during implementation
Operational (ongoing) Maintaining the second cloud, patching, monitoring, cost optimisation Indefinite Teams that don’t want to or can’t build in-house competence

Key principle: an external partner should build competence within your team, not create dependency. A good partner documents, trains, and transfers knowledge - gradually reducing their involvement if that’s the goal.

At Devopsity we support organisations on each of these models. We hold active business and technical partnerships with all three major cloud providers (AWS, Google Cloud, Microsoft Azure) - which in practice translates to access to dedicated technical support, discount programmes for clients, and shared reference architectures. If your team isn’t yet ready for multi-cloud but the business demands it - let’s talk strategy.

 

Cloud consolidation - when to simplify the architecture

The opposite of multi-cloud: a situation where you have 2-3 providers but no good reason for it. Typical symptoms:

  • Bills from three providers, none exceeding $2,000/mo
  • Monitoring scattered across CloudWatch, Cloud Monitoring, and Azure Monitor - nobody sees the full picture
  • Each team chose “their” provider with no shared IaC standards
  • AWS/GCP/Azure accounts created “for testing” and never closed
  • No clarity on who pays for what (zero tagging, zero showback)

This isn’t multi-cloud - it’s cloud sprawl (uncontrolled growth of cloud infrastructure). The difference: multi-cloud is a deliberate architectural decision, cloud sprawl is chaos.

When to consolidate

  • The operational cost of maintaining multiple providers exceeds the business value of having them
  • The team lacks competence to properly manage more than one provider
  • No shared management layer (IaC, monitoring, CI/CD, IAM)
  • Workloads across providers don’t differ in character - you’re not using best-of-breed

How to consolidate - step by step

  1. Inventory - what runs where, what the dependencies are, what traffic flows between them
  2. Cost analysis - how much each provider costs (infrastructure + ops + training)
  3. Choose the target provider - based on team competence, cost, and technical requirements
  4. Migration plan - prioritise workloads to move, set timelines and budget
  5. Execute - in stages, with validation after each migration

Consolidation is in practice a migration from one cloud to another - with the difference that the source is another public provider, not on-premise infrastructure.

 

Our perspective

At Devopsity we’ve managed multi-cloud environments since 2020. We’ve implemented AWS+GCP, AWS+Azure, and three-provider configurations. We know from experience that the biggest cost of multi-cloud isn’t the technology - it’s the lack of a coherent strategy leading to two poorly managed clouds instead of one well-managed one.

If you’re considering multi-cloud or you’re already in it and fighting the complexity - book a free consultation. We’ll help assess whether multi-cloud is justified in your case and design a management architecture that won’t spiral out of control.

 

multi-cloud multicloud cloud strategy AWS GCP Azure Terraform Kubernetes cloud architecture vendor lock-in

Read also:

Previous post Next post