逃离公有云!FinOps 成本优化与 DHH 带来的“下云”返璞归真潮

37signals 的 DHH 带头“下云”省下上千万美元,掀起 FinOps 成本优化与裸金属复兴潮。本文讲清云账单里的隐藏税、FinOps 三阶段,以及谁该上云、谁该下云的判断框架与真实案例,值得一读。

2022 年秋天,一条消息在 Hacker News 上炸了锅:做 Basecamp 和 HEY 邮件的 37signals 公司,公开宣布要“逃离 AWS”。带头的人叫 DHH(David Heinemeier Hansson),他不只是这家公司的 CTO,更是 Ruby on Rails 框架的创始人,在程序员圈子里是神一般的存在。他甩出一组数字:公司一年交给亚马逊的云账单高达 320 万美元,而买一堆自己的服务器只要 60 万美元,五年下来能省 700 万美元。后来这个数字越算越大,2024 年更新成五年能省 1000 万美元,相当于基础设施成本直接砍掉一半到三分之二。

这件事像一块石头砸进湖里,激起全行业关于“上云到底值不值”的大讨论。今天我们就顺着这股“下云潮”,把 FinOps(云财务运营)和成本优化的门道,用大白话讲清楚。

延伸阅读

更多相关攻略推荐:Ollama AI系列(2):VPS上的AI推理与API应用Ollama AI系列(2):VPS上的AI推理与API应用【CPU选型 01】搭载 AMD Ryzen 9950X 的 VPSARM / Ampere 席卷 VPS:性价比真香还是兼容陷阱?Ollama AI系列(2):VPS上的AI推理与API应用

一、DHH 的“下云”不是拍脑袋,是算出来的

先澄清一个常见误解:37signals 不是“把所有东西都扔了”。他们做的是外科手术式的迁移。Basecamp 和 HEY 是两款成熟 SaaS,流量稳定、没有明显的大促尖峰,等于“天天都是平常日子”。他们把计算、数据库(MySQL、Redis)、搜索(Elasticsearch)、文件存储这些“稳如老狗”的负载搬到了自己买的戴尔服务器上,托管在两家数据中心(colocation)。而 CDN、边缘计算、灾备和临时扩容这些“云真香”的部分,他们留着。

算账很直观:原来 AWS 上每月云算力开销约 23 万美元,搬到自有硬件(含托管、带宽、硬件折旧、人员)后每月约 8.4 万美元,降幅约 67%,第一年就回本,硬件投资几个月就赚回来。DHH 甚至放话:“任何一家有稳定负载的中型 SaaS,不去比价‘租云 vs 买机器’,现在都算财务渎职。”

二、为什么“上了云反而更贵”

云本来承诺“按需付费、比自建便宜”。对很多公司,这句承诺没兑现。根子在三个“隐藏税”。

1. 出口流量费(Egress):数据的“离场费”

云厂商有个心照不宣的规矩:数据进来免费,出去要收钱。AWS 把出网流量叫 egress,前 100GB / 月免费,之后前 10TB 是 0.09 美元 / GB,阶梯往下到 0.05 美元 / GB。一个开发者分享过:他传了个 13.7GB 的文件火了,AWS 账单一夜之间从 23 美元飙到 2657 美元。这被戏称为“加州旅馆”模式——你随便进,想走?留下买路财。想逃?Cloudflare R2 的出口流量直接免费,就是冲着这痛点来的。

2. NAT 网关与跨区流量:积少成多的“碎钞机”

如果你把服务放在私有子网(为了安全,本该如此),出网流量得过 NAT 网关。NAT 网关每 GB 收 0.045 美元处理费,叠加在 egress 之上,相当于把 0.09 变成 0.135 美元 / GB。更隐蔽的是跨可用区(cross-AZ)流量:同一区域内不同机房之间传数据,每 GB 单程 0.01 美元,往返 0.02 美元。一个每秒 1 万请求的三层应用,光跨区流量一个月就能烧掉 5000 多美元。这些条目在账单第一眼根本看不出来,是“真账单比标题价高 71%”的元凶。

3. 闲置资源与阶梯计价:为用不到的弹性买单

很多生产负载其实是 7×24 小时稳定跑在 30%–60% 利用率的,但你却按“随时能弹性扩缩”的按需价格付钱——等于为根本用不上的弹性付溢价。再加上预留实例、Spot、Saving Plans 一堆阶梯计价选项,没专人盯着,钱就像漏水的水龙头。

三、FinOps:不是省钱,是“把钱花在刀刃上”

FinOps 是 Finance + DevOps 的合体,由 Linux 基金会下的 FinOps Foundation 推广。它的核心不是“抠门”,而是把财务责任感带进云的可变支出模型:让工程、财务、业务团队坐在一起,用数据驱动决策,在“速度、成本、质量”之间做权衡。FinOps 基金会强调它是一门文化实践,目标是让云的每一分钱都产出最大业务价值。

