主页
topics
multi tenant
在多租户软件架构(也称为软件多租户)中,软件应用(及其底层数据库和硬件)的单个实例为多个租户(即用户帐户)提供服务。 租户可以是单个用户,但更多情况下是一组用户,例如共享应用实例的共同访问权和特权的客户组织。 每个租户的数据与共享应用实例的其他租户彼此隔离,且相互不可见,从而确保所有租户数据的安全与隐私。
软件多租户是用于交付软件即服务 (SaaS) 的架构。 如果贵组织使用 salesforce.com、HubSpot 或其他基于云的 SaaS 产品,那么您就是多租户产品中的一个租户。
有些令人困惑的是,多租户也可以指云托管产品。 在多租户托管(也称为共享托管)模式中,单一物理计算机或虚拟机 (VM) 由多个用户或客户组织共享。 多租户托管解决方案由云服务提供商提供,通常作为单租户或专用托管解决方案的更低成本的替代方案。
在本文剩余部分,我们重点介绍软件多租户。 在此可了解有关多租户和单租户托管类型的更多信息。
在单租户架构中,每个租户拥有各自的应用、数据库和支持硬件基础架构的实例,而与之相比,多租户架构可为软件提供商和租户客户带来以下显著的优势:
多租户云通常是共享托管或客户在公有云或私有云中共享计算资源的任何架构的同义词,但现在并不经常这样说。 目前,大多数主要的云服务提供商都基于多租户模式交付自己的大多数产品(除专用托管服务外的所有其他服务),这使得提供商能够最大程度利用自己的数据中心硬件和基础架构,从而能够以尽可能低的成本为客户提供云服务。
在为多租户应用选择数据库时,开发人员必须能够适当地平衡客户对数据隔离的要求或期望与迅速而经济地扩展解决方案的能力,后者旨在应对应用流量增长或高峰。
为确保完全隔离,开发人员可以为每个租户分配一个单独的数据库实例;而在另一个极端,为确保最大程度的可扩展性,开发人员可让所有租户共享同一个数据库实例。 但是,大多数开发人员选择使用像 PostgreSQL 这样的数据存储,这使每个租户在同一数据库实例中拥有自己的模式(有时这称为“软隔离”),从而实现最理想的平衡。