diagram.mmd — flowchart
Multi Cloud Architecture flowchart diagram

Multi-cloud architecture is the practice of distributing workloads, data, and services across two or more cloud providers — reducing vendor lock-in, improving resilience against provider outages, and enabling workload placement based on each provider's unique strengths.

A multi-cloud strategy is distinct from a simple DR (disaster recovery) setup. In active-active multi-cloud, workloads run simultaneously on multiple clouds and traffic is balanced across them. This requires solving several hard problems:

Traffic routing: A global DNS-based or anycast load balancer (Cloudflare, AWS Route 53 latency routing, or a dedicated multi-cloud networking layer like Aviatrix) directs user requests to the lowest-latency or healthiest cloud region. Health checks monitor each cloud endpoint and failover traffic within seconds if one provider's API or a whole region becomes unavailable.

Data synchronization: The hardest part of multi-cloud. Databases must be replicated or sharded across providers. Managed databases (CockroachDB, Spanner, PlanetScale) offer multi-region replication. Object storage uses CRR (Cross-Region Replication) extended across clouds. Eventual consistency trade-offs must be explicit.

Identity federation: A federated identity provider (Okta, Auth0) issues tokens that are trusted by all cloud providers, avoiding the need to manage separate IAM users in each cloud.

Infrastructure as Code: Terraform with provider configurations for AWS, GCP, and Azure enables consistent provisioning across clouds. See Infrastructure as Code Pipeline for the deployment workflow.

Observability: Centralised logging and monitoring aggregates signals from all clouds into a single pane of glass. See Cloud Monitoring Pipeline.

Free online editor
Edit this diagram in Graphlet
Fork, modify, and export to SVG or PNG. No sign-up required.
Open in Graphlet →

Frequently asked questions

Multi-cloud architecture is the practice of distributing workloads, data, and services across two or more cloud providers. It reduces vendor lock-in, improves resilience against provider-specific outages, and enables workload placement based on each provider's unique strengths and pricing.
Multi-region failover uses multiple regions within a single cloud provider for resilience — it is simpler to operate but creates lock-in. Multi-cloud spans multiple providers, which maximises resilience against provider-level outages and eliminates vendor lock-in, but introduces significantly higher operational complexity around data synchronisation, identity federation, and tooling consistency.
Adopt multi-cloud when regulatory requirements prohibit single-provider dependency, when specific workloads are served significantly better by one provider's managed services (e.g., BigQuery on GCP, Redshift on AWS), or when negotiating leverage and commercial risk distribution across providers has strategic value. Avoid it if your team lacks the operational maturity to manage multiple cloud control planes.
mermaid
flowchart TD User([Global User Traffic]) --> GLB[Global Load Balancer\nDNS latency routing / anycast] GLB -->|Healthy| AWS[AWS Region\nus-east-1] GLB -->|Healthy| GCP[GCP Region\nus-central1] GLB -->|Failover| Azure[Azure Region\neastus] AWS --> AWSApp[App Cluster\nEKS / ECS] GCP --> GCPApp[App Cluster\nGKE] Azure --> AzureApp[App Cluster\nAKS] AWSApp --> AWSDB[(AWS RDS\nPostgres primary)] GCPApp --> GCPSvc[GCP ML Services\nVertexAI / BigQuery] AzureApp --> AzureDB[(Azure Cosmos DB\nNoSQL workloads)] AWSDB -->|Cross-cloud replication| AzureDB FederatedIDP[Federated Identity\nOkta / Auth0] --> AWS FederatedIDP --> GCP FederatedIDP --> Azure IaC[Terraform\nmulti-provider config] --> AWS IaC --> GCP IaC --> Azure Observability[Central Observability\nDatadog / Grafana] --> AWSApp Observability --> GCPApp Observability --> AzureApp
Copied to clipboard