用途:该技能用于撰写 Fly.io 多区域应用架构,把平台原语组合成明确边界的设计,避免假定 Fly.io 提供全局状态。任何通信与 Fly Proxy 负责把请求路由到 Machine,6PN 连接同一组织内服务,Machine 与 Volume 属于区域级资源,Managed Postgres 有其独立的支持区域与恢复契约。
前置条件:需明确用户、流量、延迟、可用性、驻留、恢复与一致性要求;确定服务与进程组边界及外部依赖;核对当前供应商区域、容量、价格与 Managed Postgres 可用性。
主要步骤:一、划分无状态与有状态工作,区分请求服务、Worker、计划任务、缓存、持久数据库与区域本地文件,并为每类数据命名权威记录。二、根据实际用户、依赖位置、驻留与容量选择主次区域,记录 Fly Proxy、公网 IP、Flycast 或动态路由行为。三、设计 Machine 集群,按区域设定进程组、VM 资源、Machine 数量、健康检查、部署策略、自动启停与故障域预期。四、显式设计数据,Managed Postgres 仅在服务契约匹配时使用;Volume 仅配合软件管理的复制与恢复,或用于可丢弃的区域状态,绝不能把单个 Volume 当作多区域存储。五、规划私有与外部连接,梳理 6PN 名称、组织边界、WireGuard 对等、出站需求、证书、DNS 与第三方信任域。六、验证韧性,演练区域与依赖故障、部署回滚、数据库恢复、Volume 恢复、密钥轮换、监控、成本控制与所有权交接。
认证:为部署、观测、数据库访问与外部集成使用独立的作用域身份,保护 6PN 与 WireGuard 凭据、App secret、数据库 URL;私有网络缩小可达范围但不替代应用层认证。
工具纪律:改动前用 Read 与 Grep 检查应用配置、部署证据、供应商文档、夹具、日志、模式与现有测试;Write 或 Edit 仅用于已批准的方案、配置、实现、测试或脱敏回执。未经操作者明确批准,不得创建、部署、扩缩、重启、停止、挂起、销毁、轮换、撤销、暴露或迁移线上 Fly.io 资源。
输出:架构图与权限映射;区域、路由、Machine、数据、身份、可观测性、成本与恢复决策;带测量恢复时间与未解决风险的故障模式演练;返回目标组织、应用、环境、区域集合、Machine 或数据库标识、源契约指纹、证据、未解决风险、回滚状态与最终决策,不得暴露令牌、密钥、连接串或客户数据。
错误处理:若拓扑假定全局卷存储,改用 Managed Postgres、外部复制存储或应用管理复制;若区域缺少所需服务或容量,依据当前供应商数据重新选择并重新权衡延迟、驻留与恢复;若私有路径跨组织,使用明确批准的跨网络机制并保留应用认证,同组织 6PN 假设不再适用。
资源涵盖 Machines API 设置、自动化与令牌、应用配置、区域、私有网络、Managed Postgres 与 Fly Volumes。