这是一份 Fly.io 生产就绪门禁清单,目标是把上线变成有签名证据的边界,覆盖实际工作负载:无状态 Machines、区域绑定的 volumes、Managed Postgres、release 命令、健康语义、autostart、网络、可观测性、账单以及经过演练的回滚。
前置条件:业务、技术、安全、数据、支持和回滚负责人;不可变的候选镜像与已评审配置;来自代表性环境的负载、故障、恢复、部署和回滚证据。
步骤:一,确认归属与范围,记录 app、组织、环境、域名、区域、进程组、数据存储、目标、值班路径与已接受风险。二,评审身份与密钥,使用限定范围且会过期的令牌,保护生产环境,检查密钥名称与摘要而不查看值,并证明轮换与撤销有效。三,评审运行时与部署,校验镜像、架构、端口、进程、信号、release 命令、健康检查、部署策略、不可用容量与 volume 兼容性。四,评审韧性与数据,确认所需的 Machine 冗余、区域放置、依赖故障行为、Managed Postgres 或 volume 备份边界、恢复测试与对账。五,评审可观测性与成本,证明日志、指标、健康、告警、供应商状态升级、资源清单、成本负责人与过时计费资源清理。六,演练发布与回滚,执行已批准的发布路径,观察验收门禁,在演练中恢复先前镜像或配置,仅在真实机队完成对账后关闭。
认证:生产部署使用受保护环境中最窄的 app 或组织令牌;只读监控不应共享部署权限。注意任何拥有部署权限的人都可以部署读取运行时 App secrets 的代码。
工具纪律:在提出变更前,先使用 Read 和 Grep 检查应用配置、部署证据、供应商文档、fixtures、日志、schema 与现有测试。仅在已批准的计划、配置、实现、测试或脱敏回执上使用 Write 或 Edit。未经操作者明确批准,不得创建、部署、扩容、重启、停止、挂起、销毁、轮换、撤销、暴露或迁移线上 Fly.io 资源。
输出:带负责人与例外的已签名生产就绪决定;身份、配置、健康、负载、数据恢复、可观测性、成本与支持方面的证据索引;发布、回滚与发布后验证计划。返回目标组织、app、环境、区域集合、Machine 或数据库标识、源码契约指纹、证据、未解决风险、回滚状态与最终决定,且不得暴露令牌、密钥、连接字符串或客户数据。
示例:带 Managed Postgres 的 Web 应用只有证明两个健康 Machine、限定范围的部署与只读令牌、滚动部署、数据库恢复与重连、区域感知告警、当前成本归属以及回滚到先前镜像后才通过。
错误处理:缺少必需证据时保持门禁开启,并指派确切证明、负责人与截止时间;例外没有到期时间时拒绝,或添加补偿控制、批准人、评审日期与回滚触发条件;回滚演练失败时,在镜像、配置、密钥与数据恢复路径修正前不批准上线。