大家好,我是汤师爷~
让我们深入探讨一下多租户系统的概念模型。概念模型是多租户系统的"骨架",帮助我们理解系统各部分的组织和运作方式。
多租户的核心概念模型
- 租户:通常指一个企业客户,不同租户之间的数据和行为是相互隔离的。
- 用户:某个租户内的具体使用者,使用账号、密码等信息登录到 SaaS 系统,使用软件服务。
- 组织:如果租户是企业客户,通常会有自己的组织架构。
- 员工:指组织内部的具体成员。
- 解决方案:为解决客户的特定业务问题,SaaS 服务商将产品与服务组合打包,提供整体解决方案。
- 产品:SaaS 服务商售卖给客户的软件应用,能够帮助客户实现端到端流程的闭环解决方案。
- 资源域:用于运行一个或多个软件应用的一套云资源环境。
- 云资源:SaaS 产品一般部署在各类云平台上(如阿里云、腾讯云、华为云等),这些平台提供的计算、存储、网络、容器等资源,被抽象为云资源。
SaaS平台可以创建和管理多个平台用户、租户和资源域,这样的模型结构,可以让多个企业客户和用户能在同一平台上运行,而彼此之间的数据和资源独立。
一个平台用户可以关联到多个租户。例如,张三作为一个平台用户,可以同时属于租户A和租户B。这种设计让平台用户能够灵活切换所属租户,方便在不同企业账号间工作。
在单个租户中,也可以拥有多个用户,让企业内多名员工共享租户的资源和服务。
单个租户可以订购多个解决方案,一个解决方案往往包含多个产品,以满足企业客户的多样需求。这些产品可以运行在特定的资源域,保证不同产品在同一租户中的高效管理和资源隔离。
租户内的组织架构支持上下级关系,在单个组织单元内,可以配置多个员工,并将员工与平台用户绑定,便于员工通过自己的账户访问相关服务。
概念模型的应用场景示例
1、租户与内部模型关系
在SaaS产品中,租户是最顶层的概念,可以理解为一个大房子的租赁人,而房子内部的组织、用户、产品、云资源等模型就像是这个房子里的各种家具和设施。
换句话说,租户是SaaS产品为每个客户或企业专门划分出的独立空间,而组织、用户、产品、云资源等模型则是租户内部的细分结构,为不同的使用需求和权限分配提供支持。
- 租户:相当于整套房子的所有权,即租户拥有这套房子在SaaS平台中的使用权,是所有内部资源的顶层管理者。
- 组织:类似房间的布局,每个房间有特定的功能(比如子公司、部门),组织架构帮助企业在平台内映射现实中的管理层级关系。
- 用户:就像在房子里活动的人员,用户被赋予不同的角色和权限,决定了谁可以进入哪些房间,谁可以使用哪些家具。
- 产品:如同家里各种各样的家具、电器、设施,满足不同的需求。不同租户可以选择不同的产品组合,随需增加或减少,来满足他们的业务需求。
- 云资源:类似于水电煤等基础设施,支持房子里的各项功能正常运行,确保产品稳定、流畅地提供服务。
通过这种类比可以看出,SaaS产品将租户作为最顶层的概念,为企业提供了一套独立空间,租户内部的各项资源则在这个框架下被灵活管理和使用,让企业客户可以获得定制化的服务和资源隔离的安全保障。
2、租户身份识别
在多租户SaaS系统中,无论采用哪种隔离模式,准确识别租户身份并获取相应资源配置是非常关键的。
当用户登录SaaS系统后,系统会生成并返回租户上下文信息。这个上下文信息包括用户关联的租户和对应的隔离模式(如共享或独立资源)。
租户上下文信息会附加在每次系统交互中,贯穿整个系统调用链。从用户请求到系统内部处理的每一步,都保留了租户上下文。这样,上游的请求处理模块就可以知道如何路由和访问下游资源。
租户上下文信息让系统能够在请求传递过程中精准识别租户身份和配置。系统会根据上下文动态选择数据库、应用实例或网络资源,实现数据和资源隔离,确保不同租户的访问互不干扰。
3、租户计费计量管理
租户的计费计量管理,是SaaS平台不可或缺的一部分。不同的隔离模式下,计费方式有所不同。
竖井隔离模式下,计费相对简单。因为每个租户使用的资源(计算、存储、网络等)都是单独分配的,就像每个租户有自己的一块"独立地盘"。
因此,我们只需统计每个租户占用的资源量,就能计算出费用。这种模式逻辑清晰,一目了然。
共享模式下,计费则比较复杂。因为多个租户共享同一资源池,理想情况是,确保每个租户只为自己实际用到的部分买单。
通常,我们会综合考量几个指标,比如请求的数量、存储容量、创建的数据对象数量等。通过这些数据的组合,我们可以相对准确算出每个租户的费用。
本文已收录于,我的技术网站:tangshiye.cn 里面有,算法Leetcode详解,面试八股文、BAT面试真题、简历模版、架构设计,等经验分享。