技术和基础架构→多云战略和同步
多云策略和同步
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账单的来源。