title: 当“多活”不再等于多付一倍账单:2026,云厂商开始把区域故障卖成架构选择题
date: 2026-09-22 10:00:00
categories:
- 1
tags:
- 云计算
- 开发者
- 商业
过去十年,云厂商卖可靠性有一句几乎不用解释的话:要扛住一个区域挂掉,就再买一个区域。架构师把这叫多活,财务把它叫账单翻倍。2026 年,这句口号开始显得过时——不是因为故障变少了,而是因为客户开始公开算一笔更难看的账:真正打穿业务的,往往不是“一个区彻底没了”,而是一个区里的某一项托管服务变慢、限流、或者悄悄返回错误。
于是你会同时看到两件看起来互相打架的事。一边,AWS、Azure、Google Cloud 都在加可用区、加区域、把跨区复制写进默认选项;另一边,越来越多中型团队公开承认,他们的生产环境仍然是“单区域加备份”,所谓多活只存在于架构图的右上角。真正发生的变化更具体:云厂商不再只卖“再开一个区”,他们开始把故障域拆成可以单独计价的产品。
区域挂了,只是故障故事里最干净的那一种
可用区(AZ)和区域(Region)是云厂商自己画的边界。一个区域里通常有多个可用区,官方口径是:区与区之间电力、网络相对独立,延迟又低到能做同步复制。客户被教育了很久:跨可用区部署,就能扛住单区故障;跨区域部署,才能扛住整个区域消失。
这套分层在教科书里是对的,在事故复盘里经常不够用。
过去几年公开的云故障里,有相当一部分并不是“整个区域断电”。更常见的是控制面卡住、某个托管数据库的 API 限流、对象存储的某一类请求异常、身份服务抖动带动下游一起超时。应用跨了三个可用区,请求却都要先问同一个区域级的控制面或者同一套托管队列——可用区冗余在这一刻帮不上忙。流量切到另一个区域,也要先解决数据复制延迟、DNS、证书,以及那套“平时不用、出事才碰”的切换脚本到底有没有演练过。
所以 2026 年更诚实的说法是:
- 可用区冗余,对付的是机器、机架、单区电力这一类相对局部的故障。主流云的 SLA 大体按这个口径写,证据比较扎实。
- 区域级多活,对付的是整个区域不可用。工程上做得到,但成本、数据一致性和切换演练都远比图上画的重。
- 控制面和单点托管服务故障,经常既不是第一种,也不被第二种自动解决。很多人买了多活,死法却落在这第三种。
把这三层揉成一句“上云就高可用”,是这几年架构采购里最贵的误会。
账单翻倍,买到的常常是一份未演练的剧本
多活贵,不只是因为虚机和数据库要买两份。
跨区域复制要为流量付出口费。托管数据库的跨区副本通常按份计价,写入还有额外延迟。全局负载均衡、健康检查、流量切换,各自是一条产品线。更隐蔽的成本是人:两套环境的配置漂移、发布顺序、密钥轮换,以及每年至少该做一次的故障切换演练。没演练过的多活,本质是一份文档。出事时你发现 DNS 的 TTL 是一天、备份区域的容量只够平时的两成、有个定时任务只部署在主区域——这些都不是控制台里一个勾选框能提前告诉你的。
反方意见很硬,而且经常是对的:对支付、交易、某些监管行业,区域级故障的尾部损失远大于两倍账单。这些团队不是在买“感觉安全”,他们买的是可以写进合规材料的故障域隔离,以及出事时不用向董事会解释“我们只有一个区域”。2026 年这批客户不会退回单区。他们会继续加预算,甚至要求云厂商把跨区切换做成更可审计的产品,而不是一堆需要自己拼的 API。
分歧出在中间那一大段客户。对他们来说,两倍基础设施成本换一次几年遇不上的区域级全灭,账算不过来;但“什么都不做,等区域挂了再看”,在客户和投资人面前又越来越站不住。云厂商看懂了这个夹缝,于是产品开始变形。
卖的不再是第二个区域,而是可选的故障半径
看 2026 年三家的产品语言,重复度很高,只是名字不同。
有的把数据库的跨区副本从“你自己再开一套”收成一个勾选:平时付复制和存储的钱,故障时再把计算拉起来。有的把对象存储的跨区复制做成策略里的一档,而不是一个架构项目。有的把流量切换从“自己写健康检查加改 DNS”收成全球入口上的一个策略。托管 Kubernetes 这边也一样,多集群、多区域被包装成平台功能,而不是每个团队自己养一套联邦。
这些功能有一个共同的商业逻辑:把过去必须成套购买的多活,拆成可以只买其中一层的菜单。
你仍然可以把整套业务做成双区域同时接流量,那是菜单最上面、最贵的一档。你也可以只给状态层买跨区复制,计算层留在一个区域,接受故障时有一段不可用,但数据不丢。你还可以更省:单区域、多可用区,外加定期把备份复制到另一个区域,恢复时间按小时而不是按分钟来承诺。这三档对应的不是技术信仰,是三份不同的停机损失估算。
云厂商愿意拆菜单,因为中间档的毛利往往更好看。客户不再因为“买不起完整多活”而停留在最便宜的单区虚拟机上;他们会多买一档复制、一档全球入口、一档托管备份。云厂商也不必为每一个中型客户承担“整个区域挂了业务还在”这种很难审计的隐含承诺。产品页因此变得谨慎:多写“降低区域故障的影响”,少写“区域挂了你无感”。
公开材料通常只给设计目标和价目表,不给具体工作负载的复制延迟,也不保证控制面半死时切换还能完成。厂商博客里的成功案例,样本量就是那一个客户。把它当成“行业已经默认多活”,证据不足。更稳的判断是:产品形态正在从项目制变成菜单制;每一档是否兑现,仍然要靠你自己的演练。
自建机房的人,买的是同一道题
自建团队面对的是同一道题,只是故障域从“区域”换成了“机房”:状态复制到什么半径,计算要不要两地同时接流量,切换脚本上次演练是什么时候。公有云把这道题做成价目表,自建团队把它做成人头和值班表。算错的方式一样——都是把“图上有两个机房”当成“业务已经能切过去”。
应用也得接得住这档菜单。如果所有写入都假设落在同一个数据库连接后面、定时任务全局只有一份,跨区副本就只是一份更贵的备份。平台可以复制字节,不能替你决定两个区域各写了一次时听谁的。能自带跨区复制的引擎,卖的是“换云时故障域还在”;绑死在某一家托管服务里的引擎,卖的是“你不用自己碰复制协议”。采购时把它们当成同一种“多活”,后面一定有人补账单。
采购时真正该问的三句
如果 2026 年还在用“我们要不要上多活”这种是非题做决策,结论多半会偏。更有用的是把问题拆开:
- 我们要隔离的是哪一种故障? 单台机器、单个可用区、整个区域,还是某一个托管 API?四种答案对应四种完全不同的账单。
- 数据允许丢多少、允许多久不可用? 没有这两个数字,跨区复制只是架构图上的装饰。恢复点目标和恢复时间目标,比“双活”两个字更接近合同语言。
- 切换上次跑通是什么时候? 没演练过的菜单项,不应该写进对客户的可用性承诺里。云厂商的 SLA 覆盖的是他们的服务,不是你的切换脚本。
反方会说,中小团队根本没有精力做这种分级,买最贵的一档最省心。这对极少数业务成立。对大多数业务,最贵的一档意味着两套发布、两套容量,和一次可能永远不发生的区域级全灭。省下来的钱如果连一次年度演练都不做,那只是把风险从云账单挪到了事故报告里。
一句话:2026 年的云可靠性,正在从“再买一个区域”变成“你愿意为哪一种故障半径付钱”。区域还是那个区域,变的是云厂商终于承认,大多数客户买不起、也不需要一份永远在线的第二个自己。