多云是什么
多云指同时使用两家以上云厂商的服务,动机通常有三个:分散单厂商的故障与涨价风险、按地域就近覆盖用户、满足合规对数据与供应商分散的要求。代价是网络、身份、监控、运维流程、成本模型和人员技能全部要乘二。因此多云的成败关键不在采购环节,而在抽象层:用 Kubernetes 屏蔽运行时差异、用 Terraform 屏蔽资源 API 差异、用 Prometheus 统一监控口径。
基本信息
| 动机 | 规避单一厂商故障与涨价风险、就近覆盖用户、合规分散 |
|---|---|
| 主要挑战 | 网络打通、身份体系、监控告警、价格模型、人员技能各不相同 |
| 抽象层 | Kubernetes 屏蔽运行时差异;Terraform 屏蔽资源 API;Prometheus 统一监控 |
| 网络互联 | 跨云专线或云联网,或智能 DNS 按地域调度 |
| 与混合云区别 | 混合云强调私有 IDC 与云互联,多云强调多家公有云并存 |
典型使用场景
- 风险分散:核心业务主备分置两家云,单厂商区域级故障时不至于全断
- 合规与出海:数据留在境内,计算或 CDN 靠近海外用户部署
- 就近接入:用户分布多地,多家云加智能 DNS 做就近解析
- 议价与防锁定:保持可迁移性,避免单一厂商续费时单方面涨价
- 按能力选型:AI 训练选一家、对象存储与 CDN 选另一家,各取所长
多云流量与数据策略(示意)
多云流量与数据策略(示意)
静态资源:双云对象存储 + CDN 回源主备,图片域名按地域解析
核心数据:单云主库 + 跨云只读副本,写入口唯一避免双写冲突
故障切换:DNS 权重调整 / GTM 健康检查,切换前先验证只读副本延迟
身份:统一 SSO 或网关层收敛,各云 IAM 只保留最小必要角色
编排:Terraform 模块化封装,两家云同一套变量与发布流程抽象层对照
| 层面 | 单云原生做法 | 多云抽象做法 |
|---|---|---|
| 计算运行时 | 各厂商容器服务与函数计算 | 统一跑 Kubernetes,屏蔽托管差异 |
| 资源编排 | 控制台或各厂商 CLI | Terraform 模块化,一套变量两处部署 |
| 监控告警 | 各厂商云监控 | Prometheus + Grafana 统一指标与告警规则 |
| 身份权限 | 各云独立 IAM 账号 | 统一 SSO 或网关收敛,减少账号散落 |
| 数据同步 | 云内主备 | 跨云只读副本或对象存储复制,明确单向写入 |
多云的真实成本在运维复杂度:没有统一 IaC 与监控体系之前,先做同构云(例如两家都跑 K8s)再谈多云,否则故障时要在多个控制台之间来回切换排障。
跨云流量费往往比单云内网贵一个数量级,设计阶段就要明确哪些是高频流量、哪些可以留在单云内部,避免架构做完才发现账单不可接受。