租户层级与服务组合
租户层级用于让运维人员组合租户获得的服务。你自行定义层级,并根据销售内容命名,例如金 / 银 / 铜,也可以使用其他名称。层级回答“多少”的问题:租户继承的治理上限,以及租户可以使用的 AI 模型。层级是一等实体,平台其他部分只读取它,绝不重新定义它。
层级是产品决策,不是运维调节参数。调整速率限制和资源争用行为,是为了保持系统健康;层级则是客户使用的、有名称的服务组合。也就是说,负载削减参数用于调优,而层级用于销售。将层级建模为独立实体,可以避免将产品概念混入底层运维机制,并在不同地方被不一致地重复实现。
目前可用:user-management 中的 TenantTier 实体、配置键注册表、实例管理平面的层级管理、通过层级解析实际生效设置、AI 模型使用资格(分配和层级默认值)、AI 服务组合授权矩阵、层级展示,以及资源争用时按优先级削减负载。**计划中:**自动提高负载削减级别的资源争用信号。
层级组合哪些内容
层级是一组有名称的设置,来自配置键注册表,即平台允许层级设置的参数列表。目前有两类使用方读取租户层级。
- 治理上限。 每租户配额通过层级解析:接入速率、出站速率、AI 推理速率、未投递命令上限,以及三项地理围栏限制。参见治理与配额。安全回退规则仍贯穿始终:缺失或为零的限制解析为平台默认值,绝不表示无限制。上限按副本执行,参见上限按副本计算。
- AI 模型使用资格。 层级组合租户可以使用的 AI 模型;运维人员也可以在层级之外向单个租户授予模型。租户用于某项功能的模型由
(tenant, function) → model分配决定,如果层级标记了默认模型,则回退到层级默认值。如果层级和租户专属授权都没有为租户菜单提供模型,那么租户就没有模型:菜单为空即没有模型。
许多子系统读取层级,但只有一个拥有它。因此模式始终一致:子系统读取层级,没有任何子系统保存自己的一份“该租户可以使用什么”。
资源争用时按优先级削减负载
租户层级带有负载削减优先级。平台负载较高时,该优先级决定哪些租户最后降级。运维人员也可以为单个租户保存负载削减优先级,作为租户专属运维覆盖值;设置后,它优先于层级的值。
目前资源争用下限由运维人员设置。自动提高负载削减级别的争用信号仍在计划中。
层级由运维人员管理,客户端不可设置
层级及其携带的优先级和限制属于运维人员配置,具有以下特点:
- 客户端绝不可设置。 租户不能提高自身上限或更改自己的层级。
- 绝不是令牌声明。 层级不编码在 JWT 中,也不作为授权判断的输入。平台在服务器端从控制平面租户记录解析它。
有一个有意的豁免:身份令牌和服务令牌不绑定权限层级。 权限层级与租户层级是不同概念:它表明权限属于实例级运维人员平面,还是单个租户。将这些令牌绑定权限层级,会使这些特权路径上的每租户治理上限被静默瓦解。它们是设计上豁免,而非遗漏。
层级展示
层级带有显示顺序和颜色,便于一致地呈现:彩色标签、可拖动排序的列表,以及带选项卡的层级详情页面。显示顺序只是陈列次序,不是等级高低。它仅安排展示,不暗示任何子系统据此计算排名。排序只影响外观;使用资格取决于层级实际组合的内容。
在控制台中的位置
- 层级(Tiers):
/admin/tiers(管理平面)。创建、编辑、设置颜色和排序;打开层级查看其组合设置。 - AI 服务组合(AI packaging):跨层级矩阵,映射每个层级可使用的 AI 模型。
- 租户专属设置:在租户管理详情页设置其层级。各功能的 AI 模型也在这里从租户菜单中选择:层级模型加上租户专属授权。
上述两个 AI 界面需要可选的 ai-inference 服务,该服务随 full 部署配置档提供。没有它时,层级本身正常工作,治理上限不受影响。AI 服务组合矩阵和租户模型菜单会提示该实例未运行相应功能区域。
为什么层级是独立实体
对于提供多租户 IoT 平台服务组合的人,租户层级是一项熟悉且预期具备的基本能力。将层级建模为独立的一等实体,意味着“租户有权使用什么”只存在于一个地方,而不是分散在各个使用它的服务中。治理读取它,AI 使用资格读取它,两者都不保存自己的副本。