1. 多租户技术概述

随着近几年云计算技术的不断发展和成熟。云计算多租户技术在 SaaS 服务领域获得得快速的发展和广泛的应用。基于多租户技术的业务平台首先要保证不同租户业务的隔离,业务隔离主要包括下面 2 个方面:

❶ 物理隔离,租户开展业务所依赖的全部计算资源全然独立;

❷ 逻辑隔离,通过技术手段,隔离租户业务流程和业务数据。一个租户仅仅能访问自身的数据。

业务平台在设计时,需要能够依据客户需求提供不同形式的服务,即支持计算资源共享模式,也可支持计算资源独享模式。

所以在业务设计时,从数据库表结构到服务请求都需要提供租户标识。通过租户标识,可以实现不同租户的业务数据逻辑隔离的需求。那么对于租户独享计算资源模式,则通过为其部署单独的应用实例予以解决,业务平台通过统一的云公共管理模块进行多应用实例管理。从而解决大规模业务资源管理问题。

那么什么是多租户技术?多租户技术包括哪几种数据隔离方案?多租户技术具有哪些特点?下面小编将带您了解多租户技术。

多租户技术定义:多租户技术或称多重租赁技术,它是一种软件架构技术,是实现如何在多用户环境下(一般是面向企业用户)共用相同的系统或应用组件,并且可确保各用户间数据的隔离性

简单来说就是,在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架构,目的是为了让多用户环境下使用同一套应用程序,且保证用户间数据隔离。那么关于多租户的重点就显得浅显易懂了,多租户的重点就是同一套应用下实现多用户数据的隔离。

形象点的说,“租户”和我们多个人合租一套房子相似,张三和李四同租一套房子,各住一个卧室,互相不干扰,客厅、厨房为公共区域,大家可以一起共用一些公共的生活设施

2. 多租户应用架构的数据隔离方案

在当下云计算时代,多租户技术在共用的数据中心以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍可以保障客户的数据隔离。目前各种各样的云计算服务就是这类技术范畴,例如阿里云数据库服务、百度云数据库服务、腾讯云数据库服务、阿里云服务器等等。

多租户在数据存储上存在三种主要的方案,如下所示:

独立数据库

独立数据库即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本较高。

独立数据库方式

优点:

(1). 为不同租户提供独立数据库,有助于简化数据模型的扩展设计,满足个性化需求;

(2). 如果遇到故障时,数据恢复简单。

缺点:

(1).扩大了数据库的安装和运维数量,随之带来维护成本和购置成本的增加。

共享数据库,隔离数据架构

多个租户或所有租户共享数据库,但每一个租户提供一个Schema的方式。

共享数据库,隔离数据架构

优点:

(1).一定程度的逻辑数据隔离(并非完全),可满足较高程度的安全性保障;

(2).每个数据库,可支持更多租户数量;

缺点:

(1).恢复数据较困难,因为将牵扯到其他租户数据;

(2).跨租户统计数据,应用实现难度大,耗费成本高。

共享数据库,共享数据架构

所有的租户共享同一个数据库、同一个Schema,但是租户之间的数据隔离通过在数据表中添加TenantID属性进行实现。

共享数据库,共享数据架构

优点:

(1).每个数据库可支持租户数量多,维护和购置成本低;

缺点:

(1).隔离级别低,数据安全性低,在应用开发时需做大量安全开发工作,提高研发成本;

(2).需要逐表逐条备份和还原数据,数据备份和恢复困难。

说明:如果Saas应用提供商希望以最少的服务器为最多的租户提供服务,并且租户可以接受牺牲隔离级别用于换取降低成本,这种数据隔离方案最为适合。

多租户数据隔离方案选型

基于上述方案进行论述,通过三种方案的公优缺点进行对比,我们从资源共享、数据隔离、应用复杂性、应用成本四个方面进行对比总结。通过下面一张图来概括说明 。

多租户数据隔离方案选型

上图所总结的是一般性的结论,而在常规场景下需要综合考虑才能决定那种方式是最合适的方案。关于多租户方案的选型,主要考虑的方面是成本因素,对于大多数场景而言,共享度越高,软硬件资源的利用效率更好,成本也更低。但同时也要考虑和解决好多租户资源共享和隔离所带来的安全与性能、扩展性、技术储备等方面问题。

通过多租户技术的数据隔离方案的讲解和对比,我们总结一下多租户技术的特点。

3. 多租户技术的特点

1.由于多租户技术可以让多个租户共用一个应用程序或运算环境,且租户大多不会使用太多运算资源的情况下,对Saas服务提供商来说多租户技术可以有效的降低环境配置的成本,包含硬件本身的成本、操作系统与相关软件的授权成本都可以因为多租户技术而由多个租户一起分担。

2.通过不同的数据管理手段,多租户之间的数据可以采用不同的方式进行数据隔离,在Saas服务提供商的架构设计下,数据的隔离方式也会不同,而良好的数据隔离机制可以降低Saas服务提供商的维护成本(包含设备与人力),而Saas服务提供商可以在合理的授权范围内利用这些数据进行数据分析,以作为改善应用服务的依据。

3.多租户架构下所有用户都共用相同的软件环境,因此在软件升级或改版时可以只发布一次,就能在所有租户的环境上生效。

