技術和基礎架構→多雲戰略和同步
多雲策略和同步
1)為什麼Multi-cloud
多雲-使用兩個或多個公共雲(或其與on-prem的組合)用於:- 可持續性和DR:減少特定於雲的風險(區域/平臺故障)。
- 地理和合規性:在正確的司法管轄區進行存儲和處理(數據駐留)。
- 生產力和成本:通往附近POP的路線,價格/配額的市場仲裁。
- 獨立於供應商:技術自由和談判力量。
- 問題成本-數據、網絡、身份和更改過程同步的復雜性。
2)基本部署模型
2.1資產放氣(多雲DR)
Prod住在Cloud-A;在Cloud-B-溫暖/熱站立。
RTO/RPO取決於復制深度:從分鐘(旅行)到小時(備份/恢復)。
優點:更簡單,更便宜。缺點:RTO更高,configs「漂移」的風險。
2.2資產資產(兩個作戰平面)
流量分布在Cloud-A/Cloud-B(GeoDNS/Anycast,GSLB,國家/ASN級別)之間。
需要經過深思熟慮的數據一致性和「爆炸射線」隔離。
優點:低RTO/RPO,更接近用戶。缺點:一致性和測試的復雜性。
2.3按域劃分(功能劃分)
雲中的支付核心,與PSP的私人關系更好;內容/目錄-不同。
最大限度地減少跨雲的熱路徑同步。
3)數據同步: 策略和模式
3.1個一致性類型
嚴格(strong):事務同步復制(通常在一個雲/區域內)。
最終(事件):異步復制;適用於目錄、配置文件、分析。
混合數(bounded staleness):在「熱」垂直線之外讀取時有效差(秒/分鐘)。
3.2個復制技術
CDC(更改數據捕獲):雜誌→事件→應用在其他雲中;適用於DWH/報告/緩存。
事件來源:真理來源-域事件流;在每個雲中收集投影。
CRDT/沖突自由結構:用於可編輯的記錄/計數器(例如排名/排名)。
具有等效性的雙重寫作:事件記錄和發布;接收器提供dedupe(outbox/inbox)。
對象存儲:version+跨區域/跨雲復制(帶有egress開銷)。
3.3沖突-決議(示例)
域規則:「最後一次操作僅在相同類型的idempotent命令中獲勝」。
按真相來源排序:支付狀態最終確定錢包,反之亦然。
向量時鐘/邏輯標簽:對於罕見的資產沖突記錄。
補償(傳奇):當出現差異時-域補償(解鎖資產負債表,堆棧交易)。
3.4實用布局(錢包和付款)
團隊(debit/credit)前往Cloud-A/Cloud-B的本地雜誌。
'Wallet事件。changed'通過互連總線發布到兩個雲中。
狀態的最終化僅通過PSP確認;通過「operation_id」進行重復數據消除。
最終報告CDC→DWH在每個雲中收集;仇敵相關字段歸一化。
4)網絡層與全局流量
GSLB(全球服務器負載平衡):GeoDNS/Anycast,按雲進行健康測試,在會話中進行「穩定」。
Mesh over Internet/private links: IPsec/Cloud to Cloud interconnect/private peerings。
Egress控制:通過PSP/KYC的統一列表固定NAT-IP;QoS和限制。
細分:分布/站點的各個子網;東部交通(東西部)的控制是雙向的。
[Users] → [GSLB/Anycast] → (Cloud-A: Edge/API) ↔ (Cloud-B: Edge/API)
[Services / Data A] ↔↔↔ [Services / Data B]
^ Inter-cloud Mesh ^
[DWH/CDC A] [DWH/CDC B]
5)身份,秘密和合規性
IAM聯盟:單個IdP(OIDC/SAML),角色模型投影到兩個雲中;排除雪花。
秘密和KMS:每個雲端的鑰匙(必要時為BYOK/HYOK),輪換;不要直接復制主鍵。
mTLS/簽名:互惠的TLS互惠互惠服務;事件和webhooks由HMAC簽名,並帶有雲密鑰。
數據駐留:標簽/數據類、路由/存儲策略(PII/PCI保留在國內)。
審計:WORM博客,跨雲操作跟蹤,統一更改日誌。
6)平臺和抽象
Kubernetes多集群:每個雲中的集群;通過GitOps(Argo/Flux),聚類配置文件和基於策略的代碼(OPA/Gatekeeper)進行統一。
Service Mesh (multi-cluster): mTLS, retry/breakers, locality-aware routing;明確限制跨雲呼叫。
存儲(CSI)和緩存:避免使用強制同步互換記錄的靜態設置;緩存/讀取-本地,加熱異步。
IaC:用於雲文物的Terraform/Crossplane;具有特定於供應商的「插入」的單個模塊。
DevPortal/服務目錄:關於按雲放置和依賴項的元數據。
7) CI/CD和變更管理
單個mono-repo/mono-spack,帶有按雲參數化(fichi,配額,平衡器類型)。
Canary/Blue-Green per-Cloud:在Cloud-A/Cloud-B+度量比較中單獨發布。
測試矩陣:集成測試「oblako↔oblako」,事件反射,地質合成。
合同評審:Schema Registry通用,兼容性規則(背面兼容的MINOR)。
EOL遷移上的更改凍結:當雲之間的流量滾動時。
8)觀察力和SLO管理
端到端trace_id: 通過網關進行滾動→服務→經紀人→其他雲中的消費者;лейблы `cloud`, `region`, `api_version`, `partner`.
SLO per-Cloud/per-Region:可用性/潛伏性/錯誤和互斥性(復制延遲)行列板。
跨雲同步異常:DLQ生長,「沖突率」增加,CDC滯後。
狀態頁面:按雲和地區劃分的公共狀態。
9) FinOps: 多雲成本
Egress和互惠渠道:主要成本項目;最小化收割機,聚合事件,使用局部投影。
資源重復:warm pools, 每個雲中預留的實例/commits, →平衡。
負載配置文件:以最佳價格/配額將非關鍵背景喬巴轉移到雲中。
「一致性成本」計數器:$/seclag,$/GB復制,$/沖突-業務透明度。
10)iGaming/fintech的案例
付款/錢包(嚴格一致性級別):快速失敗的資產掠奪;狀態最終化事件是真理的唯一來源;日誌復制。
遊戲/促銷/評級目錄:具有事件性的資產資產,統計學家的CRDT計數器;TTL緩存可讀。
向監管機構報告:本地DWH店面,異步跨雲聚合;新鮮度保證(SLO freshness)。
營銷/通知:跨地理/雲編排,跨雲調用限制;消除重復數據發送。
KYC/AML:跨雲並行提供商,響應正常化和單一決策策略。
11)解決方案示例(片段)
11.1 Outbox→CDC(相容性)
BEGIN TX apply(domain_command)
insert into outbox(event_id, aggregate_id, type, payload, hash)
COMMIT
//Replicator reads outbox, publishes to inter-cloud bus;
//receiver executes inbox-dedupe on event_id/hash.
11.2沖突政策(偽)
if operation. type in {CAPTURE, REFUND}:
source = PSP_EVENT elif operation. type in {LIMIT_SET, LIMIT_REMOVE}:
source = RG_SERVICE apply_if_newer(source, aggregate_version)
11.3網絡政策
僅允許「事件」,「idp」,「目錄同步」進行互換呼叫;直接的錢包。write'-禁止(本地)。
12)安全與風險
Blast-radius:限制跨雲帶寬和隊列,使錯誤/環路不會淹沒兩個雲。
自動化:AI-Ops/Ranbook不能在沒有多信號的情況下同時更換兩個雲的同位素。
連接「斷裂」測試:分裂大腦的行為,隊列生長,計時和自動降解。
13)實施支票
1.定義了嚴格/最終一致性域和目標RPO/RTO對域。
2.選擇一個模型(資產/資產-資產/域分割)。
3.互惠網絡:GSLB,mesh/私人鏈接,固定的egress-IP,WAF/機器人保護。
4.Registry中的數據方案,兼容性規則;outbox/inbox無處不在。
5.相似性和重復數據消除(鍵、TTL存儲、hash)。
6.CI/CD:按雲,金絲雀單獨參數化,共享發行中心。
7.Observability:「trace_id」,復制時間,沖突率,DLQ監視。
8.IAM聯盟,KMS/雲秘密,訪問審核。
9.FinOps:egress預算,差額間成本。
10.常規的DR鉆機:雲毛氈機,分裂腦模擬。
14)反模式
通過「熱」路徑(wallet/write)進行同步跨雲交易,→ P99的脆性和尾巴。
用於兩個雲的單個「主群集」DB通過網絡→ SPOF。
沒有數據類別的「全部和一次」復制→成本和沖突的爆發。
缺少outbox/inbox和偶然性→重復的付款/入計。
秘密以「開放形式」通過S3-bucket/管道移動。
未記錄的egress和隱藏的互費服務聊天→不可預測的帳戶。
15)結果
多雲不是控制臺中的「兩個勾選」,而是數據設計,網絡和更改過程的學科。根據一致性要求明確劃分域,限制跨雲「熱」路徑,使用CDC/事件源和冪等性,測量滯後和沖突,並控制成本。然後,多雲將成為穩定性和速度的工具,而不是夜間事件和egress賬單的來源。