想象你是一家“环球云餐厅”的主厨兼掌柜。你同时从三个菜市场进货:A菜市场、B菜市场、C菜市场。每个市场的菜价、折扣和傍晚特价都不一样;你的后厨又有四笔开销:食材、冷库、配送和人力。客人并不会因为你换了菜市场就多付钱,所以想提高利润,只能把采购本身变得聪明。你既要看清钱到底花在哪,又要比较按斤买、办年卡、蹲特价菜哪种合适,还要把记账和预算变成每天的例行公事。 云计算的“菜市场”就是多个云厂商。云上跑AI模型、训练任务和在线推理,就像后厨做菜——算力是食材,存储是冷库,跨云流量是外卖配送,运维监控是后厨团队。这篇文章会带你走进这家“环球云餐厅”,从成本构成、定价模式、预留实例、Spot实例、FinOps治理到落地实践,一步步学会怎么把每笔云账单都花在刀刃上。

岗位关联

掌握多云成本优化,你能在AI基础设施预算内做出更多实验、训练更大模型,成为团队里真正会用钱创造价值的人。

目录
  1. 可视化演示
  2. 成本构成剖析
  3. 定价模式对比
  4. 预留实例优化
  5. Spot实例策略
  6. FinOps治理
  7. 降本增效实践
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示跨云定价对比、Spot/预留/按需实例组合优化、以及FinOps持续优化闭环。切换模式探索多云成本管理的不同维度。

本节配有交互动效(进入视口后自动加载,约 3KB)。

跨云GPU实例定价对比 A100按需:AWS $3.50/h、GCP $3.67/h、阿里云 $3.20/h,阿里云比GCP便宜13% TCO需综合单价+数据传输+API调用+技术支持,不能只看表面价格 TCO = price + transfer + API + support 多云定价对比是成本优化的第一步

成本构成剖析

餐厅账本上最醒目的一定是四个大项:食材采购、冷库电费、外卖配送、后厨工资。如果没有这套分类,你只会看到月底“钱没了”,却说不清是被哪一批菜吃掉的。省钱的第一步,不是急着换菜市场,而是把账本拆到最小颗粒度。

云账单同样由四块组成:计算、存储、网络、管理。计算是虚拟机、容器和 GPU 等算力资源;存储是对象存储、块存储和数据库;网络是出网流量、跨云专线和负载均衡;管理是监控、日志、FinOps 工具和人力成本。多云环境下,这四个部分在不同厂商之间的占比差异很大:某一家云可能 GPU 便宜但出网流量贵,另一家存储便宜但计算贵。如果不拆分,就不知道优化应该从哪里下手。

只有把账本拆到这个颗粒度,你才会发现“原来配送费比食材还贵”。在云上,这可能意味着“网络流量比 AI 训练算力还烧钱”。看到真相之后,所有优化策略才有落脚点。

总云成本=C计算+C存储+C网络+C管理\displaystyle \text{总云成本} = C_{\text{计算}} + C_{\text{存储}} + C_{\text{网络}} + C_{\text{管理}}
这个公式说明:云成本不是一坨糊在一起的钱,而是四笔独立账单相加。先分类,才能定位浪费。
  1. 总云成本一个周期内所有云服务费用的总和,是后面所有优化动作的起点。
    总云成本\displaystyle \text{总云成本}
  2. $C_{\text{计算}}$虚拟机、容器和 GPU 等算力资源产生的费用,通常按小时或秒计费。
    C计算\displaystyle C_{\text{计算}}
  3. $C_{\text{存储}}$对象存储、块存储和数据库存储的费用,通常按容量和访问次数计费。
    C存储\displaystyle C_{\text{存储}}
  4. $C_{\text{网络}}$出网流量、跨云专线和负载均衡的费用,多云场景下很容易被忽视。
    C网络\displaystyle C_{\text{网络}}
  5. $C_{\text{管理}}$监控、日志、云治理工具和运维人力的开销。
    C管理\displaystyle C_{\text{管理}}

定价模式对比

