跳转到主要内容
Chinese, Simplified

架构良好的框架确定了一组通用设计原则,以促进SaaS应用程序在云中的良好设计:

没有一刀切的SaaS架构

没有一刀切的SaaS架构:SaaS业务的需求、其领域的性质、法规遵从性要求、市场细分、解决方案的性质——所有这些因素都对SaaS环境的架构有着明显的影响。每一个SaaS架构都应该围绕着一个运营和客户体验,以实现敏捷性和软件即服务原则,这是SaaS产品成功的核心。无论系统是如何构建的,该系统都应使租户能够通过一块玻璃进行入职、管理和操作,从而使SaaS组织实现敏捷性和规模经济,这是构建SaaS业务的基础。

根据每个服务的多租户负载和隔离配置文件分解每个服务

根据每个服务的多租户负载和隔离配置文件分解每个服务:如果您要将系统分解为服务,则分解策略应考虑多租户负载、租户层和隔离需求将如何影响作为系统一部分的服务。在这些场景中,需要单独考虑每个服务。例如,某些服务可能能够汇集数据,而另一些服务可能需要基于合规性或噪声邻居的考虑来隔离它们管理的数据。您可能还会发现,一些服务将部署在思洛存储器模型中,以启用分层策略。例如,高级租户可能会在竖井模型中提供一些服务,作为高级层价值故事的一部分。

隔离所有租户资源

隔离所有租户资源:SaaS系统的成功很大程度上依赖于一种安全模型,该模型确保租户资源始终受到保护,不受任何跨租户访问的影响。一个健壮的SaaS体系结构将在体系结构的所有层引入隔离策略,提供特定的构造,以确保访问租户资源的任何尝试对于当前租户上下文都是有效的。

为增长而设计

为增长而设计:向SaaS模式的转变通常与SaaS组织的增长有关。当您定义SaaS产品的架构和运营足迹时,您必须不断思考您的环境如何能够支持不断增长的新租户。SaaS架构师必须构建一个高度灵活、无摩擦的环境,在不增加大量运营开销的情况下适应租户入职高峰。这里的想法是允许您的客户群增长,而不会扩大SaaS环境的运营或基础架构足迹。

仪器化、捕获和分析租户指标

仪器化、捕获和分析租户指标:当您将多个租户放入一个环境(尤其是共享环境)时,要清楚地了解租户如何使用您的系统可能会很困难。SaaS团队需要投资于度量工具,这些度量工具可以深入了解租户正在使用的功能、他们给您的系统带来的负载、他们面临的瓶颈、他们的活动成本状况等。这些数据是分析租户趋势的核心,这些趋势直接影响业务、架构、,以及SaaS公司的运营状况,并告知其战略。

通过单一的、自动化的、可重复的流程实现租户

通过单一的、自动化的、可重复的流程实现租户:SaaS就是敏捷性。这个敏捷故事的一个关键部分是租户入职流程。一个强大的SaaS系统将包括一个无摩擦、可重复的流程,用于将新租户加入您的系统。这促进了规模,是实现增长的核心。它还可以确保新客户能够更快地实现价值。

计划支持多租户体验:

计划支持多租户体验:SaaS市场和客户并不都适合一个单一的配置文件。SaaS公司通常需要支持一系列租户配置文件,这些文件可以对您的架构和运营提出不同的要求。作为SaaS提供商和架构师,有必要对这些租户角色进行建模,并构建一个单一环境,该环境包括跨越一系列租户体验所需的结构和机制,而不需要一次性版本的产品。确定系统的价值边界非常重要,以使企业能够创建能够覆盖多个细分市场的产品层,并通过这些层促进客户的进步。

通过全球定制支持一次性需求:

通过全球定制支持一次性需求:通过拥有一个由所有客户运行的单一环境来实现SaaS的灵活性和创新。能够共同更新、管理和运营所有客户是SaaS的基础。然而,现实情况是,一些客户可能会要求定制。这些定制应该作为任何客户都可以使用的配置选项引入。将这些功能保持在产品的核心,使SaaS公司能够支持一次性需求,而不会损害业务的灵活性、运营效率和创新目标。

将用户身份绑定到租户身份:

将用户身份绑定到租户身份:架构的每一层都可能需要租户上下文的概念,以便能够记录数据、记录度量、访问数据等。这意味着租户上下文需要成为一个一流的构造,可以在不调用另一个服务的情况下由应用程序的层解析和轻松访问。解决方案的身份验证和授权经验应将租户身份(以及可能的其他租户属性)绑定到已验证用户的身份。这将产生一个通过系统所有层传递的SaaS身份,从而实现对租户上下文的轻松访问。

使基础设施消费与租户活动保持一致:

使基础设施消费与租户活动保持一致:SaaS环境中租户的活动通常是不可预测的。租户正在使用哪些资源,他们如何使用这些资源,以及何时使用这些资源可能会有很大差异。系统中的租户数量也会定期变化。尽管这些因素可能带来扩展挑战,但稳健的SaaS架构将采用限制过度供应的策略,并使应用程序的基础设施消耗与租户活动的实时趋势保持一致。这促进了租户工作负载与整个SaaS基础架构的成本状况之间的更紧密的协调。

限制开发人员对多租户概念的了解:

限制开发人员对多租户概念的了解:虽然租户将在架构的各个层中流动,但您的目标应该是限制开发人员接触租户的程度。根据经验,开发人员编写多租户服务的经验不应与编写没有租户概念的服务有任何不同。如果开发人员需要在其代码中引入租户,这将使管理和强制遵守应用程序的多租户策略和机制变得困难。这意味着向开发人员提供隐藏租赁细节的库和可重用构造。

SaaS是一种业务战略,而不是技术实现:

SaaS是一种业务战略,而不是技术实现:SaaS环境及其底层技术选择直接取决于业务的灵活性、创新和竞争需求。这里的重点和思维集中在为客户创造服务体验上,该服务体验注重零停机、定期更新和与客户的紧密联系。这意味着设计一个架构和运营足迹,以促进持续发展和快速响应市场需求。一个无法实现敏捷性、创新性和运营效率的技术上可靠的架构不太可能跟上市场的竞争格局,尤其是如果您与其他SaaS提供商竞争的话。

创建租户感知的运营视图:

创建租户感知的运营视图:在多租户环境中,运营团队面临一系列新的挑战。尽管在SaaS环境中,对系统的运行状况和活动进行全局查看仍然很重要,但稳健的SaaS运营足迹还将包括对特定租户或租户层如何运行系统的深入了解。SaaS运营团队应构建仪表板和视图,使其能够分析和描述单个租户的活动和负载。能够通过单个租户的视角查看和排除使用情况,对于构建主动、高效的多租户运营体验至关重要。

衡量单个租户的成本影响:

衡量单个租户的成本影响:SaaS公司的业务、架构师和运营团队通常需要清楚了解租户如何影响SaaS环境的成本足迹。例如,基本层租户的成本是否高于高级层租户?租户的消费模式或功能是否会改变您环境的成本状况?这些问题最好通过清晰了解租户成本概况来回答。在租户资源由多个租户共享的环境中,这一点尤其重要。收集和呈现这些数据通常为SaaS业务提供有价值的见解,这些见解可以塑造SaaS公司的架构和业务模型。

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

微信

知识星球

微信公众号

视频号