跳转到主要内容
Chinese, Simplified

AWS良好架构框架基于六大支柱:卓越运营、安全性、可靠性、性能效率、成本优化和可持续性。SaaS为这些支柱中的每一个增加了新的考虑因素。SaaS应用程序的多租户性质要求架构师重新考虑如何解决其SaaS环境的安全性、运营效率、稳定性和灵活性。在本节中,我们将概述本文档中使用的SaaS概念。在构建SaaS架构时,您应该考虑10个方面。

话题

  • 租户
  • 筒仓、水池和桥梁模型
  • SaaS身份
  • 租户隔离
  • 数据分区
  • 吵闹的邻居
  • 租户入职
  • 租户层级
  • 租户活动和消费
  • 租户感知操作

租户

租户是SaaS环境的最基本结构。作为构建应用程序的SaaS提供商,您正在向客户提供此应用程序。注册使用环境的客户表示为系统的租户。例如,假设您的组织创建了一个会计服务,您希望其他公司可以使用您的服务来管理其业务。这些公司中的每一家都将被视为系统的租户。

注册后,租户通常会为租户管理员提供用户信息。然后,租户管理员可以登录到系统,并根据其业务需求进行配置。这包括能够将用户添加到给定的租户环境。

该模型中提供的软件被称为多租户SaaS系统,因为服务的每个租户都使用一个单一的共享系统,该系统通过统一的体验支持这些租户的需求。例如,系统的更新通常应用于该系统的所有租户。

筒仓、水池和桥梁模型

SaaS应用程序可以使用各种不同的架构模型构建。监管、竞争、战略、成本效率和市场考虑因素都会对SaaS架构的形状产生一定影响。同时,在定义SaaS应用程序的足迹时,会应用一些策略和模式。这些模式分为三类:筒仓、桥梁和水池。

筒仓模型

筒仓模型是指为租户提供专用资源的体系结构。例如,设想一个SaaS环境,系统的每个租户都有一个完全独立的基础架构堆栈。或者,也许系统的每个租户都有一个单独的数据库。当租户的部分或全部资源以这种专用方式部署时,我们将其称为筒仓模型。需要注意的是,即使筒仓拥有专用资源,筒仓环境仍然依赖于共享身份、入职和运营经验,所有租户都通过共享结构进行管理和部署。这将SaaS与托管服务模式区分开来,在托管服务模式中,客户可能运行不同版本的产品,并具有不同的入职、管理和运营经验。

水池

相比之下,SaaS的池模型是指租户共享资源的场景。这是更经典的多租户概念,租户依靠共享的、可扩展的基础设施来实现规模经济、可管理性、灵活性等。这些共享资源可以应用于SaaS架构的一些或所有元素,包括计算、存储、消息传递等。

桥梁模型

最后的模式是桥梁模型。Bridge旨在承认SaaS业务并不总是完全孤立或集中的现实。相反,许多系统具有混合模式,其中一些系统在筒仓模型中实现,一些系统在池模型中实现。例如,您的体系结构中的一些微服务可能使用思洛存储器实现,而其他微服务可能会使用池。服务数据的监管配置文件及其噪声邻居属性可能会将微服务导向筒仓模型。同时,另一个微服务的灵活性、访问模式和成本概况可能会使其倾向于池模型。

SaaS身份

大多数系统已经依赖身份提供者进行身份验证。在SaaS的世界中,我们需要扩展身份的概念,将租赁纳入我们的身份定义中。这意味着,在验证用户之后,我们需要知道用户是谁以及该用户与哪个租户关联。用户身份与租户身份的合并被称为SaaS身份。这个概念是SaaS架构的一个基本元素,它提供了租户上下文,用于实现SaaS应用程序中的底层多租户策略和策略。

租户隔离

租户隔离是每个SaaS提供商必须解决的基本问题之一。随着独立软件供应商(ISV)转向SaaS并采用共享基础架构模型以实现成本和运营效率,他们还必须承担确定其多租户环境如何确保每个租户无法访问另一个租户的资源的挑战。对于SaaS业务来说,以任何形式跨越这一边界都将是一个重大且可能无法恢复的事件。

尽管租户隔离的需求被视为SaaS提供商的基本需求,但实现这种隔离的策略和方法并不普遍。有很多因素可以影响租户隔离在任何SaaS环境中的实现方式。域、遵从性、部署模型和AWS服务的选择都为租户隔离带来了自己独特的考虑因素。

无论隔离是如何实现的,每个SaaS架构都需要确保其已将确保每个租户的资源已有效隔离所需的构造放置到位。

数据分区

 

当您查看表示多租户数据的不同体系结构模式时,必须选择如何组织数据。例如,数据是存储在单独的数据库中,还是混合在一个共享结构中?这些多租户存储机制和模式通常称为数据分区。

吵闹的邻居

 

噪声邻居是一个常用于一般架构模式和策略的术语。噪声邻居背后的想法是,系统的用户可能会对系统的资源施加负载,这可能会对该系统的其他用户产生不利影响。最终结果可能是一个用户会降低另一个用户的体验。

这一概念在多租户环境中扩展了相关性,租户可能正在使用共享资源。更为复杂的是,多租户环境中的工作负载可能是不可预测的。这种组合提高了SaaS架构使用自己的策略的需求,这些策略可以管理和最小化嘈杂租户的潜在影响。

租户入职

 

SaaS应用程序依赖于一个无摩擦的模型来将新租户引入其环境。这通常需要协调多个组件,以成功地调配和配置创建新租户所需的所有元素。在SaaS架构中,这个过程被称为租户入职。需要注意的是,租户登录可以由租户直接启动,也可以作为提供商管理流程的一部分。

租户层级

SaaS应用程序通常被设计为支持一系列细分市场,为一系列客户提供单独的定价和体验。这些配置文件通常称为层。支持这些不同层的不同需求意味着引入可以塑造每个层体验的体系结构。这些分层模型可以影响SaaS解决方案的成本、运营、管理和可靠性足迹。

租户活动和消费

在多租户SaaS环境中,了解租户如何使用您的应用程序并对系统架构施加负载非常重要。通过在租户级别跟踪这些信息,您可以评估系统有效扩展和支持环境中不断变化的工作负载的能力。从SaaS系统收集的度量和见解通常被称为租户活动和消费。

计量和计费

SaaS产品通常以现收现付模式销售,其中产品的成本是根据客户的消费情况确定的。该模型允许客户拥有一个定价模型,该模型与他们在SaaS系统上的价值和负载更加紧密地耦合。在这种模式下,SaaS提供商将定义并引入计量机制来衡量消费。该计量数据通常被发送到计费系统,该计费系统汇总计费信息并生成账单。基于消费的定价代表了一种定价模型,可以与其他定价策略(例如订阅)相结合。

租户感知操作

SaaS环境的运营经验引入了对附加机制和工具的需求,这些机制和工具可用于创建租户感知洞察,了解各个租户和层的活动和消费模式。这里的想法是,SaaS提供商需要能够通过单个租户和租户层的视角来查看系统活动和健康状况。这对于诊断和评估个体租户的活动和消费趋势和模式至关重要。

原文地址
https://docs.aws.amazon.com/wellarchitected/latest/saas-lens/definitions.html
本文地址
Article

微信

知识星球

微信公众号

视频号