Files
lisglosips/docs/S30_FINAL_ACCEPTANCE_REPORT.md

3.8 KiB
Raw Permalink Blame History

S30 最终验收报告

1. 目标

完成 LisgloSIPS V2 本地 KVM 开发环境的备份恢复演练、上线/回滚脚本、灰度记录和最终验收,不执行真实阿里云生产切流。

2. 执行结果

项目 结果
当前 B release /opt/lisglosips/releases/s28-v2-20260621220924
B preflight 通过
A OpenSIPS 配置语法 通过
备份恢复演练 通过
灰度呼叫 通过
回滚脚本语法检查 通过

新增产物:

  • docs/S30_RELEASE_BACKUP_RUNBOOK.md
  • docs/S30_FINAL_ACCEPTANCE_REPORT.md
  • infra/server-b/s30/lisglosips-release-preflight.sh
  • infra/server-b/s30/lisglosips-release-rollback.sh
  • infra/server-a/s30/lisglosips-opensips-config-restore.sh

3. 备份恢复演练

执行时间:2026-06-22 10:28 +08:00。

备份:

  • MySQL/data/backups/mysql/20260622T022811Z
  • Redis/data/backups/redis/20260622T022812Z

校验:

  • MySQL all-databases.sql.gzlisglosips.sql.gzmetadata.tsvSHA256SUMS 校验通过。
  • Redis dump.rdbmetadata.txtSHA256SUMS 校验通过。

恢复演练:

  • MySQL 恢复到隔离临时库 lisglosips_s30_restore,核对计数:raw_cdrs=33recordings=27customer_recharges=34users=2;演练后已删除临时库。
  • Redis 从备份 RDB 启动隔离 Unix socket 临时实例,核对 DBSIZE=51stream:cdr_payload=54cfg:active_version=s28-v1;演练后已关闭临时实例并删除临时目录。

未覆盖运行中的 MySQL 或 Redis 数据目录。

4. 灰度记录

灰度对象:本地开发环境 T 测试端和 S28 专用测试客户/落地模拟链路。

灰度呼叫:

  • Call-IDs28-1782095548702-luppqjd4@lisglosips-t
  • SIPT 收到 100 Giving it a try200 OK、BYE 200 OK
  • B raw CDRraw_7a6356cc76974652aa30a9d7a350041b
  • 计费:rated_e0eb8cbe1b90454cb3cf2d9a3bbc9290billSec=6,客户费用和供应商成本均为 0.012000
  • 录音:rec_5fdf599d679f493a83fc7a2d205a128aREADY55758 bytes

结论:本地灰度链路在当前冻结 release 下通过。

5. 回滚验证

脚本语法检查:

  • Blisglosips-release-preflight.shlisglosips-release-rollback.sh 通过 bash -n
  • Alisglosips-opensips-config-restore.sh 通过 bash -n

运行验证:

  • B lisglosips-release-preflight.sh 实际运行通过:current release、MySQL、Redis、Nginx、API、CDR Worker、Recording Worker、HEP、Prometheus、Grafana 均 activeAPI ready 正常,Nginx 配置测试成功,最近备份目录可见。
  • A /etc/opensips/opensips.cfg 通过 opensips -C 语法检查。

未实际执行 release 回滚或 OpenSIPS 配置恢复,避免对当前已通过的 S28/S29/S30 环境造成不必要中断。

6. 遗留风险

  • 本地开发环境不是阿里云生产环境。正式迁移前必须重新执行 VPC、安全组、数据盘、正式 DNS/TLS、备份恢复、故障注入和端到端呼叫验收。
  • S29 遗留风险仍存在:B Redis 恢复后 A/OpenSIPS 热路径可能需要重启 opensips 才从 Redis Unavailable 恢复。S30 Runbook 已纳入处置步骤,但根因级修复仍需后续单独处理。
  • 当前 A 是单 A/S28 最小真实路由,非完整多落地网关生产路由;真实 3A、多 B、高可用仍不属于本地 V2 闭环上线范围。
  • 开发 CA、Tailscale IP、本地 KVM 根盘布局不能原样用于生产。

7. 结论

S30 在本地 KVM 开发环境完成。当前 V2 闭环具备可恢复备份、可执行上线/回滚 Runbook、回滚脚本产物、灰度呼叫记录和最终验收记录。

本地开发阶段可冻结在 s28-v2-20260621220924 作为迁移前基线。阿里云生产上线前不得跳过 S30 Runbook 中的重新备份恢复演练、正式网络/TLS 验收和灰度观察。