大俊是谁
发布于 2023-07-20 / 53 阅读 / 0 评论 / 0 点赞

多租户设计的三种模式

多租户设计的三种模式

多租户设计是做SaaS必不可少的一环,也是SaaS产品经理面临的第一关考验,而其中对于数据隔离的方案选择,对很多产品经理来说都是两眼一摸瞎,今天我们就来聊聊多租户设计的几种数据隔离方案,跟大家说说如何来做选择!

一、了解多租户

多租户是SaaS领域为了实现用一套系统或程序应用,却服务多个企业用户并确保各个企业用户之间的数据隔离,而采用了一种技术架构方案,简单点说多租户是一种软件架构技术。详细了解的话,多租户就是在同一个服务器下运行单个应用实例,为多个用户提供服务,同时做到把用户之间的数据分割开来,也就是A用户使用应用的时候,看到的数据都是自身相关的,不会因为使用同一个服务器下的应用,而看到了B用户C用户的数据。

二、数据隔离方案

数据隔离方案是多租户设计的基础

目前市面上常见的数据隔离方案主要有以下三种

1.独立数据库

即一个租户一个数据库,这种方案的数据隔离性最好,也最安全,租户之间的数据彼此互不干扰,也有一定的数据拓展性,但购买安装和维护数据库的成本很高

2.共享数据库

独立schema,即所有租户共享一个数据库,但模式分开简要理解,可以说一个租户一个表,这种方案也能提供一定程度的数据隔离,但一旦数据库出现故障,则会影响到所有的租户

而且因为是多schema,会存在跨租户统计的麻烦。

3.共享数据表

即所有租户的数据都存储在同一个数据库的同样数据表中,仅通过租户ID进行区分,这种方案的成本是最低的,但相对而言隔离性也是最低的,而且对开发和数据备份和恢复的难度都很高

三、选择原则

目前市面上三种数据隔离方案各有优劣,每个企业对于自身产品应该选择哪种方案

可以参考以下几点原则

1.租户性质和数量

产品经理在带领团队调研规划产品之初,要先明确产品以后要支持多少租户,如果只有几百个租户且又是高进制租户,或者租户对数据隔离性要求很高,那可以选择独立数据库的方案,如果服务的租户有上万在隔离性要求不高的情况下,可以考虑选择共享数据表的方式。除了租户数量之外,产品经理还可以粗略计算下,每个租户可能使用的空间大小,同时访问系统的同租户下用户数量,评估租户是否有数据备份和恢复的需求等,来进行方案选择。

2.成本

隔离性越好成本就越高

3.安全

隔离性越好安全程度就越高

4.技术储备

隔离性越差,对于技术实现的要求就越高,需要有更加有经验有能力的开发人员,对于多租户的数据隔离方案选择,其实说到底是需要产品经理,根据产品的用户性质和用户群体大小,用户对安全性的需求程度等,进行综合的评估判断并做出合理的选择。


评论