登录 / 注册 Account

云计算

什么是多租户?

多租户是一种单个软件实例可以为多个不同用户组提供服务的软件架构。软件即服务(SaaS)就是一种多租户架构。

云计算中,多租户也可以指共享主机,其服务器资源将在不同客户之间进行分配。

与多租户相对应的是单租户,单租户是指软件实例或计算机系统中只有 1 个用户或用户组。

从分时到 SaaS

多租户的想法早在数十年前就已诞生。上世纪 60 年代,拥有功能强大且价格昂贵的大型机的多所大学开发出了分时软件,使多个用户能够基本上同时访问计算机。

几十年来,这一想法从未消失。如今,正是多租户的概念让云计算成为可能。公共云中拥有大量共享资源(处理能力和内存),可以将其分配给多个租户。即使每个租户的工作负载恰好在同一台物理计算机或同一组计算机上运行,它们也会保持隔离状态。

如果我们将这一思路进一步应用到软件架构中,现代的 SaaS 概念便应运而生。SaaS 提供商将运行某个应用的单个实例,并为各个客户提供访问权限。即使多个用户在访问同一软件,每个用户的数据仍会彼此隔离。

当涉及 Kubernetes容器编排平台时,多租户一词通常是指为多个项目提供服务的单个集群。系统会对集群进行配置,从而让每个项目都独立运行。

多租户架构的优势

多租户具有很多优势,这一点在云计算中可谓显而易见。

多租户可以节省成本。计算规模越大,成本就越低,并且多租户还允许对资源进行有效地整合和分配。对于个人用户而言,访问云服务或 SaaS 应用所需的费用通常要比运行单租户硬件和软件更具成本效益。

多租户可以提高灵活性。如果您选择自行购置硬件和软件,那么在需求旺盛时可能会难以满足需求,而在需求疲软时则可能会闲置不用。另一方面,多租户云却可以根据用户的需要来灵活地扩展和缩减资源池。作为公共云提供商的客户,您可以在需要时获得额外容量,而在不需要时则无需付费。

多租户可以提高效率。多租户消除了单个用户管理基础架构及处理更新和维护的必要。每个租户都可以依靠中央云提供商(而不用自己组建团队)来处理这些日常琐事。

什么时候更适合选择单租户架构?

尽管多租户有诸多优点,但仍有一些用例更适合单租户计算机系统。

其中,最主要的是涉及高度敏感数据的应用。公共云环境和 SaaS 产品的确会隔离工作负载和数据,并且依据设计会妥善保留工作记录。但在受控测试中,研究人员还是发现了可能(至少在理论上)会在云环境中进行跨租户攻击的漏洞。

其实,这些风险相对来说微乎其微。根据美国国家安全局 2020 年有关云漏洞的报告,共享式租赁的漏洞非常少见,而且需要尖端技术才能实现。美国国家安全局(NSA)的报告称,目前还没有任何针对主要公共云提供商的跨租户攻击记录。NSA 认为,这些风险要小于因访问控制不当和配置错误而引起的风险。

Linux 中的多租户环境

任何设置多租户环境的人都将面临是用虚拟机(VM)还是用容器来隔离环境的选择。

如果使用虚拟机,虚拟机监控程序就会启动客户机,而每个客户机都有自己的操作系统及相应的应用和依赖项。同时,虚拟机监控程序还会确保用户之间彼此隔离。

相比虚拟机,容器更加轻便、灵活且易于扩展。通过在单个主机上部署多个应用,并且使用内核和容器运行时来启动每个容器,容器可以简化多租户部署。与虚拟机(每个都包含自己的内核)相比,在容器中运行的应用则共享一个内核(甚至在多个租户之间)。

Linux® 中,命名空间使得多个容器可以同时使用同一资源而不会产生冲突。确保容器的安全就等同于确保所有运行中进程的安全。 

使用 Kubernetes 进行容器编排时,可以利用单个 Kubernetes 集群来设置多租户环境。您可以将租户分隔到自己的命名空间中,并创建能强制执行租户隔离的策略。

云计算所需的工具

Red Hat Enterprise Linux logo

保持轻巧,利用经过优化、系统空间占用率极小的操作系统来运行 Linux 容器。

Red Hat OpenStack Platform product logo

一种云基础架构,旨在帮助您摆脱标准硬件束缚,让您通过单个平台按需部署自己所需的私有云工具。

Red Hat OpenShift product logo

开发、部署和管理容器——不限位置,不限规模。

云端未来,潜力无限