4. 自助服务设计原则:以用户为中心、标准化与模板化、可观测性、自愈与回滚能力
SRE 值班台的自助服务不是简单地把工单页面搬到 Portal 上,而是一套围绕“降低认知负载、提升首次解决率、保障交付质量”的设计体系。本节围绕四项核心原则展开,每项原则都直接对应值班场景中的具体痛点。
4.1 四项原则概览
| 原则 | 核心目标 | 值班场景痛点 | 设计要点 |
|---|---|---|---|
| 以用户为中心 | 降低认知负载,减少上下文切换 | 值班人员不熟悉底层架构,填单耗时 | 引导式表单、预填默认值、自然语言搜索 |
| 标准化与模板化 | 消除二义性,提升审批通过率 | 同一资源申请有 5 种写法,反复驳回 | 资源规格模板、命名规范、参数校验 |
| 可观测性 | 申请进度透明,异常可追溯 | 提交后不知道卡在哪一步,只能@人 | 状态可视化、链路追踪、SLO 仪表盘 |
| 自愈与回滚能力 | 失败时自动恢复,不产生残留资源 | 申请失败后残留半创建资源,需人工清理 | 幂等重试、自动回滚、资源回收 |
4.2 以用户为中心:从“系统视角”转向“值班视角”
传统资源申请表单往往按照后端 API 字段排列,值班人员需要理解“VPC ID”“安全组规则”“实例规格编码”等概念。以用户为中心的设计要求将表单重组为值班人员熟悉的语言。
- 引导式表单:第一步选择“我要申请什么”(测试环境 / 预发环境 / 生产环境),第二步选择“资源类型”(云主机 / 数据库 / 负载均衡),第三步自动过滤可用规格。
- 智能预填:根据值班人员身份、当前值班项目、历史申请记录,自动填充 60% 以上的字段。
- 错误提示前置:在输入阶段实时校验,而不是提交后返回 400 错误。
实践案例:某团队将“实例名称”字段从自由输入改为“项目-环境-用途-序号”的拼接选择器,命名规范率从 45% 提升至 98%,审批驳回率下降 72%。
4.3 标准化与模板化:让每一次申请都是“可复用的资产”
标准化解决的是“同一件事,不同人做出来不一样”的问题。模板化则把标准固化为可一键使用的配置包。
4.3.1 资源规格模板
| 模板名称 | 适用场景 | CPU | 内存 | 磁盘 | 网络带宽 |
|---|---|---|---|---|---|
| web-small | 低流量 Web 服务 | 2 核 | 4 GB | 40 GB SSD | 100 Mbps |
| web-medium | 常规业务 API | 4 核 | 8 GB | 80 GB SSD | 200 Mbps |
| db-small | 开发/测试数据库 | 4 核 | 16 GB | 200 GB SSD | 500 Mbps |
| cache-medium | Redis 缓存集群 | 8 核 | 32 GB | 100 GB SSD | 1 Gbps |
4.3.2 命名与标签标准化
# 资源命名规范(自动拼接)
{项目代号}-{环境}-{资源类型}-{序号}
示例:sre-prod-ecs-001
# 标签规范(自动注入)
labels:
team: sre
environment: production
cost-center: platform
owner: ${申请人}
created-by: self-service
关键指标:标准化模板覆盖率应达到 100%,不允许值班人员手动输入未定义的规格参数。模板的变更必须经过变更管理委员会审批。
4.4 可观测性:让申请流程“透明化”
值班人员提交申请后,最焦虑的是“不知道进行到哪一步了”。可观测性设计需要覆盖三个层面:流程状态、执行日志、SLO 达成。
- 状态可视化:每个申请实例在 Portal 上显示“提交中 → 审批中 → 资源创建中 → 配置注入中 → 完成”的实时进度条,并附带预计剩余时间。
- 链路追踪:每个步骤记录开始时间、结束时间、调用方、返回码。失败时直接显示错误详情和修复建议。
- SLO 仪表盘:自助服务自身需要满足 SLO(如 P95 申请完成时间 < 5 分钟,成功率 > 99.5%),并在值班台首页展示。
4.5 自愈与回滚能力:失败是常态,自动恢复是底线
资源申请流程涉及多个外部系统(云平台 API、CMDB、DNS、监控系统),任何一个环节失败都可能导致“半创建”状态。自愈与回滚能力确保失败不会留下残留。
4.5.1 幂等重试机制
# 幂等键设计
idempotency_key = f"{申请ID}-{步骤序号}-{重试次数}"
# 重试策略(指数退避 + 抖动)
retry_policy:
max_attempts: 3
base_delay: 1s
max_delay: 10s
jitter: 0.2
retryable_errors:
- timeout
- rate_limit
- server_error
4.5.2 自动回滚策略
| 失败阶段 | 回滚动作 | 补偿方式 | 通知对象 |
|---|---|---|---|
| 资源创建失败 | 调用云平台删除已创建的资源 | 幂等删除,忽略 404 | 值班人 + 资源 Owner |
| 配置注入失败 | 回退 DNS / CMDB 变更 | 快照恢复 | 值班人 + 配置管理员 |
| 审批超时 | 标记为“审批超时”,不创建资源 | 无需回滚,释放申请锁 | 值班人 + 审批人 |
| 网络分区 | 等待 30s 后重试,仍失败则回滚 | 全量回滚 + 告警 | 值班人 + SRE 二线 |
重要:回滚操作本身必须是幂等的,且必须记录审计日志。回滚失败时,需要自动创建“残留资源清理工单”并分配给 SRE 二线值班人员,避免资源泄漏。