搜索
系统演示
取消
热门系统产品
电商系统产品
供应链系统产品
渠道商管理产品
其他产品服务
没有你合适的?
我要定制 >

多租户系统SaaS架构设计分析(实践篇)

2021-09-07 0
分类: 技术干货

Saas多租户系统拥有自己独立的数据库,每个应用程序实例只需要一个数据库。对Saas多租户系统管理独立于系统之外,对于每一个租户,整个应用程序需要重复安装一次。供应商都可以为租户管理软件,每个应用程序实例都配置为连接到其相应的数据库。

SaaS多租户系统平台

具体的SaaS架构必须

1.先仔细选择最适合应用程序需求的租户模型,

2.需要根据租户模型来选定最终的架构,即应用程序设计和管理、每个租户的数据如何映射到存储等等。

避免因租户模型的切换而付出昂贵的代价。

租户模型--》应用程序设计+数据设计方案

影响租户模型的相关因素包括:

可扩展性(Scalability)

租户的数量级;

每个租户的存储级别;

整体存储;

工作负载;

租户隔离性(Tenant isolation)

数据隔离和性能(是否一个租户的负载会影响到其他租户);

单租户成本(Per-tenant cost)

数据库成本;

开发复杂度(Development complexity)

数据结构的变化;

查询语句的变化;

运维复杂度(Operational complexity)

性能监控;

数据结构schema管理;

租户数据恢复;

灾备;

可定制化程度(Customizability)

根据租户的需求自定义架构的容易程度;

这个租户的讨论集中在数据层。但考虑一下应用层。应用程序层被视为一个整体实体。如果将应用程序划分为许多小型组件,您的租户模型选择可能会发生变化。对于租户和存储技术或使用的平台,您可以对其他组件进行不同的处理。

常见的架构模式有以下几种:

多租户系统SaaS架构设计分析(实践篇)

这个模型中,应用层和数据层都是隔离的。

应用程序的每个实例都是独立实例。

租户拥有自己独立的数据库,每个应用程序实例只需要一个数据库。

对租户的管理独立于系统之外,对于每一个租户,整个应用程序需要重复安装一次。供应商都可以为租户管理软件。每个应用程序实例都配置为连接到其相应的数据库。

优点:

为不同的租户提供独立的应用实例和数据库,有助于简化数据模型和业务模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复系统或数据均比较简单,系统间也不会相互影响。

问题:

数据库层面,每个租户数据库都作为独立数据库进行部署。该模型提供了最大的数据库隔离。但隔离需要为每个数据库分配足够的资源来处理其高峰负载。这里重要的是,弹性池不能用于部署在不同资源组或不同订阅中的数据库。这种限制使得这种独立的单租户应用程序模型成为从整体数据库成本角度来看最昂贵的解决方案;应用层面,每个租户若存在个性化定制,则需要对项目进行横向扩展,扩展时务必需要保证与主干版本的兼容性问题。

运维层面,应用和数据库的安装数量会随租户的数量线性递增,随之带来维护成本和购置成本的增加。

多租户系统SaaS架构设计分析(实践篇)

这个模型中,应用层是共享的,数据层都是隔离的。

应用程序仅部署一套,所有租户实例共享。

租户仍拥有自己独立的数据库,应用程序需对接多个租户的数据库。

对租户的管理由配置中心(Config Server)管理,配置中心提供了配置,监视和管理共享所需的功能,供应商使用这些工具为租户管理软件。对于每一个租户,整个应用程序仅需要安装一次,应用程序实际请求结合配置中心请求相应的数据库。

优点:

为不同的租户提供独立数据库,有助于简化数据模型扩展设计,满足不同租户的独特需求;如果出现故障,数据恢复均比较简单,也可以自动将单个租户恢复到较早的时间点。因为恢复只需要恢复存储租户的一个单租户数据库。这种恢复对其他租户没有影响,这证实了管理运营处于每个租户的细粒度级别。应用层面的维护成本和购置成本有所减少。

问题:

数据库层面,同模型一;应用层面,每个租户若存在个性化定制,则需要对项目进行横向扩展,扩展时务必需要保证与主干版本的兼容性问题。运维层面,数据库的运维问题同模式一,应用层面的运维在版本控制的问题上难度有所增加。

多租户系统SaaS架构设计分析(实践篇)

这个模型中,应用层是共享的,数据库共享,但数据是隔离的。

应用程序和数据库仅部署一套,所有租户共享。

多个或所有租户共享Database,也就是说共同使用一个数据库,但是每个租户一个Schema(也可叫做一个user),使用表进行数据隔离数据库。底层库比如是:DB2、ORACLE等,一个数据库下可以有多个SCHEMA。

应用程序需对接多个租户的数据库。

对租户的管理由配置中心(Config Server)管理,同模式二。

优点:

为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可支持更多的租户数量。

问题:

数据库层面,如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据;应用层面,配置中心需要对租户信息进行完整且合理的分配和维护。

多租户系统SaaS架构设计分析(实践篇)

模型与模型三的差别在于共享数据库,共享Schema,共享数据表。也就是说共同使用一个数据库一个表使用字段进行数据隔离。如表中增加TenantID多租户的数据字段。这是共享程度最高、隔离级别最低的模式。

