white clouds — Çoklu Bulut Stratejisi: AWS, Azure ve GCP'yi birlikte kullanma

Trabzon merkezli 480 araçlık lojistik holding, 3 yıl önce tek bulut (Azure) stratejisinden multi-cloud’a geçti. Bugün Azure + AWS + GCP üçünü birlikte kullanıyorlar. “En iyi servis hangisindeyse oradan al” prensibi. Ama multi-cloud rüya değil; disiplin gerektiren bir model. Bu yazı sahadaki gerçek notlar.

Workload Dağılımı: Hangi İş Hangi Bulutta

Workload Bulut Sebep
SAP S/4HANA + üretim sistemi Azure SAP partnership, M365 + Azure AD entegrasyonu
Veri analizi, BigQuery, ML GCP BigQuery + Vertex AI olgunluğu
S3-tabanlı 3rd party uygulamalar AWS S3 native + Lambda ekosistemi
Müşteri portali (web) Azure Front Door + CDN + AAD B2C
Kurye mobil uygulaması backend GCP (Firebase + Cloud Functions) Firebase real-time + push notification
Yedek dosya storage AWS S3 Glacier Deep Archive En ucuz cold storage
Disaster Recovery AWS (Azure’un yedeği) Provider-independent DR

Identity Federation: Tek SSO

Çalışanlar tek hesapla 3 buluta giriş yapıyor. Microsoft Entra ID master IdP, AWS IAM Identity Center ve GCP Workforce Identity Federation üzerinden federe.

# AWS tarafında trust relationship
aws iam create-saml-provider 
  --name EntraIDProvider 
  --saml-metadata-document file://entra-metadata.xml

# IAM role (federated user için)
aws iam create-role 
  --role-name DataEngineerRole 
  --assume-role-policy-document file://trust-policy.json
  
# GCP Workload Identity Federation
gcloud iam workload-identity-pools create entra-pool 
  --location global 
  --display-name "Entra ID Federation"

gcloud iam workload-identity-pools providers create-oidc entra-provider 
  --location global 
  --workload-identity-pool entra-pool 
  --issuer-uri "https://login.microsoftonline.com/{tenant-id}/v2.0" 
  --attribute-mapping "google.subject=assertion.sub"

Çalışan ayrılınca Entra ID’den hesap silinince 3 bulut da otomatik kapanıyor.

Network: Cross-Cloud Connectivity

  • Azure ↔ AWS: ExpressRoute + Direct Connect üzerinden Megaport gibi cross-connect provider
  • Azure ↔ GCP: Partner Interconnect
  • Inter-cloud private link: Multicloud Networking (Aviatrix veya Equinix Network Edge)

Public internet üzerinden veri taşıma maliyetli + güvenlik riski. Private connectivity şart.

IaC: Terraform Multi-Cloud

Her bulutun kendi tool’u (Bicep, CloudFormation, Deployment Manager) yerine Terraform single source of truth.

terraform {
  required_providers {
    azurerm = { source = "hashicorp/azurerm", version = "~> 3.0" }
    aws     = { source = "hashicorp/aws",     version = "~> 5.0" }
    google  = { source = "hashicorp/google",  version = "~> 5.0" }
  }
  
  backend "azurerm" {
    storage_account_name = "tfstateprod"
    container_name       = "tfstate"
    key                  = "multicloud.tfstate"
  }
}

# Azure Resource
resource "azurerm_storage_account" "primary" {
  name                = "stgproddata"
  resource_group_name = "rg-data"
  location            = "northeurope"
  ...
}

# AWS Resource (DR backup)
resource "aws_s3_bucket" "dr_backup" {
  bucket = "lojistik-dr-backup"
  ...
}

# GCP Resource (analytics)
resource "google_bigquery_dataset" "analytics" {
  dataset_id = "lojistik_analytics"
  location   = "EU"
  ...
}

Observability: Tek Pane of Glass

3 bulutun monitoring tool’u ayrı (Azure Monitor, CloudWatch, Cloud Monitoring). Tek dashboard için Grafana Cloud, üçünden de data source.

  • Azure Monitor → Grafana via Azure Monitor data source
  • CloudWatch → Grafana via CloudWatch data source
  • GCP → Grafana via Google Cloud Monitoring data source

SRE ekibi tek Grafana’da hangi bulutta sorun var görüyor.

Maliyet Yönetimi: 3 Aylık Tag Disiplini

Her resource’un üç tag’i: environment, team, costcenter. 3 buluttan tag bazlı cost report Power BI’da konsolide.

Bulut Aylık (USD) %
Azure $28.400 %62
GCP $11.800 %26
AWS $5.500 %12
Toplam $45.700

Avantajlar (Sahada Doğrulanmış)

  • Vendor lock-in azaldı, müzakere gücü arttı
  • Best-of-breed servis kullanma esnekliği
  • Bölgesel yasal zorunluluklar (KVKK İstanbul region şartı)
  • Provider outage’ında DR opsiyonu

Dezavantajlar (Sahada Doğrulanmış)

  • Operational complexity: 3 bulut = 3 farklı API, 3 farklı CLI, 3 farklı dökümantasyon. SRE ekibinin öğrenme yükü 3 katı.
  • Cost overhead: Cross-cloud network egress + multi-cloud management tool’lar (Aviatrix, Spot.io) ek maliyet.
  • Skill dağılımı: Her uzmanlığı 3 bulut için ayrı tutmak zor. Genelde “Azure derin + AWS/GCP yüzey” karışımı.

Sahada Düşülen Üç Tuzak

  1. Multi-cloud’u “DR için” başlatmak: DR amaçlı multi-cloud yatırım büyük, kullanım az. Önce iş gereksinimi tanımlanmalı.
  2. Tag disiplini olmamak: 3 buluttan gelen cost data tag’siz konsolide edilemiyor. Day 1’den tag policy.
  3. Identity’yi 3 ayrı yerden yönetmek: Çalışan ayrılınca 3 bulut hesabı kapatma unutulur. Tek IdP + federation şart.

CloudSpark olarak multi-cloud strateji danışmanlığı, Terraform ile multi-cloud IaC, identity federation, cross-cloud networking ve observability projeleri için çalışıyoruz.

🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español