FinOps 有个经典三阶段:告知(Inform)→ 优化(Optimize)→ 运营(Operate)。第一步是把成本实时可视化,谁花的钱、花在哪,一目了然;第二步才是动刀子省钱;第三步把它变成长效机制。具体武器包括:

  • Spot 实例:用云厂商的闲置算力,价格能砍到按需的 1–3 折,适合批处理、CI 这类可中断任务。
  • 预留实例(RI)/ Savings Plans:承诺用满 1–3 年,换长期折扣,适合稳定基线负载。
  • 资源标签(tagging):给每个资源打标签,把成本分摊到团队、项目、产品线,谁浪费谁买单。
  • 浪费治理:关掉没人用的闲置机器、挑掉没挂载的磁盘、清理僵尸快照。

还有个 FinOps 最爱的概念叫“单位经济”(unit economics):别只看总共花了多少,要看“服务一个客户花 x 美元、带来 y 美元收入”。这样你才知道哪些支出合理、哪些在打水漂。

插曲:真实案例,有人省了上千万,也有人踩了坑

光说框架有点抽象,来看两个真实到极致的例子。一个是“下云”的榜样 Dropbox:他们在 2015–2017 年搞了个叫 Magic Pocket 的自建存储系统,把大部分用户数据从 AWS 搬回自己的机房。结果两年里基础设施成本下降了约 7460 万美元,硬件投资 5300 多万美元,公司毛利率从 33% 直接拉到 67%。但别急着抄作业——Dropbox 本身就是做存储的,等于和 AWS 的 S3 正面竞争,又有 5 亿用户的规模撑腰,普通公司根本复制不了。

另一个是正反两面都有的 GEICO:他们花了整整十年把 600 多个应用迁到公有云,结果云账单反而涨了 2.5 倍,现在又往私有云回搬。复盘下来,坑出在四点:把应用“原封不动整体搬”(lift-and-shift)而不改造;迁移时根本没看每个应用的成本;重度依赖 AWS 专属托管服务被锁死;全程没有 FinOps 文化。教训很扎心:一次糟糕的云迁移,比老老实实留在本地还糟。

所以请记住:下云不是万能药,上云也不是必然亏。真正该问的问题是“我的负载到底长什么样”,而不是“大家都在往哪边跑”。

四、混合云与裸金属复兴:谁该上云,谁该下云

讨论到这儿,答案其实不是“全上”或“全下”,而是看负载长什么样。业界给了一套清晰的判断框架。

适合留在公有云:

  • 还没找到产品市场契合(PMF)的创业公司,增长不可预测。
  • 有 10 倍以上流量尖峰的批量任务(比如双十一、黑五)。
  • 重度依赖托管服务(RDS、Lambda、各种 PaaS),自己懒得养。
  • 团队小(少于 100 工程师、少于 3 个基础设施专职),没精力管机器。
  • 需要全球多区域合规和快速地理扩张。

适合下云 / 上裸金属(Bare-Metal):

  • 负载可预测,长期稳定跑满(比如 50 台以上服务器持续 12 个月以上)。
  • 出口流量贵(每月 egress 超过 5000 美元),被“离场费”宰得心疼。
  • 对延迟极度敏感(数据库、高频交易、AI 训练),裸金属 NVMe 磁盘 I/O 延迟只有云的 1/3 到 1/5。
  • 托管服务依赖少,自身工程能力强,能自己管硬件。
  • 优化完云账单后,仍比同等裸金属贵 3–5 倍。

一个实在的经验法则:如果你能比较自信地预测未来 90 天的资源消耗,裸金属几乎一定更便宜。 像 37signals 这种“稳态核心 + 云端弹性边缘”的混合架构,被越来越多公司验证为最优解——稳态部分吃裸金属的性价比,弹性和边缘吃云的真价值,总成本能降 30%–50%。

五、几条掏心窝子的建议

  • 先量再动:把云账单按服务、按团队拆开看,找出真正吃钱的“大胃王”。
  • 别被“全上云”的叙事绑架,也别盲目跟风“下云”,用经济账说话。
  • 稳态负载先优化(Spot / RI / 标签 / 清闲置),省下的可能就够用了。
  • 真要下云,用“外科手术式”迁移:数据库先副本切换,流量 10% / 25% / 50% / 100% 灰度,留 30 天观察再关云资源。
  • 混合架构是大多数公司的终点,不是非此即彼的站队。

DHH 带头的这股“下云返璞”潮,本质上不是反云,而是反“不讲成本的云”。当你的业务从“野蛮生长”走向“精打细算”,FinOps 就是那把帮你把钱花明白的尺子。

常见问题 FAQ

问:什么是云退出(Cloud Exit)?答:云退出指把业务从一家云/VPS 迁走的能力与预案,避免被单一厂商锁定。FinOps 视角下,应评估迁移成本、数据可移植性与供应商依赖,定期演练,确保随时能平替到搬瓦工/RackNerd 等。

问:怎么降低迁移成本?答:用标准格式(OpenStack/KVM 镜像、标准 DB 导出)存数据,配置用 IaC(如 Terraform)管理,文档化架构。避免厂商独有服务(如特定托管数据库),多用可移植组件,迁移时只需改 DNS 与端点。

问:什么时候该考虑换商家?答:当价格续费大涨、线路持续变差、工单响应慢或商家有跑路风险时,应启动退出。提前在多商家做容灾备份,用对象存储跨云同步,切换时先灰度再全量,最小化业务中断。