SaaS多租户解决方案

SaaS多租户解决方案

 

一、多租户概述

多租户(multi-tenancy)是一种先进的软件架构模式,旨在通过单个软件实例(如一个网站、一个应用程序或一个服务)高效地为多个用户或租户提供服务。在多租户架构中,不同用户虽然共享同一套软件和硬件资源,但彼此之间的数据是严格隔离的,确保每个用户仅能访问到自己的数据,从而有效提升了数据的安全性和隐私保护。

为实现数据隔离,多租户架构采用了多种技术,包括但不限于数据库分区、数据加密和精细的访问控制机制。这些技术共同确保了不同租户之间的数据互不干扰,为租户提供了一个既高效又安全的运行环境。

二、多租户技术架构

云程平台的多租户架构基于先进的容器技术,实现了数据和应用层面的物理隔离。这种架构方式不仅提高了资源的利用率,还确保了不同租户之间的应用和数据互不干扰。

1、应用服务SaaS化实现:云程平台基于容器化技术实现应用层的多租户SaaS化,通过Docker容器为每个租户创建独立的运行时环境,通过命名空间隔离机制实现租户应用的逻辑边界划分。

2、数据存储SaaS化实现:平台采用”一租户一Schema”的数据库隔离策略,在MySQL、达梦等关系型数据库中为每个租户创建独立的数据schema。当新租户开通时,系统通过数据库自动化管理模块执行以下内容:

第一步:动态创建数据库Schema;

第二步:动态创建数据库访问账号,并控制访问权限,确保账号仅操作当前Schema;

第三步:自动初始化数据表结构和基础数据。

3、租户生命周期联动:当租户申请注销时,系统自动触发资源回收流程:终止Docker容器并释放相关计算资源、归档租户schema数据后执行schema删除。

下图是云程SaaS多租户的架构图。

三、多租户核心组件

云程平台的多租户架构主要包括两个核心部分:容器云环境和多租户管理门户。

1、容器云环境

为了支撑多租户架构,云程平台需要部署一套成熟的容器云环境,如k8s、rancher等开源云平台,或者选择阿里云、华为云等商业云平台。这些平台提供了强大的容器管理和调度能力,为多租户架构的稳定运行提供了坚实的基础。

2、多租户管理门户

云程平台还提供了功能强大的多租户管理门户,用于租户的注册、管理、应用自动开通、自动监控和自动注销等功能。当租户通过注册页面提交开通申请时,系统会自动调用容器云平台的接口,为租户部署一套专用的应用程序和数据库schema,并生成一个专属的应用访问地址。

多租户管理门户直观易用、功能丰富,主要包括租户管理和应用管理两大模块。

在租户管理模块中,管理员可以轻松地进行租户查询、数据维护、审核开通申请等操作,并可以为租户设置状态、应用期限以及查看应用日志等。

在应用管理模块中,管理员可以查看已经开通的应用状态,进行新增、停用、查看日志等操作,并可以为应用设置到期时间和关联租户等。

四、多租户门户功能

功能一:租户注册

多租户门户提供了便捷的租户注册页面,租户只需填写相关信息即可完成开通申请。注册后,系统管理员会在后台收到租户申请,并进行审核。审核期间,租户无法重复提交申请。一旦审核通过,系统会以短信形式通知租户审核结果,并附带开通应用的地址、账号密码等关键信息。

功能二:租户首页

租户注册完成后,即可登录多租户管理门户,进入租户首页。在首页中,租户可以查看自己的应用列表和应用信息,了解应用的运行状态和到期时间等关键信息。同时,租户还可以通过首页快速访问和管理自己的应用。

功能三:租户管理

多租户门户提供了功能全面的租户管理模块,管理员可以通过该模块轻松地进行租户查询、数据维护、审核开通申请等操作。此外,管理员还可以为租户设置状态、应用期限以及查看应用日志等,从而实现对租户的全面管理和监控。

功能四:应用管理

在应用管理模块中,管理员可以查看已经开通的应用列表及其状态信息。通过该模块,管理员可以轻松地进行新增应用、停用应用、查看日志等操作。同时,管理员还可以为应用设置到期时间、关联租户等关键信息,从而确保应用的稳定运行和合规性。