系统架构
租户的概念
- 整个产品的用户管理基础,以租户作为最基础的划分,在不同的租户中,可包含不同的用户、产品;
- 每个租户内,含租户所有者、租户管理员、普通用户,由租户管理员进行用户管理;
- 每个产品内划分不同项目,每个项目内用户独立管理,需相关管理员独立邀请。
多租户间关系
- UIC产品中存在超级管理员角色,是UIC用户体系中最高权限的用户,负责全部租户的创建/删除管理,同时包含各级租户内的全部权限;
- 多个租户之间完全隔离,包括子产品权限、子产品有效期、租户内用户及对应角色等。
租户与集群关系
支持多集群的对接,是通过租户的机制实现的:
- 一个租户只属于一个集群。
- 多个租户,可以共享同一个集群的计算资源。
- 租户之间可通过YARN的队列机制实现资源隔离,例如可为租户1分配50%的计算资源,同时可为租户2分配30%的计算资源(这里的计算资源,指的是YARN中的虚拟CPU和虚拟内存)。
- 计算资源并非固定,而是采用动态分配机制,例如租户1和租户2分别分配了50%、30%的资源时,当租户1较为空闲,且租户2较为繁忙时,可以突破这一限制,获取更多的资源。当每个租户都较为繁忙时,系统将努力保证资源按照此比例分配。
租户与项目关系
在各子产品中,离线、指标标签、实时、api涉及到"项目
"的概念,本节主要描述项目与租户的关系:
- 每个租户中, 支持其中一个产品(例如大数据开发平台),同时还可能有大屏引擎等其他产品;
- 某个产品内,又包含了离线计算、实时计算、分析引擎等各模块;
- 在【离线计算】模块中,又可以细分为多个项目,每个项目中:
- 包含相互独立的人员(分为管理员/数据开发等角色);
- 包含相互独立的计算任务、脚本、数据源等资源;
- 包含相互独立且隔离的数据(授权后可跨项目访问);
- 在【实时计算】模块中,仅涉及到人员、资源管理,不涉及数据管理;
- 每个项目,仅属于一个租户;
- 同一个租户内的项目,共享本租户的计算资源;
- 目前仅数据质量、数据资产两款子产品不涉及项目的概念;