22.15-生产部署检查表
要点
- 上线前有一份检查清单,避免遗漏关键配置
- 检查分几类:安全、性能、监控、备份、DNS
- 每次大版本上线前过一遍这个清单
内容
1. 安全检查
1.1 环境变量
- 所有 secrets 都已设置(
wrangler secret list) - 没有在 wrangler.jsonc 里写敏感信息
- 没有在代码里硬编码 API Key 或密码
- Vercel 的环境变量已配置
1.2 CORS
- CORS 的
origin只包含必要的域名 - 生产环境的 CORS 不包含
localhost -
allowMethods只包含实际用到的 HTTP 方法
1.3 认证和权限
- JWT secret 是随机生成的强密钥
- Token 过期时间合理(access token 15 分钟,refresh token 30 天)
- 管理员密码不是默认密码
- OAuth 回调 URL 是生产域名
1.4 HTTPS
- 所有域名都启用了 HTTPS
- Cloudflare SSL 模式是 Full (Strict)
- 没有 HTTP 的混合内容(mixed content)
1.5 速率限制
- API 接口有速率限制
- 登录接口有更严格的限制
- AI 调用接口有配额限制
2. 性能检查
2.1 Workers
- 开启了
--minify - Bundle size 在 1MB 以内
- 没有不必要的大依赖
- 数据库查询有合适的索引
2.2 前端
- Next.js 的构建优化已开启
- 图片使用了
next/image优化 - 关键 JS 代码分割合理
2.3 数据库
- 频繁查询的字段有索引
- 没有 N+1 查询
- 大表的分页用了 cursor 而不是 offset
3. 监控检查
3.1 日志
- Workers Observability 已启用
- 采样率合理(开发期 1,稳定后 0.1)
- 关键业务事件有结构化日志
- 错误日志有
requestId串联
3.2 告警
- Sentry 或类似服务已接入
- 只捕获需要人类介入的异常
- 告警通知渠道已配置
3.3 指标
- Analytics Engine 埋点了关键指标
- Token 消耗有追踪
- API 调用延迟有监控
4. 备份检查
- D1 数据库有定期备份
- 备份文件存储在安全的地方
- 知道怎么从备份恢复
5. DNS 和域名检查
- 所有域名 DNS 记录正确
- SSL 证书有效
- www 重定向到根域名
6. 定时任务检查
- Cron Triggers 配置正确
- 任务的时区是 UTC
- 任务有错误处理和日志
7. 上线前最后检查
- 类型检查通过(
pnpm check-types) - 测试通过(
pnpm test) - 本地构建成功(
pnpm build) - 生产环境的 health check 通过
- 关键接口手动测试过
- 回滚方案已准备
8. 上线后验证
- 生产环境 health check 通过
-
wrangler tail没有异常错误 - 前端页面加载正常
- 关键用户流程测试通过
- 监控指标正常
9. 小结
生产环境检查清单覆盖了安全、性能、监控、备份、DNS、定时任务六个方面。每次上线前过一遍这个清单,可以减少 90% 的线上问题。