目录项是标准化定义
自助交付的前提是把可交付的能力标准化成目录项。目录项不是一条命令,而是一份完整定义:交付什么、有哪些可选参数、谁能申请、审批路径如何、交付后用户拿到什么。申请模型则把用户的一次请求变成可跟踪实例,包含参数快照、审批状态、执行状态与交付结果。
基本信息
| 目录项要素 | 交付内容、可选参数、适用对象、交付时限 |
|---|---|
| 申请模型要素 | 请求标识、参数快照、状态机、交付物 |
| 状态机 | 已提交、审批中、执行中、已交付、已关闭、已拒绝 |
| 权限模型 | 按团队或角色限定可申请范围 |
| 配套信息 | 使用说明、限制条件、回收规则 |
典型使用场景
- 资源类申请:虚机、存储、数据库实例等需要审批的标准化交付
- 环境类申请:测试与演示环境,通常附带有效期与自动回收
- 权限类申请:账号、密钥、访问策略,强调审批与到期复审
- 制品类申请:证书签发、域名解析、制品库仓库创建
- 目录治理:定期清理长期无人申请的目录项,避免目录无限膨胀
目录项必备字段
| 字段 | 作用 | 缺位后果 |
|---|---|---|
| 交付内容 | 明确产出物与范围 | 用户预期与实际交付不一致 |
| 参数定义 | 可选值与默认值 | 用户填错参数导致交付失败 |
| 适用对象 | 明确谁能申请 | 越权申请绕过资源配额 |
| 交付时限 | 给出完成时间承诺 | 无预期,催办频繁 |
| 回收规则 | 有效期与回收方式 | 资源长期闲置无人回收 |
声明式定义目录项
声明式定义目录项
# 目录项以声明式方式定义,申请与交付都按同一份定义执行
name: mysql-instance
outputs: [endpoint, database, secret-ref] # 交付物清单
parameters:
- name: size
allowed: [small, medium] # 限制可选值,避免非法输入
default: small
- name: ttl_days
default: 90 # 到期自动回收
access: [team-app, team-data] # 可申请范围
approval: manager-plus-owner # 审批路径申请模型需要固定参数快照。参数被后续修改而交付记录不保留快照时,出现问题后无法还原当时的申请内容,复现与责任划分都缺少依据。
目录项缺少回收规则会持续累积闲置资源。环境与权限类交付尤其需要默认有效期,否则资源只增不减,配额被历史申请长期占用而新申请无法交付。