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