在菜市场,买菜有三种方式:按斤现买、办月卡年卡、抢傍晚临期特价。按斤现买最灵活,今天想吃什么就买什么,但单价最贵;办年卡需要承诺一个月的用量,能打折,但吃不完会浪费;抢临期特价单价极低,但摊主随时可能收摊,你必须接受不确定性。

云的计费模式也恰好对应这三种:按需实例、预留实例、Spot 实例。按需实例不绑定任何承诺,随开随停,最适合短时测试和突发流量,但单价最高;预留实例需要承诺 1~3 年的使用时长,换取稳定折扣,适合长期稳定的基座负载;Spot 实例是云厂商的剩余容量,价格随供需波动,可能以极低价格运行,也可能随时被回收。除此之外,同一云厂商在不同区域的定价差异也很大,多云又把这个差异放大到多个厂商之间。

理解这三种采购方式,就像认识了菜市场的基础交易规则:偶尔尝鲜按斤买,日常必需品办年卡,能接受风险的就蹲特价。接下来,我们把“办年卡”和“蹲特价”这两件事分别讲透。

云资源成本=单价×用量\displaystyle \text{云资源成本} = \text{单价} \times \text{用量}
成本由单价和用量共同决定。选对计费模式是压单价,弹性伸缩是压用量。
  1. 云资源成本某类资源在一个计费周期内的总支出。
    云资源成本\displaystyle \text{云资源成本}
  2. 单价所选计费模式下的单位价格,例如每小时价格或每 GB 存储价格。
    单价\displaystyle \text{单价}
  3. 用量实际消耗的时长、容量或流量,是另一个同样重要的乘数。
    用量\displaystyle \text{用量}

预留实例优化

如果你每周稳定吃十碗面,老板会建议你办一张年卡:预付一年,单碗价格打七折。办卡的秘诀是“稳定”,不是“冲动”。如果某天你突然改吃沙拉,年卡里的面就变成了吃不完的库存。

预留实例就是这个“年卡”。你承诺在 1 年或 3 年内持续使用某类实例,云厂商基于承诺给你一个明显折扣。它适合 24/7 运行的基座负载,例如数据库、Kubernetes 控制面、AI 推理服务的常驻实例。好的预留方案还支持规格转换和容量预留,避免因为业务调整导致浪费。到期前要盯紧续费,否则系统会自动退回按需价格,折扣瞬间消失。

年卡不在于“买了多少”,而在于“吃不吃得完”。预留实例也同理:先把历史用量统计清楚,让预留覆盖稳定的基础水位,再把波动部分留给按需或 Spot,才能既享受折扣又不浪费承诺。

节省率=按需单价−预留单价按需单价×100%\displaystyle \text{节省率} = \frac{\text{按需单价} - \text{预留单价}}{\text{按需单价}} \times 100\%
节省率是相对按需原价打了几折。如果按需 1 元、预留 0.7 元,节省率就是 30%。
  1. 按需单价不承诺任何时长时的基准价格。
    按需单价\displaystyle \text{按需单价}
  2. 预留单价承诺 1 年或 3 年用量后享受的折扣价格。
    预留单价\displaystyle \text{预留单价}
  3. 按需单价减预留单价每一单位资源省下来的钱。
    按需单价−预留单价\displaystyle \text{按需单价} - \text{预留单价}
  4. 除以按需单价把节省金额换算成相对原价的折扣比例。
    按需单价−预留单价按需单价\displaystyle \frac{\text{按需单价} - \text{预留单价}}{\text{按需单价}}
  5. 乘以 100%将小数比例转化为更直观的百分比。
    ×100%\displaystyle \times 100\%

Spot实例策略

傍晚菜市场会出现一批临期海鲜,价格只有早上的三分之一。你高高兴兴做成当晚特价菜,但必须接受一个现实:老板随时可能收摊。所以你怎么做?先把贵重的海鲜处理掉,再准备一份备选菜谱,万一食材没了,立刻换菜。

