多租户应用


https://en.jinzhao.wiki/wiki/Multitenancy

软件多租户

Software Multitenancy

**软件多租户(Software Multitenancy)**是一种软件架构,这种架构中,软件的单个实例运行在服务器上,并服务于多个租户(tenant)。以这种方式设计的系统是“共享的(shared)”,而不是“专用的(dedicated)”或“隔离的(isolated)”。租户是一组用户,他们通过特定的权限共享对软件实例的通用访问。在多租户体系结构中,软件应用程序旨在为每个租户提供实例的专用共享——包括其数据、配置、用户管理、租户个人功能和非功能属性。多租户与多实例( multi-instance)体系结构不同,在多实例体系结构中,单独的软件实例代表不同的租户运行。

进程

历史

多租户应用由三种类型的服务演化而来,并结合了它们的一些特征:

  1. 分时Timesharing: 从20世纪60年代开始,公司租用大型机的空间和处理能力(分时)以减少计算费用。它们还经常重用现有的应用程序,在登录屏幕上仅使用一个单独的输入字段来指定客户帐户ID。根据这个ID,大型机的会计人员可以向单个客户收取实际产生的CPU、内存和磁盘/磁带使用费用。
  2. 托管应用程序: 从20世纪90年代开始,传统的应用程序服务提供商(ASP)为了保护用户利益,在托管(当时已经存在的)应用程序。根据应用程序底层的限制,ASP无奈将应用托管在单独的机器上(如果应用程序的多个实例不能在同一台物理机器上执行)或将应用作为单独的进程。
    多租户应用程序代表了更成熟的体系结构,它支持以更低的运营成本提供类似的服务。
  3. Web应用程序: 流行的面向消费者的Web应用程序(如Hotmail),用一个单实例应用服务于全部客户。多租户应用程序代表了该模型的自然演变,为同一客户组织内的用户组提供了额外的定制化。

同虚拟化的区别

在多租户环境中,多个客户共享相同的应用,运行在相同操作系统、相同硬件上、使用相同的存储机制。客户之间的边界是在应用程序设计期间实现的,因此客户不会共享或看到彼此的数据。
与虚拟化进行比较,在虚拟化中,组件进行转换,使每个客户应用程序看起来像是在单独的虚拟机上运行

差异化竞争优势

一些公司积极推广多租户原则,并将其作为竞争差异化的来源。多租户的使用日益增多。

经济学的多租户

节省成本

多租户允许在将IT资源合并到单一操作中实现的基本规模经济之上节省成本。应用实例通常会招致一定数量的内存和处理开销,客户数量多时开销会非常大,特别是当大部分客户很小的时候。多租户通过多客户分摊降低成本。进一步的成本节约可能来自底层软件(如操作系统和数据库管理系统)的许可成本。简单地说,如果您可以在一个单实例上运行所有的功能,那么您只需要购买一个软件许可证。
随着需求的增长,单实例的扩展难度可能会抵消成本节省——在单个服务器上提高实例的性能只能通过购买更快的硬件来实现,比如更快的cpu、更多的内存和更快的磁盘系统。通常,这些成本的增长速度要快于将负载分配到具有大致相同的总容量的多个服务器。此外,多租户系统的开发更加复杂,由于多个客户的数据被混合在一起,安全性测试也更加严格。

数据聚合/数据挖掘

供应商/ISV使用多租户最引人注目的原因之一是其固有的数据聚合优势。所有客户的所有数据都存储在一个数据库模式中,而不必从多个数据源收集数据,这些数据源可能具有不同的数据库模式。因此,跨客户运行查询、挖掘数据和寻找趋势要简单得多。这个原因可能被夸大,因为核心的多租户需求之一是要防止Service Provider访问客户(租户)信息。此外,通常将操作数据库与挖掘数据库分开(通常是因为不同的工作负载特征),从而进一步削弱了论证。

复杂性

由于额外的定制复杂性和维护每个租户元数据的需要,多租户应用需要更大的开发工作。必须考虑基于矢量的数据排序、加密算法基础设施和虚拟化控制接口等因素

发布管理

多租户简化了发布管理过程。在传统的发布管理过程中,包含代码和数据库变更的包被分发到客户端桌面和/或服务器机器上;在单实例的情况下,这将是每个客户一台服务器。然后必须在每台机器上安装这些包。使用多租户模型,包通常只需要安装在单个服务器上。这极大地简化了发布管理过程,并且规模不再依赖于客户的数量。
同时,多租户增加了应用新版本时的风险和固有影响。由于单实例服务于多租户,即使对一个租户有用的更新,也可能会导致所有租户的停机。此外,新版本所导致的一些bug和问题可能会出现在其他租户的应用程序个性化视图中。由于可能的停机时间,应用发布的时间可能会受到限制,这取决于多个租户的时间使用计划。

需求

定制

多租户应用通常需要提供高度定制,以支持每个目标组织的需求。定制通常包括以下几个方面:

  • 品牌: 允许每个组织定制应用的外观和视觉,以匹配他们的企业品牌(通常称为独特的“皮肤”)。
  • 工作流程: 适应不同的工作流程,以供广泛的潜在客户使用。
  • 数据模型的扩展: 支持可扩展的数据模型,使客户能够自定义应用程序管理的数据元素,以满足他们的特定需求。
  • 访问控制: 让每个客户端组织独立定制每个用户的访问权限和限制。

服务质量

多租户应用程序有望在多个租户之间提供足够的安全隔离、健壮性和性能,这是在多实例应用程序的情况下,由应用程序下面的层提供的

虚拟化

为多租户重新设计应用的成本可能非常高,特别是对于那些持续提供其产品的内部单租户版本的软件供应商。他们最终被迫支持两种不同的产品,并为此付出所有的代价。

可行的多租户替代方法是使用虚拟化技术在一个或多个服务器上托管应用程序的多个孤立实例,这种方法消除了对体系结构进行重大更改的需要。实际上,当应用被重新打包为虚拟设备时,相同的设备映像可以部署在ISV托管的、本地部署的或可信的第三方位置,甚至可以随着时间的推移从一个部署站点迁移到另一个部署站点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值