4.具有多租户架构的应用软件虽然在某一种程度上可以根据客户需求进行定制化开发,但定制化难度比较高,通常需要Saas平台层的支持与工具的支持,才可降低定制化所带来的应用复杂度。

一文带您了解软件多租户技术架构相关推荐

  1. 什么是5G NR技术?一文带你深入了解5G NR技术

    什么是5G NR技术?一文带你深入了解5G NR技术 工信部IMT-2020(5G)推进组正式发布了5G第三阶段研发试验规范,5G第三阶段研发试验已启动.该研发试验基于3GPP 5G标准,构建统一环境 ...

  2. 一文带你了解NFT的底层技术有哪些

    一文带你了解NFT的底层技术有哪些 写在前面 不知道从什么时候起,NFT突然火了.你会时不时的看到一个新闻说某个数字藏品的NFT买了几十万美金,似乎NFT是财富密码一样. 如果你关注这个行业,你肯定挺 ...

  3. ★★ 人人网开源软件、相关技术架构

    人人网使用的开源软件应用 技术架构两三语 人人网使用的开源软件列表 url:http://ugc.renren.com/2009/12/13/a-list-of-open-source-softwar ...

  4. 网关是什么,一文带你快速入门腾讯技术工程

    今天来开门见山地讲讲网关是一个怎么样的组件,网关在做什么事情.网关这个词其实到处都在用,它可以工作在硬件层面,也可以工作在网络层,还可以工作在应用层. 网关快速入门 网关在做什么? 我们今天讲的实际上 ...

  5. 一文带你领略虚拟化领域顶级技术会议KVM Forum 2018

    KVM Forum是由Linux基金会组织的高端技术论坛会议,主要为社区各个维护者,开发人员,和用户提供一个讨论Linux虚拟化技术发展趋势以及挑战的交流场所.参会人员都集中在KVM虚拟化相关领域,是 ...

  6. 一文带你了解MySQL的前世今生,架构,组成部分,特点,适用场景

    文章目录 一.MySQL的由来 二.MySQL的架构 2.1 客户端 2.2 服务器 三. MySQL的主要组成部分 3.1 连接管理器 3.2 查询缓存 3.3 解析器 3.4 查询优化器 3.5 ...

  7. 带你一文读懂SaaS版多租户商城系统对多品牌企业的应用价值

    ​ 近年来,随着中国的企业级SaaS软件服务的方兴未艾,企业的信息化建设覆盖从底层基础设施到上层应用软件,具备即需即用.按需付费的服务正在给企业信息化带来前所未有的变革. 目前,面向大型企业/集团搭建 ...

  8. 计算机软件行业市场规模,行业深度!一文带你看懂2021年中国工业软件行业市场规模、竞争格局及发展趋势...

    未来我国工业软件亟需提升自主创新能力 工业软件是专用于或主要用于工业领域,为提高工业企业研发.制造.生产管理水平和工业管理性能的软件.工业软件覆盖范围广,产品种类多.当前中国工业软件整体处于协同应用末 ...

  9. 游戏引擎架构第二版中文pdf_阿里架构有多牛,一文带你看遍阿里技术架构!

    阿里的架构能力自不用多言.本期1C9U就带大家实际看看阿里的架构大牛们的精彩分享. 互联网架构 16:20 - 17:10 黄贵 - 阿里新一代分布式数据库X-DB技术剖析.pdf 互联网架构 10: ...

最新文章

  1. 在linux上面合并多个windows文件乱码的问题
  2. UHF RFID编码之TPP编码
  3. python变量类型-Python变量类型
  4. poj 3006 java
  5. Linux内核最新的连续内存分配器(CMA)——避免预留大块内存
  6. Handler 机制分析
  7. 提交时是使用防抖还是节流_使用BlockingExecutor进行节流任务提交
  8. .net实现邮件发送及解决遇到问题
  9. 面试前,不要这么准备了,简直愚蠢到极点
  10. java异常体系_Java异常体系(Throwable、Error、Exception)
  11. SCCM2012升级SP1系列之配置管理SCCM2012④配置SCCM2012补丁分发
  12. 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解
  13. 数学建模PPT(四)
  14. 视觉SLAM十四讲中的修改代码总结
  15. Bitvise SSH Client 无法连接服务器
  16. 抽样调查之分层随机抽样
  17. 微信H5开发,怎样禁止手机横屏
  18. Playing Atari with Deep Reinforcement Learning
  19. 更新驱动后重启黑屏且进不了bios时的一个解决办法
  20. mysql中null值求和_sql求和涉及到null值

热门文章

  1. html5订货系统,order-admin
  2. Kids and COVID: why young immune systems are still on top
  3. Linux 中三种引号(单引号、双引号、反引号)的区别
  4. linux下连接window xp共享HP打印机
  5. 扑克牌游戏03 PukeCards类
  6. 基于python的opencv图像形态学处理(图像腐蚀与膨胀操作以及礼帽与黑帽)
  7. 2012 比较全的工资待遇搜集
  8. C# 限制TextBox控件内输入值的范围
  9. Visual Studio Code 多开
  10. python视频资料免费领取_python爬虫学习视频资料免费送,用起来非常666