Spot 实例就是云上的“临期海鲜”。它本质是云厂商剩余的计算容量,价格远低于按需,但随时可能被回收。用它的正确姿势是:只跑无状态、容错、可中断的任务,比如 AI 训练的 Checkpoint 续训、批量推理、视频转码。数据库、核心交易、强一致性缓存这类“不能断电”的服务,不适合直接在 Spot 上裸奔。实践中,通常让 Spot 跑大部分便宜任务,再用按需或预留实例兜底,任务被中断后自动从最近检查点恢复。

用临期菜做特价菜,赚的是价格差,付的是不确定性。只要准备好吃“备选菜谱”,Spot 就能从风险源变成降本主力,尤其适合消耗巨大的 AI 训练场景。

E[cost]=Pspot×rrun+Pbackup×(1−rrun)\displaystyle E[\text{cost}] = P_{\text{spot}} \times r_{\text{run}} + P_{\text{backup}} \times (1 - r_{\text{run}})
期望成本是“Spot 能撑住”和“Spot 被回收”两种情况下的加权平均。备选方案越稳,总成本就越可控。
  1. $E[\text{cost}]$Spot 策略下的期望单位成本,综合了正常与异常两种情况。
    E[cost]\displaystyle E[\text{cost}]
  2. $P_{\text{spot}}$Spot 实例的单价,通常远低于按需。
    Pspot\displaystyle P_{\text{spot}}
  3. $r_{\text{run}}$任务在 Spot 实例上可持续运行的比例,或者“不被打断”的概率。
    rrun\displaystyle r_{\text{run}}
  4. $P_{\text{backup}}$Spot 被回收后切换到的按需或预留实例单价。
    Pbackup\displaystyle P_{\text{backup}}
  5. $1 - r_{\text{run}}$Spot 不可用、需要迁移到备份实例的概率。
    1−rrun\displaystyle 1 - r_{\text{run}}

FinOps治理

餐厅如果只靠老板一个人凭感觉记账,月底一定会发现:食材买多了、冰箱空转、外卖包装浪费。真正赚钱的餐厅会建立一套制度——每晚对账、设预算、把每张菜单的成本责任分给每一位厨师。

FinOps 正是云时代的这套“后厨财务制度”。它把财务、技术和业务团队拉到一起,建立成本可见性、预算告警、标签分摊和跨云协作。成本可见性让所有人都能回答“钱花在哪”;预算告警在支出超标前发出提醒;标签分摊通过给资源打上 team=搜索、project=训练 这类标签,把账单归属到具体团队;跨云协作则统一管理多个云账号和多个云厂商的账单。FinOps 的核心不是买一个工具,而是建立“谁使用、谁负责”的文化。

没有制度,所有省钱技巧都只是一阵风;有了 FinOps,优化从“一次运动”变成“肌肉记忆”。哪怕换了新云厂商、新团队,规则也会自动继续运转。

FinOps节省=Cbaseline−Coptimized\displaystyle \text{FinOps节省} = C_{\text{baseline}} - C_{\text{optimized}}
优化的价值必须量化:优化前成本减去优化后成本,中间的差额就是 FinOps 团队创造的利润。
  1. $C_{\text{baseline}}$开始治理之前的历史成本基线。
    Cbaseline\displaystyle C_{\text{baseline}}
  2. $C_{\text{optimized}}$实施预算、分摊和优化策略后的实际成本。
    Coptimized\displaystyle C_{\text{optimized}}
  3. 两者之差通过 FinOps 流程和策略真正节省下来的金额。
    Cbaseline−Coptimized\displaystyle C_{\text{baseline}} - C_{\text{optimized}}

降本增效实践

现在,把前面所有技巧放进同一本菜单:根据客流量决定按量采购还是办年卡,把畅销菜和冷门菜分开存储,把风险高的临期食材交给最灵活的特价菜窗口。真正赚钱的餐厅,靠的不是一次大促销,而是每一道菜背后都有一套成本公式。

从策略到落地,最常用的四个动作是:弹性伸缩、冷热分层、AI 算力调度和自动优化。弹性伸缩让无状态服务根据流量自动扩缩容;冷热分层把热数据放在高性能存储,把冷数据转到对象存储;AI 算力调度把训练任务放到 Spot GPU 上,配合 Checkpoint 自动续跑,推理服务则用预留实例保底;自动优化通过定时开关机和成本自动化工具,持续回收闲置资源。每一个动作单独看都只是省一点,组合在一起就是可观的节省。

