Çoklu bulut topolojisi
1) Çoklu bulut haklı gösterildiğinde
Sürücüler:- Güvenilirlik/kullanılabilirlik: sağlayıcı düzeyinde bağımsız arıza bölgeleri.
- Egemenlik/uyumluluk: yargı yetkileri tarafından depolama/işleme (veri ikameti).
- Risk yönetimi: Satıcı-lokin, satın alma/fiyat kollarının azaltılması.
- Coğrafya/performans: Kullanıcıya ve veri kaynaklarına daha yakın.
- Özel hizmetler: Farklı bulutların en iyi "niş" yeteneklerine erişim.
- SDLC/gözlemlenebilirlik/operasyonların önemli karmaşıklığı.
- Çıkış değerinde büyüme ve sağlayıcılar arasındaki gecikme.
- Farklı IAM/ağ modelleri/kotalar/limitler - daha operasyonel riskler.
2) Topolojik desenler
3) Ağ katmanı ve yönlendirme
3. 1 Global Giriş
GSLB/DNS yönlendirme: latency-/health- tabanlı; Geçiş pencerelerine kısa TTL'ler.
Anycast + L7 proxy: tek IP, bölgesel sağlık yönlendirme.
Yargı yetkisine göre politikalar: coğrafi engelleme/coğrafi sabitleme trafiği.
python def pick_cluster(client, intent):
вход: ip, geo, tenant, feature allowed = filter_by_compliance(client. geo) # sovereignty healthy = [c for c in allowed if sdo (c). ok and slo(c). ok]
return argmin(healthy, key=lambda c: latency_estimate(client, c))
3. 2 Bulutlar arası bağlantı
Özel kanallar/mümkünse eşleme; Aksi takdirde - İnternet üzerinden TLS + mTLS.
Çıkış kontrolü: toplama/sıkıştırma, yerel önbellekler/toplayıcılar.
Kod olarak ağlar: Terraform/Blueprints, CIDR politikaları, rotalar ve çıkış ağ geçitleri.
4) Veri ve tutarlılık
4. 1 Modeller
Küresel olarak güçlü tutarlılık, bulutlar arası nadiren gerçekçidir (gecikme/ızgaralar/maliyet).
Pragmatik olay: Çatışma çözümü ile iki yönlü CDC (değişim veri yakalama).
CRDT/idempotency: sayaçlar/kümeler/günlükler için - değişmeli yapılar.
4. 2 Desenler
Giden kutulu çift yazma: işlemsel olay kaydı - broker - komşu buluta çoğaltma.
Read-local/Write-home:'ev "bölgesine/bulutuna yazar, okur - yerel olarak (sürümler ve eski politikalarla).
Bölünmüş beyin koruması: ıraksama tespiti, "tazminat" (saga), parasal değişmezler için manuel tahkim.
DB → Debezium/stream → Events(topic@vN) → Cross-cloud relay → Apply w/ resolver resolver: prefer_higher_version prefer_home business_rule()
4. 3 Nesne depolama
Kovaların asenkron replikasyonu, hash/manifest, dedup.
ILM (sıcak/sıcak/soğuk) politikaları buluttan bağımsızdır.
Egemenlik kuralları: "PII UA/EEA'yı terk etmez" - kod olarak doğrulanır.
5) Kimlik, sırlar ve anahtarlar
Kimlik Federasyonu: Tek IdP, kısa ömürlü belirteçler, boru hatlarında OIDC güveni.
Sırlar: Her bulutun KMS/HSM'si + Vault sınıfı soyutlama; rotasyonlar/anahtarlar için çift anahtarlı.
PoLP/ABAC: özniteliklere dayalı haklar (bulut, bölge, env, data_class).
Kripto etki alanları: yargı bölgeleri için farklı kök anahtarları - kapsama göre kripto silme.
6) Yönetici ortamı: kümeler ve kafesler
Multicluster (K8s): Bulut/bölge başına bir küme; GitOps (ArgoCD/Fleet) üzerinden filo kontrolü.
Сервис - меш: mTLS, yeniden denemeler, devre kesiciler, yük devretme politikaları çapraz küme.
- Statik hizmetler - yerinde.
- Etkileşimli API'ler - her bulutta (Etkin/Aktif).
- Batch/ETL -'yeşil "pencereler/ucuz bölge (karbon/maliyet farkında).
rego package placement
allow[cloud] {
input. service. pii == false cloud:= input. clouds[_]
cloud. features. contains("cheap_gpu")
}
deny["PII outside allowed region"] {
input. service. pii == true not input. target_region in {"eu-central","eu-north","eu-west"}
}
7) Çoklu bulutta gözlemlenebilirlik ve SLO
Çoklu kiralama etiketleri: 'bulut', 'bölge', 'kiracı', 'data _ domain'.
Bulut başına SLI/SLO ve küresel olarak: "≥1 bulut mevcutsa küresel olarak kullanılabilir".
Telemetri toplama: yerel olarak + çıkış kontrolü ile toplama.
İzler: global trace-id, bağlam yayılımı, kuyruklarla kuyruk tabanlı örnekleme.
Karşılaştırma panoları: Uç nokta/p99/hata bütçesi yakma başına A vs B.
8) SDLC/IaC ve "kod olarak politikalar"
Tek IaC mono dizini: sağlayıcı modülleri/yığınları, değişmezler (etiketler, ağlar, şifreleme).
GitOps: bildirimsel manifestolar, sürüklenme algılama, promosyon ortamları.
Uygunluk testleri: API/olay sözleşmeleri, her iki bulut için kanaryalar.
Serbest bırakma kapıları: Bir bulutta SLO'yu ihlal etme riski taşıyan bir blok (yanma oranı tahmini), egemenlik eşleşmelerinin yokluğunda.
yaml gate: multi-cloud-slo-and-compliance checks:
- slo_burn_rate(global) < 1. 0
- slo_burn_rate(cloud:A) < 2. 0
- compliance_rule("pii_in_region") == pass
- egress_forecast < budget on_fail: block_release
9) Maliyet ve karbon (FinOps/GreenOps)
Birim metrikleri: '$/req', '$/GB-çıkış', 'gCO₂e/req'.
Kritik olmayan parti için maliyet/karbon yönlendirme: ucuz/yeşil saatler/bölgeler.
Çıkış sınırı: bulutlar arası trafik için bütçe; önbellek/toplama/sıkıştırma/TTL.
RI/SP/Committed Her bulutta kullanım + spot/preemptible üzerinde "elastik katman".
10) Test başarısız ve egzersizler
Oyun günleri: "Bulut A'yı söndürmek", "veritabanını yavaşlatmak", "çıkış sınırlarını aşmak".
Denetim noktaları: RTO/RPO, DNS yakınsama zamanı, bayrak özellik rulosu, önbellek davranışı.
Serbest bırakmalarda kaos dumanı: bağımlılıkların bozulması, bir geri çekilme dizisine yol açmamalıdır.
11) Güvenlik, gizlilik, uyumluluk
Sıfır Güven: Hizmetler/bulutlar arasında mTLS, eser imzası, SBOM.
DPA/egemenlik: veri kümesi katalogları, yerelleştirme kuralları, ILM'nin üstünde Yasal Bekletme.
Sırlar ve anahtarlar: rotasyon dergisi, oyun kitapları uzlaşma/kill-switch.
Webhook'lar ve harici entegrasyonlar: imza, anti-replay, bölgesel uç noktalar.
12) Veri/olay entegrasyonu şablonları
12. 1 İki yönlü Kafka-köprüsü (fikir):
cloudA. topicX ⇄ relayA→B ⇄ cloudB. topicX cleanup. policy=compact,delete key-based routing idempotent producer
12. 2 Giden kutusu tablosu ve rölesi:
sql
-- outbox id uuid pk, aggregate_id, type, payload jsonb, version int, created_at timestamptz
-- transactional insertion with domain table change
Ardından, bağlayıcı giden kutusunu okur ve olayı yerel broker + rölesine yayınlar.
12. 3 Çatışma stratejisi (sözde):
python def resolve(local, remote):
if local. version > remote. version: return local if remote. version > local. version: return remote equal versions: domain rules return business_tiebreak (local, remote)
13) Anti-desenler
"Her şeyi olduğu gibi iki bulutun içine sürükleyin. "Kazanmadan zorluğu ikiye katlayın.
Sıcak yolda eşzamanlı bulutlar arası işlemler.
Tüm bulutlar/bölgeler için tek global şifreleme anahtarı.
Kılık değiştirmeden ve yerelleştirme kuralları olmadan PII ile günlükler/yollar.
Harici ölçüm yok (gerçek kullanılabilirlik yalnızca sağlayıcının durum sayfasında görünür).
Oyun kitapları/matkaplar yok - DR şu anda çalışmıyor X.
Bir bulutun bozulması sırasında geri alma basamakları (sınırlayıcılar/gölgelendiriciler/kırıcılar yok).
Hesapta olmayan çıkış beklenmedik faturalardır.
14) Mimar kontrol listesi
1. Formüle çoklu bulut sürücüleri (SLO/DR/egemenlik/maliyet)?
2. Seçilen desen (AA/AP/DR-Only/Poly-Service) ve RTO/RPO işlendi mi?
3. Ağ planı: GSLB/Anycast, sağlık örnekleri, çıkış kapağı, özel kanallar?
4. Veriler: CDC/CRDT/çift yazma, çatışma çözme kuralları, giden kutusu?
5. Egemenlik: Veri/bölgeler haritası, politikacılar kod ve kapıları olarak?
6. IAM/sırlar: federasyon, kısa ömürlü belirteçler, etki alanına göre KMS?
7. Kümeler/ağ: yük devretme stratejisi, limitler/kesintiler/zaman aşımları?
8. Gözlemlenebilirlik: etiketler 'bulut/bölge', bulut başına SLO ve küresel, dış sentetikler?
9. SDLC/IaC/GitOps: tek katalog, uygunluk testleri, serbest bırakma kapıları?
10. FinOps/GreenOps: birim metrikleri, çıkış bütçesi,'yeşil "toplu iş pencereleri?
11. Tatbikatlar: düzenli oyun günleri, protokoller ve yeniden testler?
12. Çıkış planı: veri ihracatı/formatları/son tarihler, temel hizmetler için ikinci kaynak?
15) Mini örnek konfigürasyonları
15. 1 Yargı Yönlendirme Politikası (pseudo-YAML):
yaml route:
pii:
allowed_regions: ["eu-central","eu-north","eu-west"]
deny_cross_cloud: false analytics:
allowed_regions: ["eu-","us-"]
prefer_low_carbon: true weights:
eu-central@cloudA: 60 eu-central@cloudB: 40
15. 2 GSLB için sağlık örneği:
http
GET /healthz
200 OK x-region: eu-central x-slo: ok at-risk breach
15. 3 Yük devretme özellikli bayrak (pseudocode):
python if slo_at_risk("cloudA", "payments"):
route. weight["cloudA"] -= 20 route. weight["cloudB"] += 20 enable_stale_rates(ttl=1560)
Sonuç
Çoklu bulut bir mühendislik disiplinidir, etiket değildir. Açık motifler, bilinçli topoloji seçimi, verilerle düşünceli çalışma, güçlü otomasyon ve katı politikalar gerektirir. Riskleri ve maliyeti ölçerseniz, "ders kitabına göre" ağlar ve veriler oluşturursanız, fylovers'ı eğitir ve basitliğe yönelirseniz, çoklu bulut platformu size istikrar, esneklik ve özgürlük sunar - faturalarda sürprizler olmadan ve kullanıcı deneyiminden ödün vermeden.