多租户设计

作者: 白熊S | 来源:发表于2019-01-13 17:20 被阅读3次

1,简单说说多租户

多租户是指同一套软件服务可以供多个用户使用,并且保证这多个用户的数据相互隔离。通俗理解就是电商平台中入驻的商家,这多个商家只需要通过平台审核,就可以快速地使用平台功能,并且商家之间的数据相互隔离,不影响查看彼此的数据,彼此之间互不影响。

多租户是SAAS(软件即服务)中的一个概念,他的意义在于降低资源成本,方便迭代,能提供大量的结构化数据,创造二次价值。

2,个人的一些经历与总结

个人的项目在多租户上项目经历有点特殊,做的第一个产品就是基于云端部署的多租户,租户层级只有平台与商家两级,产品形态上平台与商家的界限很模糊,或者说区别不大,与商家相比,平台更多的就是能看到所有商家的商品,多了商家列表这样的平台管理模块;

后来自己又做了租户层级更多的电商产品,在商家与平台之间增加了高级别管理单位,租户树状结构更复杂,其中不同的层级会涉及差异化的功能。

最近半年做的产品是本地部署,单用户的形态,后续会逐步向云端多租户形式转变。

基于上述经历,有如下体会:

(1)与开发沟通时,如何避免一头雾水?

如果产品即将转换为平台,做多租户功能,因为多租户已经是一个成熟的设计,第一时间和技术经理讲明做的就是多租户设计,可以节省双方的沟通时间;同时自己也要预估未来的业务规模,数据的保密性(隔离性)要求,多租户核心的特点便是数据隔离。

实现数据隔离的方式有三种:

a,独立数据库:隔离级别最高,安全性最高,成本也最高,一般用于政府,运营商这样对数据安全性要求高的用户。

b,共享数据库,隔离数据架构:安全性较高,数据故障时,恢复比较困难,同时会影响其他租户,如果需要跨租户统计,存在一定困难。

c,共享数据库,共享数据架构:维护和购置成本最低,允许的每个数据库支持的租户最多,但是隔离级别最低,安全最低,数据备份与恢复也最困难。

由于之前不清楚多租户数据隔离与业务需求的关系,导致在这一块花费了大量的沟通。

(2)没有规则,意味着混乱

当租户出现层级时,不同层级的租户对应的现实业务角色不一样,需要的功能有相同的,也有不同的。理论上租户的树状结构,提供了从上(根)到下(叶子)的数据结构;而权限在业务呈现为菜单项的“配置”,租户的树状结构和权限这两项组成了整个产品的功能数据骨架。“顺拐”地想,设计一款产品,直接按“根节点”的租户,然后赋予所有权限,这样一个最全的模板,其他“租户‘,只是这个大而全的”租户“模板的子集就行了,这样思考理论上可行,实际上,这样不从业务出发思考,会带来的产品的难用,甚至是不可用。设计之初,定义好,每个层级的业务含义,每个层级拥有哪些功能,这样设计,不仅可以使业务更清晰,也会大大降低项目成本,而产品的灵活度,并不会因为这样层级与业务的映射关系而下降。

(3)租户之下的数据再隔离

租户本身的树状关系,是可以很好地实现上下级,平级之间的数据隔离。但单个租户下还会存在不同业务角色,不同业务角色有差异化数据查看的需求。自己由于“顺拐”地受从“租户树”的上下级天然关系影响,所以在单个租户下的数据权限思考一开始会有些想不明白,租户树的树状结构数据权限不能完全适用于单个租户下的数据隔离,彼此之间会有交集。

最后终于从业务层想通,单个租户之下,还会存在数据隔离的需求,而这个需求会因为行业不同而各不一样,与租户本身的层级关系更没有必然关系。

相关文章

  • 多租户设计

    1,简单说说多租户 多租户是指同一套软件服务可以供多个用户使用,并且保证这多个用户的数据相互隔离。通俗理解就是电商...

  • 多租户SaaS数据库租户模式

    本文介绍可用于多租户 SaaS 应用程序的各种租户模型。 在设计多租户 SaaS 应用程序时,必须慎重选择最符合应...

  • Rainbond设计分享系列(1)基于Midonet的多租户网络

    今天跟大家分享Rainbond基于Midonet的多租户网络设计和思考。 Rainbond对多租户支持的实现基础是...

  • 第2章 SaaS-HRM数据库设计方案

    学习目标: 理解多租户的数据库设计方案 熟练使用PowerDesigner构建数据库模型 1. 多租户SaaS平台...

  • 新零售SaaS架构:多租户系统架构设计

    多租户是SaaS领域的特有产物,租户是指使用SaaS系统的客户,做好多租户系统架构设计需要了解其相关概念。本文介绍...

  • 【多租户】初识多租户

    前言 什么是多租户呢,你了解多租户吗,多租户是什么呢 叙述 多租户的历史: 多租户技术源于1960年代,许多公司为...

  • HBase多租户系统设计

    面向多租户的数据安全和资源隔离能力,提供标准的用户名密码认证、ACL、Quota、Resource Group等特...

  • Byzer 多租户设计原理

    I. 什么是多租户? 多租户是一个概念或者说使用场景,它是在探讨与实现在多用户或多组织的环境下,如何共享相同的系统...

  • 腾讯泛工业云二面

    1、多租户方案怎么设计 2、MQ吞吐 3、RocketMQ/Kafka的比较 4、

  • 多租户概念

    多租户 什么是多租户 多租户指一套系统能够支撑多个租户。一个租户通常是具有相似访问模式和权限的一组用户,典型的租户...

网友评论

    本文标题:多租户设计

    本文链接:https://www.haomeiwen.com/subject/mrrldqtx.html