Files
lehuo/infra/deploy/README.md
T

1.8 KiB

发布与运维

生产发布只允许不可变镜像标签,顺序固定为:staging 预检 → migration 预检与备份 → 冒烟测试 → UAT 签字 → 生产备份 → 部署 → /health/live、/health/ready 和公开内容冒烟 → 观察 → 必要时回滚到上一镜像标签。禁止使用 latest。

外部准备

  • 私有镜像仓库、TLS 证书和合法域名;生产 MySQL、Redis、私有对象存储。
  • 微信 AppID/AppSecret、六类订阅消息模板、合法 HTTPS 域名和真机授权。
  • 告警接收渠道、异地备份目标、隐私政策/用户协议/主体资质与 UAT/发布审批人。

执行

  1. 设置 IMAGE_TAG、REGISTRY_IMAGE 及 .env.example 中所有生产必填环境变量。
  2. ./infra/deploy/preflight.ps1 staging,部署 staging,执行 migration 和 smoke.ps1。
  3. 完成 docs/14_RELEASE_CHECKLIST.md 中 staging/UAT 项并留存证据。
  4. 使用 infra/backup/backup-mysql.ps1 备份并将 SQL、SHA-256 文件同步到异地加密存储。
  5. ./infra/deploy/preflight.ps1 production,部署固定镜像;执行冒烟并观察 5xx、p95、数据库、磁盘、通知死信和备份告警。
  6. 异常时将 IMAGE_TAG 恢复到上一批准版本重新部署。若 migration 不向后兼容,停止发布并按已验证的数据库恢复步骤执行。

备份默认每日一次,保留 30 天;必须每季度在独立数据库做恢复演练并记录表数量、关键行数和耗时。脚本会校验 SHA-256,恢复目标数据库名必须显式提供。

Ubuntu 26.04

原有 .ps1 工具保留用于 Windows 运维环境。Ubuntu 26.04 云服务器应使用 infra/ubuntu/ 中的 Compose、Bash 脚本与 systemd timer;完整步骤见 infra/ubuntu/README.md。两套工具遵循相同的不可变标签、migration、备份、冒烟、观察和应用回滚顺序。