找回密码
 立即注册
查看: 27|回复: 0

数据词典:多租户技术(Multi Tenant Technology)

[复制链接]

656

主题

70

回帖

2291

积分

管理员

积分
2291
发表于 2025-11-7 18:58:06 | 显示全部楼层 |阅读模式
传统的软件运行和维护模式要求软件被部署在用户所购买或租用的数据中心当中,这些软件大多服务于特定的个人用户或企业用户。在云计算环境中,更多的软件以SaaS的方式发布出去,并且通常会提供给成千上万的企业用户共享使用。与传统的软件运行和维护模式相比,云计算要求硬件资源和软件资源能够更好地共享,具有良好的可伸缩性,任何一个企业用户都能够按照自己的需求对SaaS软件进行客户化配置而不影响其他用户的使用。多租户技术就是目前云计算环境中能够满足上述需求的关键技术。
多租户技术是一项云平台技术,该技术使得大量的用户能够共享同一堆栈的软、硬件资源,每个用户能够按需使用资源,能够对软件服务进行客户化配置,而且不影响其他用户的使用。这里,每一个用户被称为一个租户。
目前普遍认为,采用多租户的SaaS应用需要具有两项基本特征:第一点是SaaS应用是基于Web的,能够服务于大量的租户,并且可以非常容易地伸缩;第二点则在第一点的基础上要求SaaS平台提供附加的业务逻辑使得租户能够对SaaS平台本身进行拓展,从而满足更大型企业的需求。目前,多租户技术面临的技术难点包括数据隔离、客户化配置、架构扩展和性能定制。
数据隔离是指多个租户在使用同一个系统时,租户的业务数据是相互隔离存储的,不同租户的业务数据处理不会互相干扰。多租户技术需要实现安全、高效的数据隔离,从而保证租户数据安全及多租户平台的整体性能。对多租户的数据库管理有三种基本模式:第一种方式是给每一个租户创建单独的数据库,这样做的好处是用户间数据充分隔离,缺点是数据库管理的成本和开销比较大;第二种方式是将多个租户的数据保存在同一个数据库中,但是采用不同的模式(Schema),这样在一定程度上减小了数据库管理成本和开销,但是相应地影响了数据隔离的效果;第三种方式是将多个租户的数据保存在一个数据库中,采用相同的模式(Schema),也就是说将数据保存在一个表或者一类具有相同模式的表中,通过租户的标识码字段进行区别,这样的管理成本和开销最低,但是数据隔离的效果最差,需要大量的安全性检验来保障租户间的数据隔离。
客户化配置是指SaaS应用能够支持不同租户对SaaS应用的配置进行定制,比如界面显示风格的定制等。客户化配置的基本要求是一个租户的客户化操作不会影响其他租户。这就要求多租户系统能够对同一个SaaS应用实例的不同租户的配置的进行描述和存储,并且能够在租户登录SaaS应用时根据该租户的客户化配置为其呈现相应的SaaS应用。在传统的企业应用运行模式中,每个企业用户都拥有一个独立的应用实例,因此可以非常容易地存储和加载任何客户化配置。但在多租户场景下,成千上万的租户共享一个实例。在现有的平台技术中,比如J2EE,对应用配置的更改通常会对该平台中的所有用户产生影响。因此,如何支持不同租户对同一应用实例的独立客户化配置是多租户技术面临的一个基本挑战。
架构扩展是指多租户服务能够提供灵活的、具备高可伸缩的基础架构,从而保证在不同负载下多租户平台的性能。在典型的多租户场景下,多租户平台需要支持大规模租户的同时访问,因此平台的可伸缩性至关重要。一个最简单的方法是在初始阶段就为多租户平台分配海量的资源,这些资源足以保证在负载达到峰值时的平台性能。然后,很多时候负载并不是处于峰值的,所以这个方法会造成巨大的计算资源和能源的浪费,并且会大幅增加多租户平台提供商的运营成本。因而,多租户平台应该具有灵活可伸缩的基础架构,能够根据负载的变化按需伸缩。
性能定制是多租户技术面临的另一个挑战。对于同一个SaaS应用实例来说,不同的用户对性能的要求可能是不同的,比如某些客户希望通过支付更多的费用来获取更好的性能,而另一些客户则本着“够用即可”的原则。在传统的软件运营模式中,由于每个客户拥有独立的资源堆栈,只需要简单地为付费多的用户配置更高级的资源就可以了,因此相对而言性能定制更容易一些。然而,同一个SaaS应用的不同租户共享的是同一套资源,如何为不同租户在这一套共享的资源上灵活地配置性能是多租户技术中的难点。
IT人员经常会面临选择虚拟化技术还是多租户技术的问题。多租户与虚拟化的不同在于:虚拟化后的每个应用或者服务单独地存放在一个虚拟机里,不同虚拟机之间实现了逻辑的隔离,一个虚拟机感知不到其他虚拟机;而多租户环境中的多个应用其实运行在同一个逻辑环境下,需要通过其他手段,比如应用或者服务本身的特殊设计,来保证多个用户之间的隔离。多租户技术也有虚拟化技术的一部分好处,如可以简化管理、提高服务器使用率、节省开支等。从技术实现难度的角度来说,虚拟化已经比较成熟,并且得到了大量厂商的支持,而多租户技术还在发展阶段,不同厂商对于多租户技术的定义和实现还有很多分歧。当然,多租户技术有其存在的必然性和应用场景。在面对大量用户使用同一类型应用时,如果把每一个用户的应用都做成单独的虚拟机,可能需要成千上万台虚拟机,这样会占用大量的资源,而且有大量重复的部分,虚拟机的管理难度及性能开销也大大增加。在这种场景下,多租户技术作为一种相对经济的技术就有了用武之地。
【出处】虚拟化与云计算小组.虚拟化与云计算,电子工业出版社,200910.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|全数联人才测评中心 ( 京ICP备2024094898号 )

GMT+8, 2025-11-18 06:09 , Processed in 0.133045 second(s), 19 queries .

版权所有: 全数联人才测评(北京)中心

友情链接: 中华全国数字人才培育联盟 全数联人才测评中心学习平台 全数联人才测评中心存证平台 全数联人工智能专员认证中心

快速回复 返回顶部 返回列表