完整应用生产发布清单
把代码、配置、数据、安全、观测、灰度和回滚拆成可验证的发布证据。
编辑与核验:橙宝书编辑团队 ·
deploy 成功只证明平台接受了产物,不证明用户流程、安全规则、数据兼容和回滚都成立。Cloudflare Workers 将 version 与 deployment 分开管理;生产发布应该利用这个边界,把“上传可测试版本”和“让它接收生产流量”作为两个决策。
代码回滚不会回滚数据
Worker version 包含代码、静态资源、bindings 和 compatibility 设置的状态,但 D1、R2、KV 与 Durable Objects 的数据变化不会随版本回退。发布必须同时设计代码平面与数据平面。
发布证据矩阵
| 平面 | 发布前证据 | 上线信号 | 回滚动作 |
|---|---|---|---|
| 代码 | lint、类型、单元、workerd smoke | 错误率、延迟、版本 ID | 恢复稳定 Worker version |
| 配置 | binding、Secret、compatibility 差异 | binding 缺失、权限错误 | 恢复已知配置与 Secret |
| 数据 | 备份、迁移 dry-run、旧代码兼容 | 查询失败、校验失败、数据异常 | 停写、兼容代码、数据恢复 |
| 安全 | 规则表达式、测试路径、误报阈值 | 挑战/阻断与正常用户失败 | 停用最近规则 |
| 域名 | DNS/TLS 只读检查、切换窗口 | 解析、证书、5xx | 恢复前一记录或路由 |
发布前
固定输入与构建环境
锁定 Node 和包管理器版本,从干净依赖安装运行内容审计、lint、类型、测试、生产构建和包体预算。保存产物摘要与当前 commit,而不是只保留终端截图。
验证预览版本
在预览 URL 或 workerd 环境跑登录、核心读写、404、无权限、下游失败和静态资源检查。确认响应头、错误体和日志没有 Secret 或堆栈泄漏。
先处理兼容迁移
D1 迁移先在独立预览数据库验证。优先使用 expand/contract:先增加旧代码可忽略的新结构,部署兼容代码,再迁移数据,最后在观察窗口后移除旧结构。
记录回滚触发条件
为错误率、关键路径失败、延迟和业务校验写明确阈值与观察窗口。指定谁能回滚、谁检查数据、谁处理安全规则。
上线过程
小流量应用也先做预览 smoke,再切生产。支持渐进部署时,可以让新旧 version 分担流量并观察版本维度指标;要注意 version skew,同一用户的连续请求或 Worker 间调用可能落到不同版本。Schema 与服务绑定契约必须在灰度窗口内前后兼容。
用户路径
失败路径
资源状态
观测状态
上线后与回滚
先观察真实用户关键路径,再扩大流量。若代码指标退化,恢复已知稳定 version;若数据已写入新 Schema,先阻止继续写入,再运行预先验证的数据恢复或兼容代码。若只有 WAF/Rate Limit 误报,单独回滚规则,不要同时回滚代码和数据库。
本地项目门禁示例
pnpm content:check
pnpm lint
pnpm types:check
pnpm test
pnpm preview:build
pnpm bundle:check
pnpm smoke
pnpm e2e这些命令验证当前橙宝书项目,不代表你的应用可以原样复制。你的清单必须加入自己的 migration、核心业务和安全规则测试。
下一步:返回完整应用学习路径。
官方来源
这篇内容帮你完成目标了吗?
内测反馈只在当前浏览器生成,不会自动上传。