d01cecd2f6
- docs/plans/2026-09-21-P5-真实环境接入.md 草案(头部标注待 G5 凭证评审 转正):T1-T12 任务序(每任务 产出/依赖用户输入/关口)——G1 OSS 冒烟→ 国内起栈→ov 部署+bootstrap 对账→域名证书→CDN(含图片加速三选一)→ 跨境 MySQL 通道定案(白名单+SSL/隧道/HTTP 化三选项,含改造量评估)→ G4 用户源→故障演练→压测 D05→G2 真机→G6 试运行→发布交接;用户输入 汇总表 + 决策 D03-D13 状态速查 + 风险表(跨境链路/双层签名/MySQL 8.0.30 门槛/镜像仓库通道等) - 总纲 P5 行注记:准备件完成 2026-09-21,实装待 G5 + G4 - P5-prep 计划全项勾选回填(评审项注明自审已修 + 独立 reviewer 由编排方追加) - 自审修正:monitoring 统计副本表名(无 stat_snapshots 表,副本位在 albums/photos 行)与 outbox_events.occurredAt/photo_jobs.updatedAt 列名、 jq 管道括号;cdn 失效多 URL 换行分隔;k6 helpers 请求体用 ArrayBuffer 原生形态、read-feed 身份串延迟生成(init 上下文 VU 编号恒 0) Co-Authored-By: Claude Code <noreply@anthropic.com>
5.5 KiB
5.5 KiB
P5 准备件 实施计划(无凭证前置批)
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 在不依赖任何真实凭证/服务器权限的前提下,完成 P5 的全部可预制件:双地域生产镜像与编排、1Panel 部署说明、迁移与发布流程、监控告警配置、CDN 接入清单、压测框架、部署演练与回滚手册,以及 P5 正式实施计划草案。凭证到位后 P5 实施只需填 env + 执行。
依赖基线: tag p4b(22188ce)。所有产物只依赖代码库现状,不触碰真实云资源。
Task 1: 生产镜像与编排
services/api/Dockerfile(多阶段:pnpm build → node dist,双入口 cn/ov 同镜像不同 CMD;含 prisma generate 阶段);services/worker/Dockerfile、services/sync/Dockerfile(或单通用镜像多角色 CMD——决策:单镜像photo-live-server,CMD 区分 api-cn/api-ov/worker/sync,减少 1Panel 维护面);apps/viewer、apps/admin构建产物 +infra/deploy/nginx.conf(静态 + /v1 反代 + embed/v1 长缓存 + gzip)→photo-live-web镜像(VIEWER/ADMIN 两份 env 注入入口脚本区分)infra/deploy/docker-compose.cn.yml(api-cn/worker/sync/web-cn + 复用 1Panel 既有 MySQL/Redis 连接,不内建数据库)、docker-compose-ov.yml(api-ov/web-ov + sync-receiver 内嵌于 api-ov?——按 P2 架构 sync 是独立进程双向:cn 侧跑 sender+reconciler+stat-receiver,ov 侧只需 api-ov 内嵌 inbox;核对现状后如实编排);healthcheck、重启策略、日志 json-file 轮转上限.env.production.example-cn/-ov(全量变量清单含注释:DB/Redis 连 1Panel 容器名、S3 真实 OSS 段、SYNC_INTERNAL_KEY 强随机提醒、域名、CORS、上传/窗口/轮询参数——对齐 D10/D11 建议值)infra/deploy/README-1Panel.md:镜像导入(1Panel 容器-镜像-Compose 编排步骤)、MySQL 建库授权 SQL、迁移执行(docker run --rm photo-live-server npx prisma migrate deploy两地域两 schema)、OpenResty 反代与证书、首次 bootstrap/演练顺序- 构建验证:本地
docker build两个镜像成功 + compose config 校验通过(不起真容器) - Commit
build(deploy): production images, compose stacks and 1panel guide
Task 2: 发布/迁移/回滚运行手册
infra/deploy/RUNBOOK.md:发布前检查单(备份、水位、镜像 tag);发布步骤(迁移→服务滚动→冒烟:健康/登录/上传/公开读四点);回滚步骤(旧镜像 tag + 迁移向前兼容原则、outbox/inbox/水位保留);紧急停用通道(ov emergency 端点调用样例含 HMAC 签名生成命令);故障速查(同步积压/计数差异/CDN 缓存三种典型)scripts/prod-smoke.sh(对指定环境跑四点冒烟:health/登录/小图上传全链/公开读——复用本地 e2e 逻辑的最小 curl/node 版)- Commit
docs(deploy): runbook with smoke script and emergency channel
Task 3: 监控告警 + CDN 接入清单 + 压测框架
infra/deploy/monitoring.md:指标清单落地方式(1Panel 应用监控 + pino 结构化日志字段表 + 关键日志检索语句:同步失败/上传失败/计数差异);告警项表(错误率/队列积压/同步水位延迟/磁盘容量——1Panel 告警或云监控分工建议);日志保留策略infra/deploy/cdn-checklist.md:阿里云全球 CDN 接入步骤核对单(OSS 回源私有授权、URL 鉴权 A/B 型选型建议、缓存键规则:variants 长缓存+签名 URL 短缓存、失效/预热 API 调用样例、隐藏照片失效窗口验证步骤、冷缓存测试点建议——全部"待凭证执行"标注)loadtest/(k6 脚本:L1 场景 相册1000照片×100观众×3上传 / L2 10000×1000×10——读路径分页/大图/点赞/浏览上报四类 scenario + 阈值占位;README 说明运行方式与 D05 确认后填目标)- Commit
test(loadtest),docs: monitoring, cdn checklist and k6 framework
Task 4: P5 正式实施计划草案 + 准备件评审 + 总纲注记
docs/plans/2026-09-21-P5-真实环境接入.md草案(待凭证到位后评审转正):任务分解 = G1 补跑(OSS 冒烟脚本已备)→ 国内单地域真库真 OSS 起栈 → ov 真机部署 + 首次快照 → CDN + 域名 → 用户源真实对接(G4/D08)→ 跨地域演练(断网重放/紧急停用/统计对账)→ 压测 D05 → G2 真机关口 → G6 试运行 → 发布交接;每任务标注"所需用户输入"- 准备件统一评审(执行方式:任务内自审清单已跑并修正自发现项——监控 SQL 列名与统计表名、jq 管道语法、k6 init 上下文 VU 编号/ArrayBuffer 请求体/限速注记、CDN 失效多 URL 分隔符;独立 reviewer 过全部产物由编排方在任务完成后追加执行)
- 总纲 P5 行注记"准备件完成 2026-09-21,实装待 G5 凭证";
git tag p5-prep - Commit
docs: p5 preparation complete and implementation draft
执行注意
- 一切产物均不包含真实密钥;.env.production.example 用占位符 + 强提醒。
- 镜像构建走仓库根
pnpm build产物路径,不重复发明构建;版本 = git short sha + date。 - compose 与 1Panel:优先「1Panel 编排 = 我们的 compose 文件」路径(1Panel 支持 compose 模板),README 双路径说明。
- 压测脚本只写框架与场景,不预设结论(D05 未定)。