部署步骤和发布 Runbook

目的

定义部署前、部署中、部署后的固定步骤,避免发布依赖个人记忆。

发布前检查

发布前检查要记录“验证了什么”,不要只记录命令名。

检查 目的 JS/TS 示例 其他栈示例
合并前门禁 确认 format/lint/typecheck/test/build 通过 pnpm check go test ./...pytest && ruff check .cargo test && cargo clippy
Migration 验证 确认 schema 变化能在目标版本执行 pnpm db:migrate Alembic/Django/Flyway/SQLx/Diesel migration
发布前 smoke 验证关键业务闭环仍可用 pnpm smoke:m1 项目定义的 smoke 脚本或 E2E smoke

如果涉及 runtime daemon:

检查 目的 JS/TS wrapper 示例 原生命令示例
Runtime test 验证 claim、heartbeat、状态转换、错误回传 pnpm runtime:test go test ./...cargo test、daemon package tests
Runtime build 确认 worker/daemon 可发布 pnpm runtime:build go build ./cmd/daemon、Docker image build

如果涉及 provider 集成:

检查 目的 示例
Witness test 用 fixture 验证 webhook、签名、payload normalization、权限映射 pnpm witness:test
Provider smoke 调真实 provider 跑一次低风险闭环,验证凭证、网络、adapter、事件回传 pnpm smoke:codex

三角色发布职责

角色 发布前确认 发布后确认
产品负责人 用户影响、发布范围、沟通对象、Business Approver 用户反馈、产品指标、是否需要后续 action
技术负责人 技术风险、migration、回滚方式、是否允许上线 错误率、核心路径、是否需要技术债
平台 / 资深工程师 CI、部署入口、dashboard、alert、smoke 命令 监控稳定、日志可查、发布记录完整

标准部署流程

确认 release scope
-> CI required checks 通过
-> migration plan 确认
-> feature flag / rollback plan 准备
-> 部署 API
-> 部署 Web
-> 部署 runtime daemon 或 worker
-> 执行 post-release smoke
-> 观察 dashboard 和 error rate
-> 发布通知到 Lark/Slack

部署证据

每次部署至少记录:

字段 说明
Release id version、commit 或 image digest
Owner 发布负责人
PRs 包含哪些 PR
CI required checks 链接
Migration 是否包含 schema 变化
Flags 开启/关闭哪些 feature flag
Smoke 发布后验证结果
Rollback 回滚路径
Dashboard 监控链接

这些入口必须能从当前项目的 docs/PROJECT.md 找到。发布负责人不应该靠收藏夹、群聊历史或个人记忆找到发布系统和 dashboard。

数据库 Migration 策略

类型 要求
Additive migration 优先使用,先加字段/表,再逐步切流
Destructive migration 必须有备份、回滚计划、人工 approval
Backfill 必须限速、可恢复、可观测
Index migration 大表必须评估锁和耗时

回滚流程

判断影响范围
-> 关闭 feature flag
-> 回滚 Web/API/image
-> 如需要,暂停 runtime daemon claim
-> 验证错误率和关键路径
-> 更新事故/发布记录

数据库回滚不能默认假设可逆。涉及数据删除或结构破坏时,应先做 forward fix 或恢复备份评估。

Lark/Slack 发布卡片

发布完成后发送:

版本:
Owner:
Commit:
PRs:
Migration:
Smoke:
Dashboard:
Rollback:

后续 Agent 就绪要求

这一节在人类发布流程稳定后再看。

Agent 可以参与发布前检查,但不应直接执行生产部署。允许的 Agent 动作:

  1. 汇总 release scope。
  2. 检查 checklist。
  3. 收集 CI/smoke 证据。
  4. 起草 release note。
  5. 标记风险项。

生产部署、回滚和 migration approval 由人类负责。

下一步阅读

读完或填完这份文档后,通常继续看: