深入解析云平台下的多租户架构设计及其核心要点

2025-02-07
来源:网络整理

今天,我将讨论云平台下的多租户体系结构。无论是在公共云还是在私有云平台中,都是为最终组织,用户或商业系统的PAAS平台设计SaaS应用程序。多租户是早期建筑设计的关键。内容,因此有必要进一步解释其中的一些核心点。

多租户体系结构的概述

首先,让我们看一下百科全书对多租户的一些关键解释:如下:

多租户技术(英语:-)或多个租赁技术是一种软件体系结构技术,它探讨了如何在多用户环境中共享相同的系统或程序组件,并且仍然可以确保用户之间的数据。隔离。多租户仅意味着一个实例可以为多个组织服务。多租户技术提供的服务与具有单个系统体系结构的共享数据中心中的服务相同,甚至可以定制,并且仍然可以确保客户数据隔离。支持多租户技术的系统需要对其设计和设计中的数据进行虚拟分区,以便系统的每个租户或组织都可以使用单独的系统实例,并且每个租户都可以使用其自身的需求。个性化租赁系统实例。

多租户技术可以实现多个租户之间的系统实例共享,同时,它可以实现对租户系统实例的个性化定制。通过使用多租户技术,可以确保共享系统的共同部分,并单独隔离单个部分。通过在多个租户之间的资源再利用,运营,管理和维护资源可以有效地保存在开发和应用成本中。此外,在租户之间共享应用程序的单个实例可以使所有租户在升级应用程序的同时升级。同时,由于多个租户共享系统核心代码的副本,因此,当系统升级时,您只需要升级相同的核心代码即可。

此描述可能会更详细地理解,因此让我们从简单的场景中解释它。

例如,我们开发了用于SaaS云服务的CRM系统。该系统可以向公共云中的多个企业客户开放。然后我们遇到了一个关键问题。也就是说,当新建立一个新的企业客户时,我们需要重新部署一组应用程序供该客户使用?

如果是这种情况,那么当新客户搬进来时,将带来特定的劳动力和资源投资成本。

因此,实际情况是,当我们希望添加新客户时,我们仍然拥有与以前相同的应用程序系统。但是,对于定居的最终客户,我们希望客户将无法感知到这一点,就像分别为他们部署系统一样。尽管许多客户使用相同的应用程序,但他们可以良好的资源和数据隔离。

这恰好是多租户体系结构中的关键点。

多租户,多组织,用户差异

让我们谈谈常见概念的一些关键差异。

多租户和多组织

实际上,在出现云计算和多租户的概念之前,已经有一个多组织的概念。

例如,通常所说的ERP系统(例如SAP)支持多组织结构。简而言之,多组织结构是针对大型群体式企业的。企业本身涉及子公司或分支机构。子公司可能涉及独立的合法人员或独立的财务报表。否则相关公司也涉及海外。不同的财务和会计标准。

基于上述情况,继续进行了多个组织结构。

多组织结构支持小组中的所有企业使用相同的ERP系统,该系统通过合法人员,财务书籍,OUS和其他环境提供多组织支持。而不是单独为子公司部署独立的应用程序系统。

从这个概念来看,多组织和多租户非常相似。

开发租房小程序_租户开发程序小结怎么写_开发多租户小程序

那么两者之间的主要区别是什么?

总而言之,多组织结构的重点是数据级隔离,但是对于多租户结构,考虑资源级别的隔离更为重要。多组织架构通常不考虑类似于云平台的计费和计量管理。数据隔离更多是为了随后的财务和数据安全控制要求,而多租户架构需要考虑计费和计量管理。通常,资源在多组织结构下共享,而在多租户结构下是否共享资源与资源安全控制要求有关。

租户和用户

租户和用户实际上是两个不同的概念。租户更多地用于资源管理和计费测量,而用户则更多地用于业务功能和授权。

有时,租户和用户也有一对一的信件。例如,如果您为单个用户开发在线邮箱SaaS应用程序,则此时租户和用户本身是相应的,而房客是用户。

但是,如果您正在为企业开发SaaS应用程序系统,那么租户对应于组织级别,即定居的公司是租户。在相应的公司解决之后,SaaS应用程序将首先将管理员帐户分配给企业。当时,管理员将在公司中详细输入特定的用户帐户。

换句话说,租户是第一层,而组织结构和用户是第二层。

SaaS应用和PAAS平台的多租户

请注意,SaaS应用程序和PAAS平台本身都有一个多租户概念。

对于SaaS应用程序,例如TOB SaaS应用服务。最终面对企业和最终用户,因此每个定居的公司组织都是租户。

例如,对于PAAS平台,我们在企业中构建了一个公共流程平台,该平台是企业私有云中PAAS平台的一部分。然后,该平台本身还需要由多租户设计,并且该平台的租户实际上是每个业务系统,需要流程引擎的能力。对于类似的容器云PAAS平台,消息和缓存各种PAAS技术服务,您可以看到实际上,每个业务系统都是最终的租户。

让我们以上面的示例为例。

如果向多个业务系统开发人员提供了企业的内部公共流程平台,那么与类似,在企业本身中开发了两个业务系统CRM和SRM。

然后,实际管理方法可以是CRM和SRM,可以分别申请并注册租户。它也可以是两层结构,也就是说,该组织应首先应用,组织应成为第一层租户。但是,在组织访问后,它还需要维护需要访问的业务系统,并且业务系统是二线租户。组织的第一级实际上只是租户集的抽象概念。

实际的资源管理,衡量和计费可以以精细的方式管理业务系统的水平。

多租户建筑设计和资源隔离

在多租户和云组合的情况下,Iaa的基本资源层的共享将更改为最基本的要求。因此,让我们谈谈IaaS层上方的主要内容,其中包括两个方面,即应用程序或多个集合?是否有一组数据库或多个集合?最彻底的多租户是上图中的第六个模型。在此模型中,数据库和应用程序都是相同的。

对于多租户,我们首先考虑隔离。多租户下的隔离包括几个方面。

一个是隔离系统的元数据和基本的主数据(用户,角色,权限,数据字典,过程模板),另一个是隔离系统操作过程中生成的动态数据,另一个是涉及的计算资源在业务系统的基础层中。与存储资源的隔离。

对于一个应用程序集,多个数据库集或多个分隔,我们更容易实现计算资源和存储资源的单独分配,但是在完整的情况下,隔离计算和存储资源需要我们的PAAS应用程序本身考虑。

开发租房小程序_开发多租户小程序_租户开发程序小结怎么写

在当前的云本机和容器下,整个动态部署和连续交付都更容易。为了更好地隔离资源,我们可以完全动态地扩展一组独立的容器群集,以服务于租户,也就是说,实施此租户以便能够使用一组容器资源池而不是共享。

私人云下的多元租户通常被隔离,并且在完全隔离时需要支持租户或组织之间的数据共享。可以看出,如果存在这种需求,则在以下情况下更容易满足。

除隔离外,多租户的另一个重点是能够根据需要实时提供各种计算资源和存储资源,并具有明确定义的数据收集和计费模型。由于共享资源池,因此我们必须能够准确收集每个租户的实际资源使用情况,以促进多租户计费。

共享资源时的资源隔离

当在IaaS云平台上,可以将物理计算机虚拟化为多个虚拟云主机并提供​​给不同的租户以供使用,并且虚拟机可以实现计算,网络,网络,存储等资源的逻辑隔离。换句话说,虚拟机使用异常或由一个租户本身引起的性能问题不会影响其他租户使用的虚拟机。

当您到达SaaS层时,您仍然需要考虑租户下方的资源管理,尤其是当多个租户共享一组基础资源时。

例如,目前使用CRM系统的SaaS版本有四个租户A,B,C和D租户。该系统不能正常使用。为此,我们必须实现面向租户的服务能力控制,服务流量限制和其他功能。

多个租户的资源计费

如果您是IAAS平台的多租户,则可以单独应用弹性计算和弹性存储资源,并且资源本身在逻辑上是孤立的,因此此时计费相对简单。

但是,对于SaaS应用程序,根据资源使用情况更为复杂。因此,一般的SaaS应用程序将基于用户注册,并发号码或存储容量分配的数量来执行合并帐单。当然,如果它是具有非共享资源模型的多租户体系结构,那么根据资源使用情况进行账单非常容易。

在多租户下的域和分组

即使具有完整资源共享的多租户架构,仍然不建议使用大型集群为所有租户提供服务。取而代之的是,大集群应分为域或分组,或应分区或碎片的群集资源。将不同的租户分配给不同的集群组或碎片。

这样做的好处可以避免由单个大集群的无限扩展造成的性能问题和管理困难,同时提高了整个应用程序的可容忍度,例如所有集群A失败,也可以快速切换集群到集群B的流量。

多租户下的数据库扩展

在公共云中,如果采用了完全共享的模型,则还必须考虑数据库的可扩展性。多租户体系结构服务下的数据库可以是独立的数据库,是共享数据库,但是独立的数据库以及完全共享的数据库模式。

独立的数据库架构为每个租户分配一个独立的数据库,该数据库在SID层完全独立。对于共享数据库但独立模式,只有一个SID,但是当新的租户被安置时,将单独生成另一个独立的人。

最后一个模型是只有一个SID总和完全共享数据库。在此模型中,核心是所有数据库表都需要添加租户ID字段以隔离数据,以确保某个租户仅在登录系统时才能看到它。在您自己的租户下的相关信息。如果它是一个完整的多租户应用程序,则还必须考虑用户,组织,角色组等的第二级数据隔离,以满足业务系统的需求。

可以看出,独立数据库模式的资源利用率很低,但是数据隔离是最好的。虽然资源利用率很高,但数据隔离率最弱。因此,采用哪种模型仍然需要根据实际租户的需求灵活地创建和配置。实际上,灵活的SaaS应用程序需要同时灵活地支持上述三个型号。

分享