多租户架构

多租户是一种体系结构,其中软件应用程序的单个实例为多个客户提供服务。每个客户称为租户。可以为租户提供自定义应用程序某些部分的功能,例如用户界面(UI)的颜色或 业务规则,但他们不能自定义应用程序的 代码。

在多租户架构中,应用程序的多个实例在共享环境中运行。之所以能够使用这种架构,是因为每个租户在物理上都是集成在一起的,但是在逻辑上却是分开的。这意味着该软件的单个实例将在一台服务器上运行,然后为多个租户服务。这样,多租户体系结构中的软件应用程序可以共享配置,数据,用户管理和其他属性的专用实例。

多租户应用程序可以共享相同的用户,显示器,规则-虽然用户可以定制这些在一定程度上-和数据库 模式,其中租户还可以自定义。

多租户的重要性

多租户已经看到了很多可以采用的方法,并且大多数用于云计算。在公共云和私有云环境中都可以找到多租户架构,从而使每个租户的数据彼此分离。例如,在多租户公共云中,将在托管环境中使用相同的服务器托管多个用户。在这些服务器内为每个用户提供了一个单独的理想的安全空间来存储数据。

多租户对于公共云和私有云的可伸缩性也很重要,并且已使多租户成为标准。多租户架构还可以帮助为组织提供更好的ROI,以及加快租户的维护和更新速度。

多租户架构的类型

共有三种主要的多租户模型类型,它们的复杂性和成本各不相同。单个共享数据库模式是具有多租户数据库的多租户模型。这是这三种形式中最简单的一种,并且由于使用共享资源,对租户来说成本较低。该表单使用单个应用程序和数据库实例来托管租户并存储数据。使用单个共享数据库模式可简化扩展。但是,运营成本可能更高。

另一个多租户体系结构包括使用具有多个架构的单个数据库。该租户系统使用单个应用程序实例,并为每个租户使用单独的数据库。此外,这种架构的成本较高,每个数据库的开销也更大。当来自不同租户的数据需要区别对待时(例如,如果他们必须经历不同的地理法规时),这是一种有价值的体系结构。

第三种类型的多租户体系结构将数据托管在多个数据库中。该模型在管理和维护方面相对复杂,但是可以通过选择的标准来分隔租户。

多租户的优缺点

成为主机提供者和具有多租户的租户有许多优点和缺点。一些优势包括:

  • 与其他租户托管体系结构相比,它更便宜。
  • 提供按需付费的定价模型。
  • 租户不必担心更新,因为它们是由主机提供者推出的。
  • 租户不必担心托管数据的硬件。
  • 提供者只需监视和管理一个系统。
  • 该体系结构易于扩展。

但是,多租户附带的一些缺点包括:

  • 多租户应用程序的灵活性往往不如其他租户体系结构(例如单租户)中的应用程序灵活。
  • 通常,多租户比单租户更复杂。
  • 多租户应用需要更严格的身份验证和访问控制以确保安全。
  • 租户必须担心嘈杂的邻居,这意味着同一CPU上的其他人会消耗很多周期,这可能会减慢响应时间。
  • 停机时间也可能是一个问题,具体取决于提供商。

例子

在 云计算中,由于采用了虚拟化 和 远程访问的新服务模型,多租户体系结构的含义得到了扩展 。例如,软件即服务(SaaS)提供程序可以在一个数据库实例上运行其应用程序的一个实例,并为多个客户提供Web访问。在这种情况下,每个租户的数据都是隔离的,其他租户看不到。多租户也可以在多层系统(例如SAP系统)中实现。

多租户与单租户

每个客户的多租户和单租户架构的比较。

多租户与单租户

多租户可以与单租户形成对比,单租户是一种架构,其中每个客户都有自己的软件实例,并且可以访问源代码。在单租户体系结构中,租户将拥有专用于它们的SaaS应用程序的单个实例,这与共享服务的多租户不同。因为每个租户都位于单独的环境中,所以它们的绑定方式不同于共享基础结构的用户。意味着单租户架构更具可定制性。

多租户是两者中更常用的选项,因为大多数SaaS服务都在多租户上运行。与单租户相比,多租户更便宜,资源使用效率更高,维护成本更低以及具有更大计算能力的潜力。使用多租户体系结构,提供程序仅需要进行一次更新。使用单租户体系结构,提供程序必须接触软件的多个实例才能进行更新。

潜在的客户可能会选择单租户基础架构而不是多租户基础架构,以便能够在其环境中拥有更多的控制权和灵活性-通常可以满足特定的需求。

如何检查nginx打开socket数量
mongodb和mysql的区别