4. 环境准备验收
环境准备验收是上线评审流程中首个硬性质量关卡,要求对测试环境、预发布环境、生产环境分别执行独立的验收检查,确保每一层环境在功能、配置、性能、安全及资源维度均达到准入标准。本章围绕三类环境的验收要点,提供标准操作流程与质量判定依据。
适用场景
环境准备验收适用于以下三类典型场景,验收团队需根据实际发布计划选择对应环境执行检查:
- 测试环境验收:开发完成提测后、进入系统测试阶段之前;用于验证功能实现是否符合需求规格。
- 预发布环境验收:测试通过后、进入生产发布前一日;用于模拟生产流量验证配置与性能。
- 生产环境验收:正式发布窗口当天、流量切换之前;用于确认资源、备份及安全策略均已就位。
提示:若组织采用“蓝绿部署”或“金丝雀发布”,生产环境验收应额外包含灰度流量验证节点。
前置条件
执行环境准备验收前,必须确认以下条件已满足,否则验收结论无效:
- 环境部署完成:对应环境的服务、中间件、数据库已部署并通过冒烟测试。
- 权限已开通:验收人员具有该环境的查看、操作及日志读取权限。
- 测试数据就绪:测试环境与预发布环境已注入脱敏业务数据,生产环境使用只读快照验证。
- 验收清单发布:环境验收 Checklist(见本章「记录材料」)已由 SRE 或运维负责人签出。
- 变更通知同步:涉及基础设施、网络策略或第三方依赖的变更已通过变更管理平台同步。
操作步骤
以下按环境维度分步执行,必须先完成测试环境验收,再推进预发布环境验收,最后执行生产环境验收,不可跳跃或倒序。
步骤 1:测试环境验收
| 子步骤 | 操作内容 | 判定依据 |
|---|---|---|
| 1.1 | 执行全部自动化功能用例,记录通过率 | 通过率 = 100% |
| 1.2 | 核对核心表数据行数与预期一致;使用校验工具对比源端与目标端 | 数据完全一致 |
| 1.3 | 运行接口回归测试套件,覆盖所有 P0/P1 接口 | 成功 ≥ 99%,无 P0 级失败 |
# 示例:接口回归测试命令行(测试环境)
curl -s -o /dev/null -w "%{http_code}" http://test-app.example.com/api/health
# 预期返回 200
步骤 2:预发布环境验收
| 子步骤 | 操作内容 | 判定依据 |
|---|---|---|
| 2.1 | 使用 diff 工具对比预发布与生产的配置文件(排除密钥占位符) | 差异项为 0 |
| 2.2 | 执行性能压测,记录 TP99 与 QPS | TP99 ≤ 200ms,QPS ≥ 目标值 |
| 2.3 | 检查日志采集链路是否连通,模拟错误请求后验证告警通知 | 日志可查,告警 3min 内到达 |
# 示例:配置一致性比对
diff --brief <(kubectl get configmap app-config -n pre -o yaml) \
<(kubectl get configmap app-config -n prod -o yaml)
# 预期输出无差异
步骤 3:生产环境验收
| 子步骤 | 操作内容 | 判定依据 |
|---|---|---|
| 3.1 | 检查 CPU/内存/磁盘水位,确认预留 buffer | 使用率 ≤ 70%,磁盘余量 ≥ 20% |
| 3.2 | 验证数据库与文件系统最近一次快照或备份记录 | 备份完成时间 ≤ 24h,可恢复 |
| 3.3 | 运行安全扫描策略,确认防火墙、WAF、IAM 策略已生效 | 高危漏洞 = 0,策略覆盖 100% |
# 示例:检查磁盘使用率
df -h /data | tail -1 | awk '{print $5}'
# 预期 ≤ 70%
步骤 4:环境验收汇总
将三类环境的验收结果填入《环境验收汇总表》(见记录材料),由验收负责人、SRE 及技术经理三方签字确认。汇总表作为上线评审的 必审附件 提交。
输入输出物
| 类型 | 名称 | 来源 / 去向 | 格式 |
|---|---|---|---|
| 输入 | 环境部署报告 | SRE / 运维团队 | PDF / 内部 Wiki |
| 输入 | 配置清单与变更记录 | CMDB / 变更管理平台 | JSON / YAML |
| 输入 | 测试用例执行报告 | 测试团队 | HTML / Allure |
| 输出 | 环境验收报告(含 Checklist) | 验收负责人 → 上线评审组 | PDF + 签字扫描件 |
| 输出 | 环境验收签字单 | 验收负责人 / SRE / 技术经理 | 纸质或电子签章 |
责任边界
| 角色 | 职责 | 环境覆盖 |
|---|---|---|
| 开发团队 | 完成环境部署、代码推送、依赖安装;配合修复验收发现的功能缺陷 | 测试环境 |
| 测试团队 | 执行功能用例、接口回归、数据校验;输出测试报告 | 测试环境、预发布环境 |
| SRE / 运维团队 | 保障环境稳定性、配置一致性、备份完整性;执行性能压测与资源检查 | 全部三个环境 |
| 安全团队 | 执行安全扫描、策略生效验证;审核防火墙与 IAM 配置 | 生产环境(必要时预发布) |
| 验收负责人 | 统筹验收流程、汇总报告、触发异常处理流程 | 全部三个环境 |
注意:责任边界不可交叉代替。若 SRE 同时承担测试环境的部署与验收,必须设置“交叉复核人”独立签字。
记录材料
以下材料须在验收过程中实时填写,不得事后补录:
- 环境验收 Checklist(标准模板):按环境分页,逐项打勾并标注执行人、时间、结果。
- 环境配置对比表:记录预发布与生产环境的差异项,每项必须附带“已对齐”或“已豁免”结论。
- 性能压测报告:包含压测场景、并发数、TP99、QPS 及资源水位截图。
- 安全扫描报告:包含漏洞列表、修复状态及复测结果。
- 环境验收汇总表:三环境结果聚合页,含最终判定结论及三方签字。
异常处理
环境验收过程中遇以下异常情况,按对应策略处理,未闭环前不得进入下一环境验收:
| 异常类型 | 典型现象 | 处理策略 |
|---|---|---|
| 配置不一致 | 预发布与生产环境的数据库连接串、缓存配置存在差异 | 立即修正预发布配置,重新执行 diff 比对;若为生产环境配置错误,需走紧急变更流程 |
| 性能不达标 | TP99 超过 200ms 或 QPS 低于基线 | 分析慢调用链,优化 SQL 或扩容资源;重测直至达标 |
| 安全漏洞 | 扫描发现高危漏洞(如 SQL 注入、越权访问) | 阻断验收,修复后重新扫描;高危漏洞清零后方可继续 |
| 资源不足 | 磁盘余量低于 20%,或 CPU 长期超过 80% | 扩容资源或清理冗余数据;重检通过后记录容量水位 |
| 备份缺失 | 最近 24h 内无完整备份,或备份文件不可恢复 | 立即触发手动备份,并修复自动化备份链路;验证备份可恢复后签字 |
升级机制:异常修复时长超过 2h 的,必须升级至技术总监及发布委员会决策是否延期上线。
验收标准
三类环境的验收标准存在差异,具体如下表所示。任何一项未达标,该环境验收判定为“不通过”,需重新进入修复及复验流程。
| 环境 | 检查项 | 合格标准 | 判定方式 |
|---|---|---|---|
| 测试环境 | 功能测试通过率 | 100% | 自动化测试报告 |
| 数据完整性 | 源端与目标端行数、校验和完全一致 | 数据比对工具输出 | |
| 接口回归 | P0/P1 接口成功率 ≥ 99%,无 P0 缺陷 | 接口测试报告 | |
| 预发布环境 | 配置一致性 | 与生产环境配置差异 = 0(密钥占位符除外) | diff 命令输出 |
| 性能压测 | TP99 ≤ 200ms,QPS ≥ 基线值 | 压测平台报告 | |
| 日志链路 | 日志可查、告警 3min 内到达 | 手动模拟 + 告警平台记录 | |
| 生产环境 | 资源容量 | CPU/内存 ≤ 70%,磁盘余量 ≥ 20% | 监控系统截图 |
| 数据备份 | 最近 24h 内完整备份,恢复演练通过 | 备份系统记录 + 恢复测试报告 | |
| 安全策略 | 高危漏洞 = 0,WAF/防火墙/IAM 策略生效 | 安全扫描报告 + 策略验证用例 |
达标标志:三类环境各自所有检查项均标注“通过”,且三方签字完整,即可在环境验收汇总表上加盖“环境准备验收通过”章。