多租户是指多个不同的云客户访问相同的计算资源,例如多个不同的公司在同一物理服务器上存储数据。
阅读本文后,您将能够:
复制文章链接
在云计算术语中,多租户是指云供应商的多个客户正在使用相同的计算资源。虽然他们共享资源,但这些云服务客户彼此并不了解,而且各自的数据完全独立。多租户是云计算的重要组成部分;没有它,云服务的实用性将大大降低。多租户架构是多种类型公共云计算的功能,包括 IaaS、PaaS、SaaS、容器和无服务器计算。
要了解多租户,请思考一下银行业务的运营方式。多个人员可以将钱存入某个银行,虽然存储在同一个银行网点,但他们的资产是完全分开的。银行客户不会彼此互动,无法获取其他客户的资金,甚至彼此之间也不了解。类似地,在公共云计算中,云供应商的客户虽然使用相同的基础设施(通常是相同的服务器),但各自的数据和业务逻辑仍然保持独立和安全。
多租户的经典定义是为多个用户或租户提供服务的单个软件实例*。但是,在现代云计算中,该术语具有更广泛的含义,指的是共享的云基础设施,而不仅仅是共享的软件实例。
*软件实例是加载到随机存取存储器 (RAM) 中的运行程序的副本。
在云计算中,应用程序和数据托管在各个数据中心的远程服务器中,并可通过 Internet 进行访问。数据和应用程序集中在云中,而不是位于单个客户端设备(如笔记本电脑或智能手机)上或公司办公室内的服务器中。
许多现代应用程序都是基于云的,这就是为什么用户可以访问其 Facebook 帐户并从多个设备上传内容的原因。
云计算的许多优点只有在多租户的情况下才可能实现。以下是多租户改进云计算的两种重要方法:
更好地利用资源:为一个租户保留一台服务器这种做法的效率并不高,因为一个租户不太可能使用服务器的所有计算能力。让多个租户共享服务器,可以最大限度地利用可用资源。
降低成本:在多个客户共享资源的情况下,云供应商能够以比每个客户自己专用基础设施所需低得多的成本向许多客户提供服务。
可能的安全风险与合规问题:由于监管要求,无论共享基础设施多么安全,某些公司可能依旧无法将自家数据存储在其中。此外,源于某个租户的安全问题或受损数据可能会传输到同一台计算机上的其他租户;虽然这种情况极为罕见,但是如果云供应商已正确配置其基础架构,则不应该发生这种情况。由于云供应商通常能够比单个企业进行更多安全方面的投资,因此可以在一定程度上缓解上述安全风险。
“嘈杂邻居”效应:如果一个租户使用过多的计算能力,这可能会降低其他租户的性能。同样,如果云供应商已正确设置其基础设施,则不应发生这种情况。
Cloudflare 可帮助进行任何类型云部署的公司保持其数据安全和快速的 Web 属性。Cloudflare 产品体系位于任何类型的基础设施前面,并使 Web 属性更安全、更可靠和更快。要了解有关 Cloudflare 如何与云部署集成的更多信息,请参见 Cloudflare 如何与任何云基础设施协作。
在这里,我们将更深入地研究使多租户在不同类型的云计算中成为可能的技术原理。
想象一下一种特殊的汽车发动机,它可以在多辆汽车和车主之间轻松共享。每个车主都需要发动机表现略有不同:一些车主需要功能强大的 8 缸发动机,而另一些车主则需要更省油的 4 缸发动机。现在想象一下,这种特殊的发动机能够在每次启动时自行变形,从而更好地满足车主的需求。
这类似于许多公共云提供商实施多租户的方式。大多数云提供商将多租户定义为共享软件实例。他们存储有关每个租户的元数据*,并使用这些数据在运行时更改软件实例,以满足每个租户的需求。租户通过权限彼此隔离。即使他们都共享相同的软件实例,他们各自对软件的使用和体验也有所不同。
*元数据是有关文件的信息,有点像书背面的描述。
容器是独立的软件捆绑包,包括应用程序、系统库、系统设置和应用程序运行所需的所有其他内容。容器有助于确保应用程序无论在何处托管都运行相同的内容。
容器彼此分区为不同的用户空间环境,并且每个容器就像它是该主机上的唯一系统一样运行。因为容器是独立的,所以由不同云客户创建的多个容器可以在一台主机上运行。
无服务器计算是一种模型,在该模型中,应用程序被分成更小的部分,称为功能,每种功能仅按需运行,与其他功能分开。(这种云计算模型也称为功能即服务或 FaaS。)
顾名思义,无服务器功能不在专用服务器上运行,而是在无服务器提供商基础设施中的任何可用计算机上运行。由于公司没有分配自己的独立物理服务器,因此无服务器提供商通常会在任何指定时间在单个服务器上运行多个客户的代码 – 这是多租户的另一个例子。
一些无服务器平台使用 Node.js 执行无服务器代码。Cloudflare 无服务器平台 Cloudflare Workers 使用 Chrome V8,其中每种功能都在自己的沙箱或单独的环境中运行。这使得无服务器功能彼此完全分开,即使它们在相同的基础设施上运行。
私有云计算使用多租户架构的方式与公共云计算的方式大致相同。不同之处在于,其他租户并非来自外部组织。在公共云计算中,公司 A 与公司 B 共享基础设施。在私有云计算中,公司 A 内的不同团队彼此共享基础设施。