多租户技术介绍

什么是多租户

今天在听到ElasticSearch介绍的时候,其中提到ES可以支持多租户的功能,突然联想到之前在某些软件服务提供商的介绍中也出现过这个名词,但对其一直不是很理解。经过查阅资料,将自己对租户的理解总结如下:

多租户概念

多租户(Multi-Tenancy),或称为多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。

这里比较使人产生误解的便是” 租户 “这个名词,其实简单的说对于一个软件服务来说每一个用户都称为一个租户,而当这些使用软件服务的用户又希望自己的数据与同时用该软件的其他用户的数据相互隔离不会产生影响,要是 该软件架构支持一个实例 便能够满足这样的要求我们便可以说这个软件使用了多租户的技术。

多租户技术目前比较火的原因在于共享软件开发以及维护的成本,对软件的使用者来说多租户是一种经济的技术解决方案。并且从维护角度来说,多租户系统维护更加简单。相比于每个用户都使用一个软件实例的 单租户 系统,多租户系统提供者在系统发生更新变更的时候仅需要更新一次,而单租户则需要针对每一个用户进行更新。

举例说明

多租户例子

就拿我们平时所使用的网盘服务来说,网盘系统便是一个典型的多租户系统,这里我们仅仅指网盘的系统架构,而不是我们所下载的客户端(客户端仅仅是调用网盘系统服务的一个工具接口)。网盘的所有用户未分享公开的数据都是彼此隔离互不影响的,并且当网盘系统服务升级优化时,所有的用户便都可以使用到最新最优化的性能体验。

单租户例子

操作系统是一个典型的单租户例子,当操作系统需要做更新的时候,需要每个使用该操作系统的用户都需要参与进来,而无法做到对所有用户的统一更新,因为这些用户使用的不是同一个软件实例。

技术实现

多租户技术的实现重点,在于不同租户间应用程序环境的隔离(application context isolation)以及数据的隔离(data isolation),以维持不同租户间应用程序不会相互干扰,同时数据的保密性也够强。

数据面 (data approach):供应商可以利用切割数据库(database),切割存储区(storage),切割结构描述(schema)或是表格(table)来隔离租户的数据,必要时会需要进行对称或非对称加密以保护敏感数据,但不同的隔离作法有不同的实现复杂度与风险。

程序面 (application approach):供应商可以利用应用程序挂载(hosting)环境,于进程(process)上切割不同租户的应用程序运行环境,在无法跨越进程通信的情况下的情况下,保护各租户的应用程序运行环境,但供应商的运算环境要够强。

系统面 (system approach):供应商可以利用虚拟化技术,将实体运算单元切割成不同的虚拟机,各租户可以使用其中一至数台的虚拟机来作为应用程序与数据的保存环境,但对供应商的运算能力要更要求。

多租户应用

目前来说多租户技术应用最广的便是Saas即软件即服务技术,在这里就不详细展开的,感兴趣的读者可以自行了解 Saas的相关知识。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值