2026 年,云计算正在从“上云用云”走向“精细化成本治理”。
过去,企业上云更多关注资源是否够用、系统是否稳定、业务是否能快速上线。云服务器、数据库、对象存储、负载均衡、容器集群和 AI 算力资源不断增加,研发团队可以更快交付业务。
但随着云资源规模变大,新的问题开始出现。
哪些资源长期闲置?
哪些实例配置过高?
哪个项目的费用增长最快?
预算是否即将超支?
是否存在夜间无用资源持续运行?
因此,云成本治理开始成为企业云管理的重要方向。
它的核心不是简单省钱,而是在保障业务稳定的前提下,通过资源画像、费用分析、预算预警和自动优化,让云资源使用更加透明、可控和高效。
云资源的特点是弹性强、创建快、计费细。
这带来便利,也带来成本失控风险。
一个测试环境忘记关闭,一个高规格实例长期低负载,一个对象存储桶持续增长,一个 GPU 任务没有及时释放,都可能让云账单快速上升。
云成本治理系统可以帮助企业回答几个问题:
下面用 Python 写一个简化版云成本治理系统。
第一步是准备云资源数据。
每个资源包含项目、类型、规格、CPU 利用率、内存利用率和日费用。
import json
from datetime import datetime
from collections import defaultdict
CLOUD_RESOURCES = [
{
"resource_id": "ecs_001",
"project": "商城系统",
"resource_type": "ecs",
"spec": "4C8G",
"cpu_usage": 12,
"memory_usage": 28,
"daily_cost": 38.5,
"env": "prod"
},
{
"resource_id": "ecs_002",
"project": "测试平台",
"resource_type": "ecs",
"spec": "8C16G",
"cpu_usage": 3,
"memory_usage": 12,
"daily_cost": 72.0,
"env": "test"
},
{
"resource_id": "db_001",
"project": "订单中心",
"resource_type": "database",
"spec": "16C32G",
"cpu_usage": 55,
"memory_usage": 68,
"daily_cost": 220.0,
"env": "prod"
},
{
"resource_id": "gpu_001",
"project": "AI训练",
"resource_type": "gpu",
"spec": "A10",
"cpu_usage": 6,
"memory_usage": 20,
"daily_cost": 480.0,
"env": "dev"
}
]
PROJECT_BUDGET = {
"商城系统": 2000,
"测试平台": 800,
"订单中心": 6000,
"AI训练": 5000
}云成本治理的前提,是资源必须有归属。
如果资源没有项目、部门和环境标签,就很难判断费用应该由谁负责。
第二步是识别低利用率资源。
CPU 和内存长期偏低,说明资源可能过度配置。
def analyze_resource_usage(resource):
cpu = resource["cpu_usage"]
memory = resource["memory_usage"]
if cpu < 10 and memory < 20:
level = "very_low"
message = "资源利用率很低,建议重点检查是否可释放或降配。"
elif cpu < 25 and memory < 35:
level = "low"
message = "资源利用率偏低,建议评估是否可以优化规格。"
else:
level = "normal"
message = "资源利用率处于合理范围。"
return {
"resource_id": resource["resource_id"],
"resource_type": resource["resource_type"],
"project": resource["project"],
"usage_level": level,
"cpu_usage": 1867.t.kuaisou.com
"memory_usage": memory,
"message": message
}利用率分析是成本优化的第一步。
企业不应该只看资源数量,更要看资源是否真正被使用。
第三步是按项目汇总费用。
def summarize_project_cost(resources):
project_cost = defaultdict(float)
for resource in resources:
project_cost[resource["project"]] += resource["daily_cost"]
results = []
for project, daily_cost in project_cost.items():
monthly_cost = daily_cost * 30
budget = PROJECT_BUDGET.get(project, 0)
if budget and monthly_cost > budget:
status = "over_budget"
message = "预计月费用超过预算。"
elif budget and monthly_cost > budget * 0.85:
status = "near_budget"
message = "预计月费用接近预算上限。"
else:
status = "normal"
message = "费用处于预算范围内。"
results.append({
"project": project,
"daily_cost": round(daily_cost, 2),
"estimated_monthly_cost": round(monthly_cost, 2),
"budget": budget,
"budget_status": status,
"message": message
})
return results项目费用汇总可以让成本责任更清楚。
当费用按项目透明展示后,研发、运维和财务才能共同治理成本。
第四步是根据利用率和环境生成优化建议。
def generate_resource_optimization(resource, usage_result):
suggestions = []
if usage_result["usage_level"] == "very_low":
if resource["env"] in ["test", "dev"]:
suggestions.append("该资源属于非生产环境,建议设置自动关停策略。")
else:
suggestions.append("该资源利用率极低,建议评估是否可降配。")
if usage_result["usage_level"] == "low":
suggestions.append("建议观察连续 7 天利用率,再决定是否降配。")
if resource["resource_type"] == "gpu" and resource["cpu_usage"] < 10:
suggestions.append("GPU 资源成本较高,建议确认训练任务是否仍在运行。")
if not suggestions:
suggestions.append("当前资源无需立即优化,建议持续监控。")
return {
"resource_id": resource["resource_id"],
"project": resource["project"],
"suggestions": suggestions
}优化建议不能简单粗暴地删除资源。
生产资源需要谨慎处理,测试和开发资源则可以更积极地设置自动关停。
第五步是根据项目费用生成预算预警。
def generate_budget_alerts(project_costs):
alerts = []
for item in project_costs:
if item["budget_status"] == "over_budget":
alerts.append({
"project": item["project"],
"level": "high",
"message": "项目预计费用已超过预算,建议立即分析成本构成。"
})
elif item["budget_status"] == "near_budget":
alerts.append({
"project": item["project"],
"level": "medium",
"message": "项目费用接近预算上限,建议提前控制新增资源。"
})
if not alerts:
alerts.append({
"project": "all",
"level": "normal",
"message": "当前项目预算状态整体正常。"
})
return alerts预算预警可以让企业提前发现成本风险。
等到账单出来再处理,往往已经错过最佳优化时机。
最后把利用率、项目费用、预算预警和优化建议合并成报告。
def run_cloud_cost_governance():
usage_results = []
optimization_results = []
for resource in CLOUD_RESOURCES:
usage = analyze_resource_usage(resource)
optimization = generate_resource_optimization(
resource,
usage
)
usage_results.append(usage)
optimization_results.append(optimization)
project_costs = summarize_project_cost(
CLOUD_RESOURCES
)
budget_alerts = generate_budget_alerts(
project_costs
)
total_daily_cost = sum(
item["daily_cost"]
for item in CLOUD_RESOURCES
)
report = {
"report_name": "云成本治理 FinOps 分析报告",
"total_daily_cost": round(total_daily_cost, 2),
"estimated_monthly_cost": round(total_daily_cost * 30, 2),
"usage_results": usage_results,
"project_costs": project_costs,
"budget_alerts": 30523.t.kuaisou.com
"optimization_results": optimization_results,
"generate_time": datetime.now().isoformat()
}
return report
if __name__ == "__main__":
report = run_cloud_cost_governance()
print(json.dumps(
report,
ensure_ascii=False,
indent=2
))从这套流程可以看到,云成本治理正在从财务报表走向实时运营。
未来,企业不会只在月底查看云账单,而会在资源创建、运行、扩容和释放过程中持续分析成本。
FinOps 的核心不是单纯压缩费用,而是让技术团队、财务团队和业务团队共同理解资源价值。
谁能把资源标签、利用率、预算预警和自动优化结合起来,谁就更容易在云时代保持成本竞争力。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。