ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

独家实操|腾讯云助手实现测试资源生命周期治理(一)

独家实操|腾讯云助手实现测试资源生命周期治理(一) 独家实操腾讯云助手实现测试资源生命周期治理一资源登记体系与到期自动回收脚本系列导航第一篇本篇被遗忘的测试资源、资源登记与到期标记体系、自动回收脚本实现第二篇延期申请与审批流程——让人有反悔机会的回收机制第三篇生产白名单与误删防护实战——修复 AI 脚本误匹配生产资源的缺陷一、先看账单被遗忘的资源一年吃掉多少预算FinOps 治理的第一课是先量化浪费。我们盘点了测试环境的资源存量结果触目惊心测试 CVM417 台其中156 台37%近 30 天无任何登录记录——创建后就被遗忘测试数据库实例 89 个29 个僵尸实例连接数连续 60 天为 0仅这两类僵尸资源每月空耗约 2.3 万元云磁盘、弹性 IP、临时 COS 桶的孤儿资源实例已删但附属资源还在计费共 200 项。根因不难找测试资源创建容易、销毁无门——开发者申请时都有正当理由联调、压测、复现 bug用完后没有人记得删也没有机制提醒删。而且直接上自动删除脚本大家又都不敢用误删生产资源的恐惧让所有人选择宁可浪费。这个系列就解决这两件事到期自动回收 绝不误伤生产。核心思路一句话资源创建即登记带 TTL到期自动回收回收前留延期通道生产资源白名单物理隔离。二、资源登记体系TTL 从申请那一刻就开始生命周期治理的前提是每台资源都有身份证。我们定义了强制的资源登记标签Tag规范标签键必填说明示例biz:team是归属团队teamAbiz:owner是责任人工号u88231biz:expire-at是到期时间epoch 秒1790000000biz:purpose是用途联调/压测/复现perf-testenv是环境test/prod三条制度配合标签无标签不创建入口管控——创建测试资源的工具含 Agent 的工具调用强制校验标签完整性缺biz:expire-at直接拒绝。TTL 默认 14 天最长 90 天要更长走第二篇的延期审批到期时间只有未来校验expire-at now防手滑填成昨天每日巡检标签覆盖率无标签存量资源进待认领清单7 天无人认领进入回收流程老资源的特赦通道。让腾讯云助手基于这套规范生成的标签校验与巡检脚本关键部分importtime,datetime REQUIRED_TAGS[biz:team,biz:owner,biz:expire-at,biz:purpose,env]defvalidate_tags(tags:dict)-tuple[bool,str]:forkeyinREQUIRED_TAGS:ifnottags.get(key):returnFalse,fmissing tag:{key}try:expireint(tags[biz:expire-at])exceptValueError:returnFalse,biz:expire-at must be epoch secondsifexpireint(time.time()):returnFalse,biz:expire-at must be in the futureifexpireint(time.time())90*86400:returnFalse,TTL exceeds 90 days, please apply for extensionreturnTrue,okdefdays_to_expiry(tags:dict)-int:expireint(tags[biz:expire-at])return(expire-int(time.time()))//86400三、到期自动回收三级递进先礼后兵回收不是到期即删而是通知 → 停机观察 → 释放三级递进每级之间留缓冲到期前 7 天通知级 —— 企微/邮件提醒 owner 和团队群 到期前 1 天预警级 —— 再次通知 明确告知回收时间表 到期日 T0停机级 —— 实例关机不删除数据保留 到期日 T7回收级 —— 仍无人延期 → 释放实例 到期日 T14清理级 —— 释放附属资源磁盘、EIP、快照转冷或删除为什么先停机再删除因为停机是可逆的、删除是不可逆的。停机后 7 天里真正需要资源的同学会发现服务挂了/连不上了走延期流程一键恢复——这 7 天缓冲期实测拦截了43% 的误回收是整个机制里性价比最高的设计。回收脚本核心生成后经过人工修正缺陷修复见第三篇RECYCLE_POLICIES[{at:-7,action:notify,channels:[wecom,email]},{at:-1,action:notify,channels:[wecom]},{at:0,action:stop},# 停机观察{at:7,action:terminate},# 释放实例{at:14,action:release_attachments},# 清理附属资源]defrun_recycle(all_instances):forinsinall_instances:daysdays_to_expiry(ins.tags)forpolicyinRECYCLE_POLICIES:ifdayspolicy[at]:execute(ins,policy)# 执行前过白名单 审批校验第三篇每个动作执行前必须经过三重闸门任何一关不过即跳过并告警闸门 1环境校验 —— env test 才允许回收动作 闸门 2白名单校验 —— 资源 ID / 名称 / IP 命中生产白名单 → 跳过 高优告警 闸门 3保护期校验 —— 停机 7 天缓冲期内禁止 terminate四、和 Agent 的结合让腾讯云助手管例外规则脚本是骨架Agent 管的是例外——这是规则引擎 AI分工的经典场景意图识别开发者对 Agent 说我的压测机还要用两周Agent 解析出目标资源、调起延期申请第二篇展开孤儿资源归因无标签老资源Agent 结合资源命名、关联负载均衡、历史登录 IP 推断归属团队生成待认领建议清单人确认不自动打标回收报告生成每周自动产出治理周报——回收了多少、节省了多少、谁家僵尸资源最多排行榜的威慑力超出预期。注意 Agent 在这里只有读权限和建议权没有回收执行权。执行永远走脚本 三重闸门Agent 的产出止步于申请/建议。权限边界设计可参考我们前面黑白名单系列的三类动作模型。五、本篇小结测试资源浪费先量化再治理我们 37% 的测试 CVM 是僵尸资源每月空耗 2.3 万登记体系核心是创建即打 TTL 标签无标签不创建存量资源走 7 天待认领特赦通道回收三级递进通知 → 停机 → 释放停机缓冲期拦截了 43% 的误回收——可逆动作永远排在不可逆动作前面每个回收动作过三重闸门环境校验、白名单校验、保护期校验分工原则规则脚本管执行确定性Agent 管例外意图识别、归因建议。下一篇展开延期审批怎么让我还要用这个诉求不变成新的资源沉淀延期要递减、要审批、要留痕以及停机缓冲期内一键恢复的完整流程。做 FinOps 治理的同学欢迎评论区交流你们僵尸资源的占比。
返回列表