大家好,我是汤师爷~

在SaaS模式下,多租户之间的资源隔离是基础且关键的一环。SaaS服务商需要在确保运营效率和控制成本的前提下,搭建一个让多个租户能够同时访问的共享环境。

虽然大家都在用同一套SaaS产品服务,但资源访问必须严格隔离,确保租户之间互不干扰。SaaS资源隔离通常包含以下几个层次:

1. 基础设施的隔离

第一层主要指SaaS系统运行所依赖的基础设施资源,比如计算资源(CPU、内存)、存储资源(数据库、文件系统)、网络资源(IP、带宽)等。

这些资源的隔离主要是为了确保不同租户在使用系统时,互相之间不会因为资源竞争而受到影响。

2. 组织权限的隔离

第二层隔离涉及组织权限的隔离,包括组织信息、用户账号、角色、权限配置、产品授权关系等。这些数据决定了谁能用什么功能,谁有操作哪些内容的权限。

组织权限隔离的目的是让每个租户拥有自己独立的组织架构和权限设置,不会因为其他租户的操作而发生冲突。

3. 业务数据的隔离

最后一层隔离涉及系统运行过程中产生的业务数据,如订单、发票、操作记录和数据报表等。通过精细的数据权限配置,这些信息可以在不同组织单元间实现完全隔离,从而保障业务信息的隐私性和安全性。

多租户架构主要解决第一层的隔离问题,即计算、存储和网络等资源的隔离。为了实现多租户隔离架构,我们需要先了解几种常见的多租户隔离模式。

竖井隔离模式

有些 SaaS 服务商选择竖井隔离模式,也就是每个租户都运行在独立的资源环境中。如图6-3所示。

有人会觉得,这不就是传统软件模式吗?为什么还是 SaaS?其实,如果这些独立资源具备标准化的租户身份识别、入驻流程、计费体系、部署和运营流程,那它仍然符合 SaaS 的定义,只不过是给每个客户都提供了一整套独立的基础设施。

优点

  • 满足强隔离需求:有些客户对系统和数据的安全性有极高要求,期望能在完全独立的环境中运行,避免与其他租户的应用实例或数据混合。
  • 计费逻辑简单:对 SaaS 服务商来说,资源使用计费可能很复杂,尤其是涉及计算、存储和网络资源的场景。但在竖井模式下,每个租户都是独立环境,计费模式相对来说会简单许多。
  • 降低故障影响面:因为每个客户的系统都是独立的,一个环境出问题不会影响其他客户的使用体验。

缺点

  • 规模化困难:每新增一个租户就要建立一套独立的环境,少量租户还能应付,但面对成千上万的租户,管理和运营这些环境的难度会成倍增加。
  • 成本高:每个租户单独的环境让机器成本上升,导致 SaaS 服务的盈利能力大打折扣。
  • 敏捷迭代受限:SaaS 的优势之一是快速迭代响应市场需求,但竖井隔离模式让这点变得不易操作,因为更新和管理每个租户的独立环境非常耗时、复杂。
  • 系统管理和监控复杂:在同一个环境中管理和监控基础设施相对简单,但每个租户都独立后,这种分散模式下的管理和监控会变得极具挑战性。

共享模式

相信很多 SaaS 服务商会优先选择共享模式,也就是多租户共享一套基础设施资源,这样能让 SaaS 软件服务更加高效、敏捷、低成本。如图6-4所示。

优势

  • 高效管理:在共享模式下,可以集中管理和运营所有租户,极大提升管理效率。同时,基础设施的配置管理和监控也更加简单。相比竖井模式,共享模式下的产品迭代更新速度更快。
  • 成本低:SaaS 服务商的成本中,基础设施占很大比例。在共享模式下,服务商可以根据租户的实际资源使用情况动态调整系统,极大提高基础设施的利用率,从而降低整体成本。

劣势

  • 租户相互影响:因为所有租户共享同一套资源,如果有租户大量占用资源,可能会影响其他租户的使用体验。为了解决这一问题,通常需要在技术架构上设计一些限制措施(如限流、降级、服务器隔离等),以控制影响范围。
  • 租户计费困难:在竖井模式下,很容易统计单个租户的资源消耗。而在共享模式中,由于所有租户共用资源,准确计算每个租户的使用成本会更加复杂,需要更多的精力和技术投入来实现合理的计费。

分域隔离模式

传统大企业往往更青睐私有化部署和个性化交付的传统模式,因为它们需要更强的管控能力和更高的安全性。而中小企业因为预算有限,需求通常也更标准化,因此更倾向于选择价格低、订购方便的 SaaS 产品。

为满足不同客户的需求,还有一种融合了竖井模式和共享模式的分域隔离模式。如图6-5所示。

在这种模式下,将资源细分为基础域和专用域:基础域使用共享模式,所有租户共享一套资源;专用域则采用竖井模式,每个租户拥有独立的资源环境。

大多数中小客户通常在基础域中使用 SaaS 产品,而只有少数具备强付费能力并有强隔离需求的大客户会选择在专用域中运行 SaaS 产品。

需要注意的是,为避免产生多个产品版本,SaaS 服务商需确保基础域和专用域的产品版本保持一致。

个性化需求尽可能通过 PaaS 平台来实现,让 ISV(独立软件开发商)参与建设。否则,一旦 SaaS 产品的标准化程度降低,多版本的维护将变得极其困难。

