Skip to content

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% 的线上问题。

基于 MIT 协议开源