CHECKLIST · 2026-11
网站上线与维护检查清单
0 案例与范围
小团队用的活动报名网站:参与者用邮箱登录、填表报名、在线付费、收到确认邮件;组织者在后台看名单、导出、取消、退款。
需求→开发→上线→维护→ 新需求回到第一步
1 需求
给定 活动已满员(40 / 40)
当 用户点击“报名”
应该 看到“加入候补”选项
并且 不创建支付会话,不扣款
2 技术选型
标准不是性能,而是你能不能维护得了它。每一块都应能在需要时替换。
| 全托管 | 自己管 | |
|---|---|---|
| 前端 / 函数 | Vercel、Netlify、Cloudflare 等托管平台 | 云服务器 + Docker Compose,或 Fly.io、Render、Railway 等容器平台 |
| 数据库 | 托管 Postgres(如 Neon、Supabase) | 自己跑 Postgres(或仍用托管) |
| 登录 · 邮件 · 支付 | 现成服务(如 Auth.js / Clerk;Resend / Postmark;Stripe) | 同左,尽量不自建 |
| 优点 | 几乎不碰服务器,起步快 | 成本可控、可迁移、更自由 |
| 代价 | 月费随用量上涨;被平台绑住的程度 | 备份、升级、补丁、监控都是你的事 |
用户主要在国内时,国内云厂商也有对应的托管服务和服务器产品,思路相同;网络、合规和可选服务范围不同,按实际情况选。
3 与 AI 代理协作
| 必须由人拍板 | 代理可以 |
|---|---|
| 数据模型(改起来最贵) | 给出方案和取舍 |
| 权限:谁能看到谁的数据 | 写代码、写测试 |
| 花钱:付费服务、机器规格 | 审查、找漏洞 |
| 对用户的承诺:退款规则、隐私 | 整理文档 |
# 活动报名网站
规格:docs/spec.md(每个任务先读对应小节)
## 运行
pnpm install && pnpm db:migrate && pnpm db:seed
pnpm dev # http://localhost:3000
pnpm test # 单元测试;pnpm e2e 走浏览器
## 约定
- 接口输入一律校验;金额用整数(分),时间存 UTC
- 改表结构只写新迁移,不改旧迁移
- 改功能时同时更新 docs/spec.md
## 不要碰
- .env*、已有的迁移文件、支付回调的验签逻辑
- 不要新增依赖,除非任务里写了
4 设计与前端(详见前两个系列)
5 后端与支付回调
提交表单→登录校验→权限检查→输入校验→事务:写报名 + 锁名额→创建支付会话
BEGIN;
SELECT taken, capacity FROM events WHERE id = $1 FOR UPDATE; -- 锁住这一行
INSERT INTO registrations (...) VALUES (...);
UPDATE events SET taken = taken + 1 WHERE id = $1;
COMMIT;
支付回调(以 Stripe 为例)
Stripe 不保证事件顺序;生产模式下回调失败会持续重试,最长约 3 天,测试模式重试次数更少。官方 SDK 验签有默认时间容差(300 秒)。以 Stripe 当前文档为准。
后台任务与上传
6 数据模型
核心表:users、events、registrations、payments、emails。
7 认证与权限
-- 有漏洞:只检查了已登录
SELECT * FROM registrations WHERE id = $1;
-- 修复:同时检查归属
SELECT * FROM registrations WHERE id = $1 AND user_id = $2;
8 环境与密钥
| 本地 | 预发布 | 生产 | |
|---|---|---|---|
| 代码 | 同一份 | ||
| 配置 / 密钥 | .env.local | 平台密钥管理(预发布) | 平台密钥管理(生产) |
| 数据 | 种子数据 | 假数据 | 真实数据 |
| 支付 · 邮件 | 测试模式 | 测试模式 | 正式模式 |
9 持续集成
10 部署、迁移与回滚
| 托管平台 | 自管服务器 / 容器平台 | |
|---|---|---|
| 部署 | 连接仓库,推送即构建;每个分支 / PR 一个预览地址 | 流水线构建镜像 → 推到镜像仓库 → 逐个替换实例 |
| 回滚 | 切回上一个部署(不重新构建) | 换回上一个镜像版本号 |
11 域名、证书与邮件
| 生效日期 | 公开信任 TLS 证书最长有效期 |
|---|---|
| 2026-03-15 之前 | 398 天 |
| 2026-03-15 起 | 200 天 |
| 2027-03-15 起 | 100 天 |
| 2029-03-15 起 | 47 天 |
来源:CA/Browser Forum Ballot SC-081v3。Let's Encrypt 另有缩短默认有效期的计划(2028 年起默认 45 天)。
12 安全基线
更完整的参考:OWASP Top 10、OWASP ASVS。
13 性能与容量
14 生产准备
15 发布与上线当天
16 可观测性与告警
| 信号 | 回答的问题 | 工具举例 |
|---|---|---|
| 日志 | 每个请求做了什么 | 平台自带或集中日志服务 |
| 指标 | 多少请求、多少出错、多慢 | OpenTelemetry → Grafana 等 |
| 链路追踪 | 请求经过了哪些服务 | OpenTelemetry |
| 错误上报 | 哪里抛异常、影响多少人 | Sentry 等 |
| 真实用户监控 | 用户浏览器里页面多快 | Sentry、平台 Web Analytics 等 |
{"ts":"2026-11-06T12:03:41.512Z","level":"error","msg":"webhook signature verification failed",
"request_id":"req_8f3a","route":"POST /api/webhooks/stripe","registration_id":1042,
"release":"2026.11.06-2","env":"production"}
// 不要出现:密码、令牌、完整卡号、完整手机号、邮件正文
| 告警(阈值为示意) | 级别 |
|---|---|
| 报名接口 5xx > 2%,持续 5 分钟 | 紧急:推送到手机 |
| 已付款未入账 > 0,持续 10 分钟 | 紧急 |
| p95 延迟 > 2 s,持续 10 分钟 | 一般:邮件,次日处理 |
| 证书剩余 < 14 天 · 磁盘快满 · DB 连接 > 80% | 一般 |
| 其余 | 看板,定期看 |
17 事故处理
发现→止损→定位→恢复→复盘
| 阶段 | 案例:支付回调失败 |
|---|---|
| 发现 | 告警:已付款但报名状态未更新的数量上升 |
| 止损 | 确认影响范围;若由刚才的发布引起先回滚;不确定时先挂提示“付款已收到,确认邮件稍后送达” |
| 定位 | 错误上报:验签失败;部署记录:生产环境变量被换成了测试模式的密钥 |
| 恢复 | 改回密钥;支付服务重试失败的回调,幂等处理自动补上状态;超过重试期的用对账脚本补齐 |
| 复盘 | 写下经过、影响、为什么没更早发现、如何防止(如启动时检测到生产使用测试密钥就拒绝启动);不追究个人 |
## 发生了什么
## 影响(多少用户、多长时间)
## 时间线
## 为什么没有更早发现
## 以后怎么防止(负责人、截止日期)
18 备份与数据保留
19 成本
| 常见意外 | 办法 |
|---|---|
| 调试日志忘了关,日志量暴涨 | 日志分级;采样;保留期 |
| 大图未压缩、被盗链,带宽暴涨 | 压缩、CDN、防盗链 |
| 按用量计费的数据库被慢查询拖满 | 慢查询告警、索引 |
| 没限流的 AI 接口一夜花掉预算 | 按密钥设花费上限;代码里每用户每日上限 |
20 安全维护
21 持续迭代
22 AI 参与运维
| 可以交给 AI | 必须人确认(或只给只读权限) |
|---|---|
| 读告警和日志,总结发生了什么 | 直接修改生产数据库 |
| 写排查用的查询和脚本 | 接触生产密钥和权限 |
| 从错误上报定位代码,提修复 PR | 账单、扩容等花钱的操作 |
| 起草复盘文档;定期检查依赖和配置 | 对用户发出的任何通知 |
实用做法:给代理一个只读的生产账号(日志 / 指标查看、数据库只读副本),没有部署、密钥、账单权限;改动走 PR → 流水线 → 人审。
23 人 · AI · 工具
| 需求 | 开发 | 上线 | 维护 | |
|---|---|---|---|---|
| 人:决定 | 范围 · 不做清单 | 数据模型 · 权限 | 上线时机 · 花钱 | 事故决策 · 对用户承诺 |
| AI:加速 | 追问边界 | 写代码和测试 | 审查 · 写脚本 | 排查 · 起草复盘 |
| 工具:兜底 | 规格文档 | 测试 · 类型检查 | 流水线 · 自动部署 · 证书 | 监控告警 · 备份 |
参考
- CA/Browser Forum,Ballot SC-081v3:TLS 证书有效期与数据复用期缩短
- Let's Encrypt 关于缩短证书默认有效期的公告
- Stripe 文档:Webhooks(签名验证、重试、事件顺序)
- OWASP Top 10;OWASP Application Security Verification Standard(ASVS)
本页与视频由 AI 生成(文稿与画面:Claude;配音:Gemini TTS)。服务名只是举例;价格、配额与政策以各家和官方最新说明为准。