Next.js 16 · Release control / Chapter 14

发布门禁与回滚控制台

一条发布线只有在“制品可追溯、检查可复现、Pod 可接流量、指标可比较、回滚可执行”同时成立时才应继续。控制台不会把一次绿色构建误当成生产安全。

PASS PAUSE BACK

01 / Artifact identity

先锁定正在发布的那一个制品

commit、lockfile、Node 版本、镜像 digest 与 RELEASE_ID 必须形成同一条证据链;镜像标签只能帮助人阅读,digest 才是不可变定位。

02 / Preflight gates

构建绿灯之外,还要证明可部署

这些检查针对同一 commit 与同一 lockfile 执行;跳过检查与检查失败在门禁里都应视为未通过。

8 项必要证据

03 / Traffic admission

探针决定能否接流量,观察窗决定能否扩量

startup 只回答“进程是否完成启动”;readiness 会在整个生命周期持续回答“此刻是否应该进入 Service 端点”。

5 → 20 → 50 → 100%

Kubernetes 探针

不要让 liveness 代替 readiness,也不要用重启掩盖依赖故障。

Startup probe

/health/startup

Readiness probe

/health/ready

官方语义:startup 成功前,liveness/readiness 不运行;readiness 失败会让 Pod 退出 Service 端点,但不会自动等价为发布回滚。

渐进发布控制器

点击当前流量阶段,设置每一段最短观察分钟数;扩量必须逐级完成。

Kubernetes Deployment 原生提供滚动更新、pause/resume、rollout status 与 undo;这里的按指标自动扩量/回退代表部署平台或自建控制器的策略层。

04 / Deployment telemetry

只比较同一窗口、同一业务切片的两个 deployment ID

候选版本与上一稳定版本并排观察;阈值是允许的“不利变化”,不是漂亮但没有基线的绝对数字。

6 个发布信号

05 / Rollback contract

回滚不是重新构建旧代码,而是重新指向已验证旧 digest

应用回退只改变工作负载版本;数据库、CMS、队列、旧静态资源和 Server Action 密钥若不兼容,单纯 undo 也无法恢复业务。

先验证,再需要时执行

旧制品复用

不可逆变化审计

证据与版本偏差

06 / Human override & evidence

人工可以覆盖自动建议,但不能覆盖证据

人工 override 必须留下操作人、明确动作与足够理由。任何配置变化都会撤销当前覆盖,但审计记录保留。

覆盖动作只影响显示的最终决策;自动建议与越界证据仍会写入记录。

不可静默的审计轨迹

本页仅保存在当前浏览器内存中;导出 Runbook 后再交给真实发布系统归档。

预览本地 Runbook 文本

      
挑战 01 / 12

依据:Next.js 16 Production checklist、Self-hosting、deploymentId、instrumentation;Kubernetes Probes、Deployment rolling update / pause / resume / undo。页面仅用这些官方语义建立教学模型,不会连接集群或发起网络请求。
nextjs.org/docs/pages/guides/production-checklist · nextjs.org/docs/app/guides/self-hosting · nextjs.org/docs/app/api-reference/config/next-config-js/deploymentId · nextjs.org/docs/pages/api-reference/file-conventions/instrumentation · kubernetes.io/docs/concepts/workloads/pods/probes · kubernetes.io/docs/tasks/run-application/update-deployment-rolling