控制平面与应用平面
上图提供了核心 SaaS 架构概念的概念视图。现在,让我们深入探讨这个问题,以便更好地解释您的 SaaS 环境如何分解成不同的层。更清楚地了解 SaaS 概念之间的界限将更容易描述 SaaS 解决方案的动态部分。
下图将您的 SaaS 环境划分为两个不同的平面。右侧是控制平面。控制平面包括用于加入、身份验证、管理、操作和分析多租户环境的所有功能和服务。
![描绘控制平面与应用平面的示意图。](images/control-vs-application.png)
控制平面与应用平面
该控制平面是任何多租户 SaaS 模式的基础。每个 SaaS 解决方案(无论采用何种应用程序部署和隔离方案)都必须包括那些让您能够通过单一、统一的体验管理和运营租户的服务。
在控制平面内,我们进一步将其分解为两个不同的元素。此处的核心服务表示的是一系列用于协调您的多租户体验的服务。我们列举了一些通常属于核心服务的常见示例,不过每个 SaaS 解决方案的核心服务可能会有所不同。
您还会注意到,我们展示了一个单独的管理应用程序。这表示的是 SaaS 提供商可能用来管理其多租户环境的应用程序(Web 应用程序、命令行界面或 API)。
必须注意的是,控制平面及其服务实际上并不是多租户的。该功能不可以提供您的 SaaS 应用程序的实际功能属性(必须是多租户的才可以)。例如,如果您深入研究任何一个核心服务,您都找不到租户隔离和属于多租户应用程序功能的其他结构。这些服务面向所有租户。
示意图的左侧展示了 SaaS 环境的应用平面。这是应用程序的多租户功能所在的位置。图中显示的内容要尽量模糊一些,因为每个解决方案都可以根据您的域需求、技术足迹等以不同方式进行部署和分解。
应用程序域分为两个元素。SaaS 应用程序代表您的解决方案的租户体验/应用程序。这是租户用来与 SaaS 应用程序交互的层面。然后这里还有后端服务,其代表的是 SaaS 解决方案的业务逻辑和功能元素。这些可能是微服务,也可能打包了其他应用程序服务。
您还会注意到,我们已经停止了预置。这样做是为了强调这样一个事实:在租户加入期间为租户预置的任何资源都将成为该应用程序域的一部分。有些人可能会争辩说这属于控制层面。但是,我们已将其置于应用程序域中,因为它必须预置和配置的资源会更直接地连接到在应用程序平面中创建和配置的服务。
将其分解为不同的平面有助于我们更轻松地思考 SaaS 架构的整体情况。更重要的是,它突显了对一系列完全不在应用程序功能范围内的服务的需求。