深色模式
成本治理流程
一次性优化能省钱,只有流程才能保证不反弹。本文给出月度审视会的议程、角色分工、输出物和跟踪方式。
适用环境
- 已有账单导出与标签归因
- 有成本看板或能生成报表
- 各服务有明确负责人
bash
# 建立治理目录
mkdir -p finops/{bills,reports,actions}1
2
2
操作步骤
1. 定义例会节奏
| 频率 | 参与人 | 内容 | 时长 |
|---|---|---|---|
| 周 | SRE + 服务负责人 | 看异常告警,处理突增 | 15 分钟 |
| 月 | 团队 + 财务 | 账单复盘、行动项跟踪 | 60 分钟 |
| 季 | 业务 + 技术 + 财务 | 单位成本目标、预算调整 | 90 分钟 |
2. 月度审视会标准议程
text
1. 上月行动项回顾(10 分钟)
- 每条行动项是否完成、节省是否体现在账单上
2. 账单总览(10 分钟)
- 总额、环比、同比、与预算对比
3. 结构分析(15 分钟)
- Top 5 服务花费变化、新增大额计费项
4. 异常排查(15 分钟)
- 环比涨幅 > 30% 的服务逐条说明原因
5. 单位成本(10 分钟)
- 每笔订单、每 GB、每千次请求的单位成本趋势
6. 下月行动项(10 分钟)
- 每条写明动作、负责人、截止日、预期节省1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
3. 准备会议材料(脚本化)
用 Python 自动生成月报数据,避免人工填数字:
bash
python3 finops/monthly_report.py 2026-10 # 输出 finops/reports/2026-10.md1
python
import pandas as pd
cur = pd.read_csv('finops/bills/2026-10.csv')
prev = pd.read_csv('finops/bills/2026-09.csv')
total_cur, total_prev = cur['金额'].sum(), prev['金额'].sum()
print(f"当月 {total_cur:,.0f} 上月 {total_prev:,.0f} 环比 {(total_cur/total_prev-1):.1%}")
by_svc = cur.groupby('服务')['金额'].sum().sort_values(ascending=False)
print(by_svc.head(5))1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
4. 建立行动项跟踪表
markdown
| ID | 提出月份 | 行动项 | 类型 | 预期月省 | 负责人 | 截止 | 状态 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| A-01 | 2026-10 | 日志采样降至 10% | 监控 | 待实测 | <姓名> | 11-15 | 进行中 |
| A-02 | 2026-10 | dev 环境夜间关机 | 计算 | 待实测 | <姓名> | 11-20 | 未开始 |
| A-03 | 2026-09 | 30 天未访问数据转归档 | 存储 | 待实测 | <姓名> | 10-30 | 已完成 |1
2
3
4
5
2
3
4
5
规则:
text
1. 每条行动项必须有负责人和截止日
2. 完成后必须在下月账单核对实际节省(预估 vs 实际)
3. 连续两月未推进的行动项,要么升级要么关闭1
2
3
2
3
5. 建立变更管控(防反弹)
text
反弹的三个来源:
1. 新增资源没有规范(规格随便选、用完不关)
2. 没有预算约束(谁都能开资源)
3. 优化成果没进基线(省了钱又被别处花掉)1
2
3
4
2
3
4
对应管控:
yaml
# 1) CI 中校验 IaC 的规格白名单
# 2) 大额资源创建需审批
# 3) 每月把已实现的节省从预算中扣减(预算递减机制)1
2
3
2
3
bash
# 在 CI 中检查规格是否在允许列表
grep -E 'instance_type|machineType|vmSize' terraform/*.tf | grep -v -E 'allowed-type-1|allowed-type-2' && exit 11
2
2
6. 把成本指标纳入日常
text
1. 服务 README 增加"月度成本"与"单位成本"两行
2. 新服务上线评审包含成本评估(预计月花费)
3. 架构变更评审包含成本影响说明
4. 成本看板放在团队可见的大屏/周报里1
2
3
4
2
3
4
7. 成熟度自评
text
Level 1 起步:能看到账单总额,无人负责
Level 2 可见:按服务/团队分摊,有月度报表
Level 3 优化:常态化清理闲置、rightsizing、有预算告警
Level 4 运营:单位成本纳入业务决策,自动化闭环,节省进基线1
2
3
4
2
3
4
每季度自评一次,明确下一个季度要跨到哪一级。
验证
流程是否健康,看四个数据:
bash
# 1) 归因覆盖率 > 95%
# 2) 行动项完成率 > 70%
# 3) 单位成本季度环比下降
# 4) 未归因/闲置金额持续下降1
2
3
4
2
3
4
text
反面信号:
优化做了三个月,账单总额没变 → 说明省下的钱被新增吃掉了
行动项全是"待实测" → 说明没有真正核算收益1
2
3
2
3
常见坑
只有开会没有跟踪
会议很热烈,行动项没人跟进,下月还是同样的问题。行动项必须有 ID、负责人、截止日,且上月必回顾。
节省没进基线
优化省了 10 万,次月新增花掉 10 万,账单持平。必须实施预算递减:把已实现的节省从下月预算中扣除。
只看总额不看单位成本
业务量翻倍时总额上涨是正常的,此时压总额会误伤业务。单位成本才是判断效率的正确指标。
治理只靠 SRE 推动
没有业务方和财务参与的治理,最后会变成"运维单方面限流"。季度会必须让业务方看到单位成本与业务价值的关系。