本文已收录于,我的技术网站:tangshiye.cn 里面有,算法Leetcode详解,面试八股文、BAT面试真题、简历模版、架构设计,等经验分享。

SaaS多租户的3种隔离模式的更多相关文章

  1. IaaS、PaaS、SaaS是云计算的三种服务模式

    IaaS.PaaS.SaaS是云计算的三种服务模式 1. SaaS:Software-as-a-Service(软件即服务)提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备 ...

  2. SaaS多租户模式数据存储方案

    云计算多租户几乎用于所有软件即服务 (Software as a Service, SaaS) 应用程序,因为计算资源是可伸缩的,而且这些资源的分配由实际使用决定.话虽如此,用户可以通过 Intern ...

  3. SaaS多租户模式数据存储方案比较

    云计算多租户几乎用于所有软件即服务 (Software as a Service, SaaS) 应用程序,因为计算资源是可伸缩的,而且这些资源的分配由实际使用决定.话虽如此,用户可以通过 Intern ...

  4. 云计算 --> 三种服务模式IaaS,PaaS,SaaS

    三种服务模式IaaS,PaaS,SaaS “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务.任何一个使用基于互联网的方法来计算,存储和开 ...

  5. 云计算的三种服务模式:SaaS/PaaS/IaaS

    转载http://blog.chinaunix.net/uid-22414998-id-3141499.html 定义 云计算主要分为三种服务模式,而且这个三层的分法重要是从用户体验的角度出发的: S ...

  6. 云计算三种服务模式SaaS、PaaS和IaaS及其之间关系(顺带CaaS、MaaS)

    云计算架构图 很明显,这五者之间主要的区别在于第一个单词,而aaS都是as-a-service(即服务)的意思,这五个模式都是近年来兴起的,且这五者都是云计算的落地产品,所以我们先来了解一下云计算是什 ...

  7. day 06云计算的三种服务模式:IaaS,PaaS和SaaS

    云计算的三种服务模式:IaaS,PaaS和SaaS ”云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道. “云”其实是互联 ...

  8. 云计算的三种服务模式:IaaS,PaaS和SaaS

    云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道. “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或 ...

  9. 初识云计算的三种服务模式 (IaaS SaaS PaaS)

    近期公司在使用其它云服务的同一时候.要封装自己的云服务,以下作为开发产品前的热身.来了解云计算中的三种服务模式,笔者也是从网络上查找,进行综合总结.请拍.. 三种服务模式 依据如今最经常使用.也就是比 ...

  10. 01:云计算三种服务模式SaaS、PaaS和IaaS

    1.1 云计算 1.什么是云计算 1. 云计算服务是指将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务. 2. 用户通过网络以按需.易扩展的方式获得所需资源和服务(资源包括网 ...

随机推荐

  1. Dolphinscheduler不重启加载Oracle驱动

    转载自刘茫茫看山 问题背景 某天我们的租户反馈数据库连接缺少必要的驱动,我们通过日志查看确实是缺少部分数据库的驱动,因为DolphinScheduler默认只带了Oracle和MySQL的驱动,并且需 ...

  2. springcloud feign集成hystrix

    本章介绍feign集成hystrix 1.增加pom依赖` <dependency> <groupid>org.springframework.cloud</groupi ...

  3. 【CMake系列】09-cmake install

    本节我们来学习,cmake的安装,将我们构建的目标安装到指定位置,为了模拟一般情况,实现了 可执行文件.静态库.动态库的安装,以及一般的 file 安装.代码的安装 本专栏的实践代码全部放在 gith ...

  4. Win32 状态栏用法

    WIN32 状态控件用法 1.创建控件 状态栏类名: STATUSCLASSNAME #define STATUSCLASSNAMEW        L"msctls_statusbar32 ...

  5. Win32 SDK(四)Edit控件用法

    Win32 SDK(四)Edit控件用法 1获得控件句柄 HWND hEdit2 = ::GetDlgItem(hWnd, IDC_EDIT2); WINUSERAPI HWND WINAPI Get ...

  6. C++17新特性

    C++17新特性 语言特性 使用auto声明非类型模板参量 折叠表达式 提供模板参数包的折叠 template <typename... Args> bool logicalAnd(Arg ...

  7. SpringBoot静态文件映射问题

    如果遇到这种情况,检查静态文件(js/css/img)是不是在默认的static路径下,在查看application配置中的 static-path-pattern: 是否和前端映射路径完全相同,要是 ...

  8. 【Burp Suite】Mac之破解明文密码

    一.安装CA证书 安装证书是为了代理的时候可以继续访问地址,否则的话会提示网络异常 参考文章:<Mac系统Burp Suite的安装>,文章中是火狐浏览器的操作 1.谷歌浏览器 选择导出的 ...

  9. 倾斜摄影osgb格式文件,进行坐标转换

    倾斜摄影OSGB格式的文件,很棘手,今天需要把osgb放到UE中渲染.碰到的问题如下: 1.osgb文件导进去后,Z轴不想上,是歪的,小人放进去后,就斜站在马路上. 2.根本原因是坐标系,UE的插件c ...

  10. MJUCTF—WP

    1.猫娘 点开发现有两个文件, 一个加密压缩包, 一个word文档 点开word发现是兽音加密, 点开在线网站进行解密 # 得到一段文本, 先进行分割 小小年内则伏勤, 阵阵寒风刺骨寒. 是处寂寞无人 ...