Hosted Service、Environment、Slot、Endpoint 与数据库
解释托管服务运行资源与托管 PostgreSQL 产品之间的关系、归属和计费边界。
平台把“服务是什么”“服务部署到哪里”“使用哪份计算资源”“从哪里访问”“使用哪份数据”拆成不同资源。理解这些边界后,开发、测试和生产环境可以独立组合,而不需要复制服务或把配置写进制品。
五个核心概念
Hosted Service:托管服务
Hosted Service 是一个后端服务的逻辑身份,保存服务名称、来源项目、制品与部署历史。它不等于容器,也不直接代表一台机器。
一个 Hosted Service 可以拥有多个 Environment,例如 dev、test 和 prod。
Environment:服务环境
Environment 是 Hosted Service 的一套环境级配置和部署目标。它保存配置、密钥引用、可选的 Slot 引用、可选的逻辑数据库引用,以及当前部署。
Environment 本身不收费。创建 Environment 时可以暂不选择 Slot,也可以不绑定数据库;但真正部署运行前必须拥有可用的 Slot。
Slot:托管槽位
Slot 是工作区购买或领取的计算资源单元,提供 CPU、内存和运行副本。购买时从当前已发布的包月规格目录中选择档位;目录中的 SKU、价格和资源规格共同决定新 Slot,平台不会把某个固定 SKU 写入购买或部署逻辑。多个 Hosted Service Environment 可以共享工作区中的计算资源,但同一个服务的不同 Environment 不会占用同一个 Slot 身份。
Slot 按月独立收费。续费沿用原规格;升降配是独立的规格变更操作。Slot 不包含数据库,也不拥有数据库。
Endpoint:服务端点
Endpoint 是某次环境部署对外或对内提供的稳定访问入口。端点把域名、路径、端口和当前运行版本连接起来。更换 Artifact 或重新部署时,Endpoint 可以保持稳定。
Database Instance 与 Logical Database
Database Instance 是工作区购买的托管 PostgreSQL 实例,也是收费资源。首版以阿里云 RDS PostgreSQL 15 为基线。
一个 Database Instance 可以创建多个 Logical Database(逻辑数据库)。逻辑数据库拥有独立的数据库名、账号凭据和 Profile 引用。创建逻辑数据库和把它绑定到 Environment 都不单独收费,费用由所属 Database Instance 的规格和周期决定。
资源关系
- Workspace
- Hosted Service
- Environment:dev,可选引用 Slot 和 Logical Database
- Environment:prod,可选引用 Slot 和 Logical Database
- Database Instance(付费)
- Logical Database A(免费创建)
- Logical Database B(免费创建)
- Hosted Service
Environment 引用逻辑数据库,而不是直接引用数据库实例。多个逻辑数据库可以位于同一个实例中,因此开发者可以按隔离要求选择“共享实例、不同数据库”,也可以购买独立实例。
计费边界
| 资源 | 是否收费 | 说明 |
|---|---|---|
| Hosted Service | 否 | 服务逻辑身份 |
| Environment | 否 | 环境配置、部署和资源引用 |
| Slot | 是 | 计算规格,按周期收费 |
| Endpoint | 否 | 随环境部署管理,不作为独立商品 |
| Database Instance | 是 | PostgreSQL 计算与存储规格,按周期收费 |
| Logical Database | 否 | 使用所属实例容量 |
| Environment 数据库绑定 | 否 | 只保存逻辑数据库引用 |
模型 Token/POINT 与 Slot、Database Instance 的人民币费用相互独立,不能混用或抵扣。
PostgreSQL 首版规格
平台只开放有限、经过验证的规格,不允许用户直接提交任意云厂商规格代码。
规格的 CPU、内存、连接数和可用存储范围以阿里云 RDS PostgreSQL 主实例规格目录为基线;实例创建由平台通过阿里云 CreateDBInstance API完成。实际可购性还取决于平台配置的地域和可用区。
| SKU | 系列 | CPU / 内存 | 存储 | 最大连接数 |
|---|---|---|---|---|
DB_PG_BASIC_2C4G_20G_V1 | 基础版 | 2 核 / 4 GiB | 20 GiB ESSD | 400 |
DB_PG_HA_2C4G_50G_V1 | 高可用版 | 2 核 / 4 GiB | 50 GiB ESSD | 400 |
DB_PG_HA_4C8G_100G_V1 | 高可用版 | 4 核 / 8 GiB | 100 GiB ESSD | 800 |
规格代码是不可变版本。实例支持按当前 SKU 续费,也支持在同一系列内选择更高 SKU 升配;基础版和高可用版不能直接互转。续费或升配都按目标 SKU 的完整月价结算并延长一个月,升配支付成功后由平台调用 RDS 变配能力。历史订单继续保存购买时的规格和价格快照。
售价不写死在数据库服务中。管理员在 factory-list 的“计费中心 → 货币商品价格”创建调价草稿,提交后由另一位管理员审核发布。新价格按生效时间切换,历史价格和订单不会被覆盖。
数据库供应商和部署位置
用户购买 Database Instance 时不选择云厂商、地域、VPC、子网或可用区。平台管理员在数据库服务中维护可用的 Database Provider、Placement 和供应商规格映射,并指定当前默认 Placement。首版默认 Provider 是阿里云 RDS。
Placement 是 db-service 所属运行环境内的运维目录数据,包含地域、网络、子网、可选可用区以及云凭据引用;它不是 Hosted Service Environment 的属性,也不属于 Kubernetes 集群配置。云凭据明文保存在 db-service 的密钥配置中,数据库只保存非敏感的凭据引用。
订单预留时会冻结 Provider、Placement 和供应商规格快照。因此,管理员切换默认 Placement 后,只有新购实例使用新的部署位置;已有实例、待支付订单和历史订单不会被静默迁移。新增已支持 Provider 的地域、网络或规格映射只更新数据库目录,不要求重新发布平台。
推荐使用流程
- 在“数据库服务”选择规格并购买 Database Instance。
- 等待实例状态从
PROVISIONING变为ACTIVE。 - 在实例中创建一个或多个 Logical Database,并保存首次返回的 Profile Token。
- 到期前按原 SKU 续费,或在同一系列内选择更高 SKU 升配;变配不会改变已有逻辑数据库引用。
- 创建 Hosted Service Environment,可先不绑定 Slot 和数据库。
- 在需要运行时为 Environment 选择 Slot;需要持久化数据时选择一个 Logical Database。
- 构建 Artifact、部署到 Environment,并通过 Endpoint 验证业务。
不要把数据库连接串、密码或 Profile Token 写进源码、Artifact 或普通环境 JSON。Hosted Service 会在部署阶段通过配置 Provider 解析绑定。