推理、部署与算力3170 字

大厂多租户系统架构设计

·全库 421 / 611

《大厂多租户系统架构设计》共 0.3 万字,通篇围绕 架构、部署、需求、成本 展开,归在「推理、部署与算力」这一层。

覆盖架构部署需求成本场景监控

适合要把模型跑起来,还得跑得起的人

目录骨架(8 节)
  1. 什么是多租户?
  2. 传统软件模式 VS SaaS 模式
  3. SaaS 多租户隔离模式
  4. 分域隔离模式
  5. 多租户系统的定位
  6. 多租户概念模型
  7. 多租户核心场景
  8. 多租户系统应用架构

什么是多租户?

多租户是 SaaS 领域的特有产物,在 SaaS 服务中,租户是指使用 SaaS 系统的客户,租户不同于用户,例如,B 端 SaaS 产品,用户可能是某个组织下的员工,但整个企业组织是 SaaS 系统的租户。多租户技术是一种软件架构技术,可以实现多个租户共享系统实例,并且租户间能够实现数据与行为的隔离。

传统软件模式 VS SaaS 模式

传统软件项目一般是指,面向客户开发一套特定的软件系统,并部署在独立的环境中,通常是企业内部环境。而 SaaS 模式,是将软件服务部署到云端环境,可以面向不同的客户提供相同的软件服务。

SaaS 多租户隔离模式

对于 SaaS 模式,多租户间的资源隔离是非常基础的能力,出于成本和运营效率考虑,SaaS 服务商需要构建多租户可同时访问软件的环境,不同租户虽然访问同一套 SaaS 产品服务,但资源访问需要严格隔离开。

SaaS 资源隔离包含几个层次:

  • 第一层是 SaaS 系统底层所涉及到的计算、存储、网络等资源的隔离。
  • 第二层是系统基础数据的隔离,主要包括组织,用户,角色,权限,产品能力授权关系等。
  • 第三层是系统使用过程中,各类业务动态数据的隔离,例如业务单据、操作记录等。

多租户架构主要是解决第一层的隔离问题,即计算、存储、网络等资源的隔离。为了实现多租户隔离架构,我们先要搞清楚常见的几种多租户隔离模式。

竖井隔离模式

有些 SaaS 服务商会选择竖井隔离模式,即每个租户都运行在隔离的一套资源中。有人会说,这不就是传统软件模式吗,为什么会是 SaaS 模式呢?但如果这些竖井式的资源,拥有标准化的租户身份识别、入驻流程、计费体系、部署流程、运营流程,那边它依然是 SaaS 模式,只不过每个客户都有一套端到端的基础设施。

优势
  • 满足强隔离需求:一些客户为了系统和数据的安全性,可能提出非常严格的隔离需求,期望软件产品能够部署在一套完全独立的环境中,不和其他租户的应用实例、数据放在一起。
  • 计费逻辑简单:SaaS 服务商需要针对租户使用资源进行计费,对于复杂的业务场景,计算、存储、网络资源间的关系同样也会非常复杂,计费模型是很有挑战的,但在竖井模式下,计费模型相对来说是比较简单的。
  • 降低故障影响面:因为每个客户的系统都部署在自己的环境中,如果其中一个环境出现故障,并不会影响其他客户使用软件服务。
劣势
  • 规模化问题:由于租户的 SaaS 环境是独立的,所以每入驻一个租户,就需要创建和运营一套 SaaS 环境,如果只是少量的租户,还可能可以管理,但如果是成千上万的租户,管理和运营这些环境将会是非常大的挑战。
  • 成本问题:每个租户都有独立的环境,花费在单个客户上的成本将非常高,会大幅削弱 SaaS 软件服务的盈利能力。
  • 敏捷迭代问题:SaaS 模式的一个优势是能够快速响应市场需求,迭代产品功能。但竖井隔离策略会阻碍这种敏捷迭代能力,因为更新、管理、支撑这些租户的 SaaS 环境,会变得非常复杂和低效。
  • 系统管理与监控:在同一套环境中,对部署的基础设施进行管理与监控,是较为简单的。但每个租户都有独立的环境,在这种非中心化的模式下,对每个租户的基础设施进行管理与监控,同样也是非常复杂、困难的。

共享模式

相信很多 SaaS 服务商会优先选择共享模式,即多租户共享一套基础设施资源,这样能让 SaaS 软件服务更加高效、敏捷、低成本。

优势
  • 高效管理:在共享策略下,能够集中化地管理、运营所有租户,管理效率非常高。同时,对基础设施配置管理、监控,也将更加容易。相比竖井策略,产品的迭代更新会更快。
  • 成本低:SaaS 服务商的成本结构中,很大一块是基础设施的成本。在共享模型下,服务商可以根据租户们的实际资源负载情况,动态伸缩系统,这样基础设施的利用率将非常高。
劣势
  • 租户相互影响:由于所有租户共享一套资源,当其中一个租户大量占用机器资源,其他租户的使用体验很可能受到影响,在这种场景下,需要在技术架构上设计一些限制措施(限流、降级、服务器隔离等),让影响面可控。
  • 租户计费困难:在竖井模型下,非常容易统计租户的资源消耗。然而,在共享模型下,由于所有租户共享一套资源,需要投入更多的精力统计单个租户的合理费用。

分域隔离模式

传统大企业更喜欢私有化部署、个性化交付的传统模式,因为他们需要更强的管控和更高的安全性。然而,中小企业付费能力有限,需求往往也更加标准化,所以更喜欢价格更低的、订购更简单的 SaaS 产品。为了满足不同客户的需求,还有一种混合了竖井模型与共享模型的模式,即分域隔离模式。

在该模式下,会细分基础域、专用域,基础域是使用共享模型,所有租户共享一套资源;而专用域是使用竖井模型,每个租户都有独立的资源环境。

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求