项目
Kisenon 中的隔离单位 —— 命名、生命周期与级联语义。
一个项目是 Kisenon 中的顶层容器。每个分支、端点、角色和数据库 都恰好生存在一个项目之下。
一个项目拥有什么
- 一个
main分支,在项目创建时自动创建。 - 划定作用域到这个项目的写时复制存储。没有其他项目能读取它的页面。
- 在创建时固定的 Postgres 主版本。
- 一个区域。如今每个项目都生存在单个家庭集群区域 (美国,裸金属);多区域在路线图上。
项目隔离
存储、WAL 和缓存按项目分区;项目之间没有共享的写入路径。来自不同 项目的端点无法触及彼此的存储,即使它们的计算 pod 被调度在同一个节点 上 —— 按项目的网络策略和存储认证令牌把守每一个页面请求。
这是您可以为合规和噪声邻居隔离所依赖的边界。项目内部的分支边界更软: 分支共享存储,并继承父分支的页面,直到它们发散。
命名
项目名是用户可见的标签。它们:
- 必须是 1–63 个字符。
- 匹配
^[a-zA-Z][a-zA-Z0-9_-]*$。字母、数字、_、-; 必须以一个字母开头。 - 不要求全局唯一;在您的组织内唯一就足够了。
内部项目 id(prj_<24 hex>)是其他每个资源所引用的东西。标签是
给人看的。
Postgres 版本
您在创建时选择主版本。默认是 17。一旦设定,它就无法原地更改 ——
主版本升级是一次带外迁移,我们会在它落地时记录文档。对于 alpha,
请把版本当作不可变对待。
创建
在 web 控制台中,点击 New project,输入一个名称,选择 Postgres 主版本,并选择一个区域(下拉菜单默认为 Auto (nearest))。点击 Create。从 CLI:
keon projects create --name my-app --pg-version 17控制平面会预配存储,创建 main 分支,并返回项目 id。端到端
通常需要不到两秒。
删除
删除一个项目会级联通过它拥有的每一个资源:
- 每个分支上的所有端点都被停止和移除。
- 所有分支被拆除。
- 项目的存储被卸载,其数据被排队等待异步压实并最终从对象存储中移除。
级联是不可逆的。没有撤销删除,并且在级联开始后,存储构件无法从控制台
恢复。如果数据很重要,请在删除前进行一次逻辑转储(pg_dump)。
keon projects delete <project-id>CLI 会提示确认;在编写脚本时传入 --yes 以跳过。