SaaS 平台分析

1.SaaS-多租户数据隔离方案目前主要存在三种方案:

  • 独立数据库:一个租户一个数据库,隔离级别最高,成本较高
  • 共享数据库,隔离数据架构:大家用同一个DataBase ,但每个租户一个Schema。如果出现故障,数据恢复比较困难,跨租户统计数据,存在一定困难
  • 完全共享数据库:租户共享同一个Database、同一个Schema,但在表中增加TenantID多租户的数据字段。这是共享程度最高、隔离级别最低的模式。(隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;数据备份和恢复最困难,需要逐表逐条备份和还原。如果希望以最少的服务器为最多的租户提供服务,并且租户接受牺牲隔离级别换取降低成本,这种方案最适合。)

一般情况下,使用第三种方案的最多

2. SaaS 系统结构

SaaS系统结构SaaS产品由租户实例、用户界面、管理平台三个部分构成,我们可以把它们分别称为租户端、用户端、平台端。

3.SaaS平台设计方法

SaaS平台设计方法不管从产品角度还是技术角度,设计SaaS的方法并不复杂:首先设计好一个独立软件产品(非SaaS)的所有功能和业务逻辑。 然后给所有数据都加上客户标识,按客户维度对数据进行逻辑分离。 完成这两步,就已经能够形成“实例”,也就是SaaS化最重要的第一步。之后再根据实际情况,逐步完善租户管理、租约管理、缴费续约内部管理功能就行了。

4.SaaS 设计后台分层

SaaS系统分层大概是:
租户识别>应用层>数据访问层>缓存层>数据库
* 业务代码都是写在应用层。
* 租户识别可以用spring拦截器实现,然后使用ThreadLocal传递给后端
* 数据库和缓存层对应用层应该是透明的。程序员在写代码的时候,只关心业务逻辑,不应该担心多租户的问题。

相关文章

转载请注明: 转载自 浮生一程
本文链接地址 SaaS 平台分析
上一篇
下一篇