多租户 SaaS 的数据库设计模式,你学废了吗?

前言

在设计多租户 SaaS 应用程序时,您必须仔细选择最适合您应用程序需求的租户模型。租户模型确定每个租户的数据如何映射到存储。您选择的租户模式会影响应用程序设计和管理。以后切换到另一个模型有时代价昂贵。

关于可选择的租户模型的讨论如下。

A,怎么选择一个合适的租户模型

一般来说,租赁模式不会影响应用程序的功能,但它可能会影响整体解决方案的其他方面。以下标准用于评估每个模型:

可扩展性(Scalability)

  • 租户的数量级
  • 每个租户的存储级别
  • 整体存储
  • 工作负载

租户隔离性(Tenant isolation)

  • 数据隔离和性能(是否一个租户的负载会影响到其他租户)

单租户成本(Per-tenant cost)

  • 数据库成本

开发复杂度(Development complexity)

  • 数据结构的变化
  • 查询语句的变化

运维复杂度(Operational complexity)

  • 性能监控
  • 数据结构 schema 管理
  • 租户数据恢复
  • 灾备

可定制化程度(Customizability)

  • 根据租户的需求自定义架构的容易程度

这个租户的讨论集中在数据层。但考虑一下应用层。应用程序层被视为一个整体实体。如果将应用程序划分为许多小型组件,您的租户模型选择可能会发生变化。对于租户和存储技术或使用的平台,您可以对其他组件进行不同的处理

B,独立的单租户应用 + 独立的单租户数据库

应用层隔离

在这个模型中,对于每一个租户,整个应用程序需要重复安装一次。应用程序的每个实例都是独立实例,因此它不会与任何其他独立实例交互。每个应用程序实例只有一个租户,因此只需要一个数据库。租户拥有自己的数据库。

多租户 SaaS 的数据库设计模式,你学废了吗?_第1张图片

每个应用程序实例都安装在独立的 Azure 资源组中。资源组可以属于软件供应商或租户拥有的订阅。无论哪种情况,供应商都可以为租户管理软件。每个应用程序实例都配置为连接到其相应的数据库。

每个租户数据库都作为独立数据库进行部署。该模型提供了最大的数据库隔离。但隔离需要为每个数据库分配足够的资源

你可能感兴趣的:(解决方案,saas,数据库,设计模式,java,sass,系统架构)