简单来讲,即每插入一条数据时都需要有一个客户的标识。这样才能在同一张表中区分出不同客户的数据,这也是我们系统目前用到的(tenant_id)。

优点:

方案的维护和购置成本低,允许每个数据库支持的租户数量最多。

缺点:

隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;数据备份和恢复最困难,需要逐表逐条备份和还原。

多租户系统SaaS架构设计分析(实践篇)

模式五与之前的模式的最大区别是,在原有的web Service进行细化拆分,优化成网关+前台+中台+数据存储的模式。

网关用于接收租户的请求,并发送给前台。

前台的数量与租户一致,每一个租户对应一个前台服务,方便针对租户进行个性化定制。

中台负责提供处理所有的业务请求,中台不关心租户是谁,将重心关注在业务的处理上。配置中心用于配置租户的接口权限、流程定制等相关配置信息。结合业务逻辑返回给前台特定租户的相关信息。

数据库模式参考模式四。

优点:

有利于定制不同租户的个性化需求。例如:交互界面不同、工作流不同等等。

服务只需要根据用户需求在前台做相应的横向扩展即可;

不同租户间服务相互独立,互不影响。

缺点:

模块划分需要做好划分,重点注重业务之间的低耦合;

调用链路变长,需要做一定的优化处理;

模块纵向拆分后,后期研发和运维难度均会有所增加;

 

文章来源:CSDN,作者:hp15;

编辑:云朵匠 | 数商云(微信ID:shushangyun_com)

【数商云www.shushangyun.com】致力于提供企业级的商城开发服务,长期为大中型企业打造数据化、商业化、智能化的saas多租户商城系统解决方案,同时我们还提供B2B电子商务平台、B2B2C多用户商城系统、B2C电子商务系统、跨境进口电商平台、供应商系统、新零售电商平台、直播电商系统等一系列供应链平台定制开发服务。

网站声明:以上内容为数商云电子商务系统网站的原创文章,如需转载,请注明出处,谢谢合作!
评论
剩余-200
发表
电商头条文章
1 一文读懂SaaS版多租户商城系统对多品牌企业的应用价值
企业SaaS版多租户商城系统的信息化建设是一项复杂而严密的、循序渐进的系统性工程,与企业原有的组织架构、经营模式、产权结构等诸多方面的根本性变革互为基础和条件。对此,本文便主要解析SaaS版多租户商城系统架构设计思路及其具体应用价值。
2 云平台下的多租户架构,从SaaS应用到PaaS平台,你应该理解的一些关键点
今天谈下云平台下的多租户架构,不论是在公有云还是私有云平台,是设计一个面向最终组织或用户的SaaS应用还是面向业务系统的PaaS平台,多租户都是前期架构设计的一个关键内容,因此有必要对里面的一些核心要点进一步说明。
3 浅谈SaaS多租户数据隔离和共享
多租户技术或称多重租赁技术,简称SaaS,是一种软件架构技术,是实现如何在多用户环境下共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。前段时间第一次看到多租户时,觉得挺有趣,便想着一探究竟。那就,让我们从提问的角度来阐述问题吧。
4 SAAS服务多租户数据隔离架构
SAAS服务多租户数据隔离架构常见的有独立数据库、共享数据库(隔离数据)、共享数据库(共享数据),针对这三种数据隔离架构方式,具体选择的时候需要根据业务使用情况来定。
5 多租户系统SaaS架构设计分析(实践篇)
Saas多租户系统拥有自己独立的数据库,每个应用程序实例只需要一个数据库。对Saas多租户系统管理独立于系统之外,对于每一个租户,整个应用程序需要重复安装一次。供应商都可以为租户管理软件,每个应用程序实例都配置为连接到其相应的数据库。
填写以下信息, 免费获取方案报价
姓名
手机号码
企业名称
选择行业
  • 建筑建材
  • 化工
  • 钢铁
  • 机械设备
  • 原材料
  • 工业
  • 环保
  • 生鲜
  • 医疗
  • 快消品
  • 农林牧渔
  • 汽车汽配
  • 橡胶
  • 工程
  • 加工
  • 仪器仪表
  • 纺织
  • 服装
  • 电子元器件
  • 物流
  • 化塑
  • 食品
  • 房地产
  • 交通运输
  • 能源
  • 印刷
  • 教育
  • 跨境电商
  • 旅游
  • 皮革
  • 3C数码
  • 金属制品
  • 批发
  • 研究和发展
  • 其他行业
需求描述
请您填写以下信息马上预约演示
姓名
手机号码
你的职位
企业名称

恭喜您的需求提交成功

尊敬的用户,您好!

您的需求我们已经收到,我们会为您安排专属电商商务顾问在24小时内(工作日时间)内与您取得联系,请您在此期间保持电话畅通,并且注意接听来自广州区域的来电。
感谢您的支持!

微信咨询
(工作日09:00 - 18:00)
微信扫描二维码添加客服微信
电话咨询 (工作日09:00 - 18:00)
客服热线: 4008 868 127
售前热线: 189 2432 2993
微信扫描快速拨打电话
console.log();