当弹性伸缩、冷热分层和 Spot 混合策略进入日常,云账单就不再是“月月惊吓”,而是可预测、可优化、可审计的理性数字。餐厅每一道菜都自带省钱基因,利润自然就长出来了。

单位算力成本=总云成本有效算力时长\displaystyle \text{单位算力成本} = \frac{\text{总云成本}}{\text{有效算力时长}}
这个指标衡量“每一小时有效算力花了多少钱”。分母越大、分子越小,说明资源利用越健康。
  1. 总云成本一个周期内所有云资源的账单总和。
    总云成本\displaystyle \text{总云成本}
  2. 有效算力时长真正在处理业务、跑训练的 CPU/GPU 使用时长,不含空转和闲置。
    有效算力时长\displaystyle \text{有效算力时长}
  3. 总成本除以有效时长得到单位算力成本,数值越低越好。
    总云成本有效算力时长\displaystyle \frac{\text{总云成本}}{\text{有效算力时长}}

AI 应用场景

AI训练团队用 Spot 实例降低成本

阶段:模型训练与算力调度

解决的问题:大模型训练动辄消耗数十万美元的 GPU 成本,全部用按需实例太贵,但又担心 Spot 被回收导致训练中断。

具体案例:一家 AI 公司在跨云训练大模型时,让 80% 的 GPU 节点使用 Spot 实例,每 10 分钟保存一次 Checkpoint。Spot 被回收后,新的 Spot 节点自动从最近 Checkpoint 恢复训练。相比全部使用按需实例,训练成本下降约 60%,而训练完成时间只增加了少量重试开销。

FinOps 工程师做多云成本分摊

阶段:成本治理与预算管理

解决的问题:多个 AI 团队共用一个云账号,账单混乱,无法判断是推荐模型训练更烧钱,还是搜索向量检索更烧钱。

具体案例:FinOps 工程师在三个云厂商的账号里统一打标签 team=搜索/推荐/训练,每周自动生成成本报表,并设置预算告警。当某个团队的 GPU 费用月环比增长超过 30% 时,系统自动通知负责人,把成本问题消灭在萌芽期。

云架构师为 AI 推理服务设计混合计费

阶段:推理服务部署

解决的问题:在线推理要求稳定低延迟,全部用 Spot 不可靠,全部用按需又太贵。

具体案例:云架构师用预留实例覆盖 70% 的基线推理容量,剩下 30% 的突发流量用按需实例,同时把离线批量推理任务调度到 Spot 实例。最终推理服务成本降低约 40%,P99 延迟仍然在 SLA 范围内。

Python 演示

