Files
ftb-project-management/docs/production-readiness.md
72a59f125c docs(ops): 补齐生产 runbook 和 readiness 清单
- 新增迁移回滚、AppData 退场、小宝后台任务 runbook\n- 新增生产 readiness 证据清单和 runbook placeholder 扫描\n- 更新部署文档与路线图到 V2.8 运维闭环阶段\n\nCo-Authored-By: GPT-5 Codex <codex@openai.com>
2026-07-08 16:28:02 +08:00

3.0 KiB

Production Readiness Checklist

Use this before a production release and again after the release smoke test. Each item requires evidence, not a verbal assertion.

Area Gate Evidence
Backup and restore PostgreSQL backup dry-run and server_data backup dry-run are reviewed. pnpm backup:postgres -- --dry-run --env-file .env.production and pnpm backup:server-data -- --dry-run --env-file .env.production output saved in release notes.
Backup and restore Restore command refuses overwrite without explicit confirmation. pnpm restore:postgres -- --env-file .env.production --input backups/postgres/ftb_pm-postgres-20260708T120000Z.dump exits non-zero and names --confirm-overwrite.
Backup and restore Fresh DB restore rehearsal completed before destructive restore. Temporary database restore command and row-count comparison from docs/runbooks/migration-rollback.md.
Smoke tests Release smoke is wired into GitHub Actions. .github/workflows/deploy-production.yml runs scripts/smoke-test-release.mjs with --expected-version.
Smoke tests Manual smoke can be run against the target. pnpm deploy:smoke -- --base-url http://localhost --expected-version "$APP_VERSION" output.
Monitoring Monitoring profile renders and can start without committed secrets. docker compose --env-file .env.production -f docker-compose.prod.yml --profile monitoring config exits 0.
Monitoring Required alert rules exist. FtbPostgresDown, FtbDiskPressure, FtbSlowApiLogBurst, FtbSlowPrismaLogBurst, FtbJobFailureLogBurst, and FtbXiaobaoSummaryStale visible in Prometheus.
Audit Domain write APIs record actor and resource scope where implemented. API request sample or audit log sample for Product, Requirement, Project, Version, execution entities, and dictionary writes.
RBAC Project and version operations enforce Owner, Admin, Member, Viewer boundaries where enabled. Permission matrix test result or manual account walkthrough attached to release notes.
Consistency AppData and relation tables are checked for migrated domains. Count and missing-partition-key queries from docs/runbooks/appdata-retirement.md.
Performance Slow API and slow Prisma thresholds are configured. API_SLOW_REQUEST_MS and PRISMA_SLOW_QUERY_MS values recorded, plus Grafana slow-log panels checked.
Performance V2.2 hot reads avoid full-table scans. Requirement pool smoke uses productId; query plan or service test evidence attached for high-volume domains.
Post-release Runtime version matches the release SHA. /api/v1/health/version payload or pnpm deploy:check-runtime output.
Post-release Product, requirement, workspace, Xiaobao, and AI config read paths respond. pnpm deploy:smoke output attached.
Post-release On-call rollback path is known. docs/runbooks/migration-rollback.md link included in release notes.

Release owner signs off only after all required evidence is attached to the release notes or incident record.