python42 行
# 多云成本优化模拟器# 比较按需、预留和 Spot 三种价格,每小时选择最便宜的资源import math ON_DEMAND = {'cloud_a': 0.8, 'cloud_b': 0.85}RESERVED = {'cloud_a': 0.6, 'cloud_b': 0.62} def spot_price(cloud, t):    base = {'cloud_a': 0.4, 'cloud_b': 0.45}[cloud]    wave = math.sin(t * 6.0 + (1.0 if cloud == 'cloud_b' else 0.0))    return base + 0.3 * wave def best_price(t):    candidates = {        'cloud_a_on_demand': ON_DEMAND['cloud_a'],        'cloud_b_on_demand': ON_DEMAND['cloud_b'],        'cloud_a_reserved': RESERVED['cloud_a'],        'cloud_b_reserved': RESERVED['cloud_b'],        'cloud_a_spot': spot_price('cloud_a', t),        'cloud_b_spot': spot_price('cloud_b', t),    }    return min(candidates, key=candidates.get), candidates def simulate(hours=720):    naive_cost = 0.0    optimized_cost = 0.0    spot_hours = 0    for t in range(hours):        naive_cost += ON_DEMAND['cloud_a']        name, prices = best_price(t)        optimized_cost += prices[name]        if 'spot' in name:            spot_hours += 1    return naive_cost, optimized_cost, spot_hours, hours if __name__ == '__main__':    naive, optimized, spot, hours = simulate()    saving = naive - optimized    print(f'naive_cost={naive:.1f}')    print(f'optimized_cost={optimized:.1f}')    print(f'saving={saving:.1f} ({100*saving/naive:.1f}%)')    print(f'spot_hours={spot}/{hours}')
目的:模拟一个月内始终使用按需和每小时自动选最低价两种策略的总成本差,直观看到 Spot 和预留组合带来的节省。
  1. ON_DEMAND = {'cloud_a': 0.8, 'cloud_b': 0.85}定义两家云的按需价格,作为“不优化”的基准。
  2. def spot_price(cloud, t)模拟 Spot 价格随时间波动,体现“临期特价”的不稳定性。
  3. candidates把 6 种采购方案放进同一个菜单,方便每小时比价。
  4. min(candidates, key=candidates.get)每次选当前最便宜的资源,相当于采购队在菜市场自动找最低价。
  5. naive_cost += ON_DEMAND['cloud_a']不优化时永远用 A 云按需,成本一路走高。
  6. optimized_cost += prices[name]优化后按当前最低价付费,把每次波动都变成省钱机会。
  7. if 'spot' in name: spot_hours += 1统计 Spot 使用时长,观察“临期菜”在整体采购中的占比。

常见误区

误区以为把应用分别放到多个云上,成本自然下降;或者哪个云便宜就把所有资源搬过去。

正解多云真正的好处不是“多接几家”,而是让不同类型的工作负载匹配不同云的最优价格。比如 A 云 GPU 便宜、B 云存储便宜,但如果频繁跨云传输数据,出网流量费可能把省下的钱全吃掉,还要多付一套运维成本。省钱必须算总账,而不是只看单项标价。

为何常见:被“货比三家”的生活直觉误导,忽略了多云存在额外的流量、管理和治理成本。

误区看到 Spot 价格只有按需的三分之一,想直接把数据库和核心 API 全部放上去。

正解Spot 实例随时可能被回收,不适合状态敏感或不能中断的服务。AI 训练任务必须配合 Checkpoint 和自动重启,关键在线服务则要用预留或按需实例兜底。低价的前提是接受“可能随时收摊”。

为何常见:只看到折扣,没有意识到“打折”和“无限供应”是两回事。

误区既然预留有折扣,就把未来两三年可能用到的实例全部提前买断,越多越划算。

正解预留实例绑定承诺和期限,买多、买错规格都会造成浪费。正确的做法是先用历史用量统计确定基线,再让预留覆盖稳定负载,并选择支持灵活规格转换的产品。否则折扣省下的钱,会被闲置资源加倍吃回去。

为何常见:折扣率看起来诱人,但没意识到“不用也是钱”。

误区购买一个云成本可视化工具,账单变好看,成本就会自动降下来。

正解工具只是数据入口,FinOps 的难点在于流程和责任:预算怎么设、标签谁来打、超额由谁负责、多久复盘一次。没有责任制,报表只会变成“没人看的 Excel”。

为何常见:报表最直观,而责任分配更抽象,容易被跳过。

误区为了省钱不敢用 Spot 或压缩资源,担心服务变慢、训练变长。

正解优化不等于降配。合理组合 Spot 跑容错任务、预留覆盖基线、按需承接突发流量,完全可以在不牺牲 P99 延迟的前提下省下可观成本。真正的优化是“用更聪明的方式分配资源”,而不是“用更差的方式运行服务”。

为何常见:把“省钱”和“降低质量”画了等号,忽略了混合策略的价值。

面试题

Q1. 多云成本优化的第一步是什么?

单选题 · easy

  • A.立刻采购Spot实例
  • B.摸清成本和费用构成← 正确答案
  • C.马上更换云厂商
  • D.停掉所有非关键服务

答案:B。第一步是摸清成本构成,否则任何优化都像闭眼点菜。A 和 C 太激进,D 会破坏业务,只有先看清账本,才能知道该优化哪里。

Q2. 按需计费模式最突出的优点是?

单选题 · easy

  • A.单价最低且折扣稳定
  • B.灵活部署无长期承诺← 正确答案
  • C.实例永不中断运行
  • D.容量无限免费使用

答案:B。按需的最大优势是灵活,不需要长期承诺,随开随停。A 是预留实例的特点,C 和 D 都不符合云的实际情况。

Q3. 预留实例最适合承载哪类工作负载?

单选题 · mid

  • A.偶发性的临时测试任务
  • B.24小时稳定的基础服务← 正确答案
  • C.随时可中断的批处理
  • D.完全无法预测的突增流量

答案:B。预留实例的折扣来自“长期承诺”,所以适合 24 小时稳定运行的基座负载。临时测试、可中断批处理和突增流量更适合按需或 Spot。

Q4. Spot 实例被云厂商回收时,通常会发生什么?

单选题 · mid

  • A.立即停止运行并释放资源← 正确答案
  • B.自动升级为更高配置
  • C.切换到预留实例继续计费
  • D.数据自动迁移到本地

答案:A。Spot 被回收时实例会立即停止并释放资源,未持久化的数据会丢失。它不会自动升级,也不会自动迁移,所以必须提前做好 Checkpoint 和重试机制。

Q5. FinOps 中“标签分摊”的主要目的是?

单选题 · mid

  • A.美化账单并隐藏超支
  • B.将成本归属到具体团队← 正确答案
  • C.降低实例的计费单价
  • D.提升云服务的网络性能

答案:B。标签分摊通过给资源打标签,把账单映射到团队和项目,实现“谁使用、谁负责”。它不是用来美化账单,也不直接改变单价或性能。

Q6. 计算预留实例节省率的正确公式是?

单选题 · hard

  • A.预留单价除以按需单价
  • B.按需减预留再除以按需← 正确答案
  • C.按需减预留再除以预留
  • D.按需单价减去预留单价

答案:B。节省率是相对按需原价的折扣比例,分子是每单位省下的钱,分母是原价。A 算的是价格比,C 算的是相对预留的加价率,D 只是差额。

Q7. 以下哪类任务最适合全部使用 Spot 实例?

单选题 · hard

  • A.需要持久化状态的MySQL数据库
  • B.可断点续训的AI模型训练← 正确答案
  • C.用户实时支付交易系统
  • D.强一致性分布式缓存集群

答案:B。Spot 适合可中断、可重算的任务。AI 训练只要定期保存 Checkpoint,就能从断点继续;数据库、支付和强一致性缓存都需要持续运行,不适合 Spot。

Q8. 降低多云环境下计算成本的方法有哪些?

多选题 · mid

  • A.用Spot承载可容错批处理← 正确答案
  • B.为稳定负载购买预留实例← 正确答案
  • C.对开发环境定时关机← 正确答案
  • D.所有任务使用最贵区域

答案:ABC。A、B、C 都是把单价和用量同时压低的正确做法。D 只会让成本更高,违背优化目标。

Q9. 选择 Spot 实例需要考虑哪些配套机制?

多选题 · hard

  • A.定期保存检查点← 正确答案
  • B.自动重试和故障转移← 正确答案
  • C.无状态或可重算任务← 正确答案
  • D.完全不用按需兜底

答案:ABC。Spot 需要 Checkpoint、自动重试和可重算设计来消化中断风险。完全不准备按需或预留兜底,会让关键任务暴露在“突然收摊”的风险中。

Q10. 一个成熟的 FinOps 实践通常包含哪些部分?

多选题 · hard

  • A.成本报表与预算告警← 正确答案
  • B.标签分摊与团队责任制← 正确答案
  • C.定期复盘与规则自动化← 正确答案
  • D.只靠一年一次的账单审计

答案:ABC。FinOps 需要报表可见、预算告警、标签分摊、责任到人和自动化规则,形成持续循环。只靠年度审计无法及时止损,也不符合 FinOps 的“持续优化”理念。