基于 SaaS 模式的多系统租户管理方法

发表时间:2021/9/6   来源:《科学与技术》2021年第4月第11期(中)   作者: 张虎涛,高飞明,韦锦涛
[导读] 云计算是通过互联网以服务的形式为客户提供企业级计算资源的技术,软件即
       张虎涛,高飞明,韦锦涛
       中国电建集团华东勘测设计研究院有限公司   浙江杭州   311122
       摘 要:云计算是通过互联网以服务的形式为客户提供企业级计算资源的技术,软件即服务 (SaaS)是云计算中最常用的服务。SaaS服务大多使用多租户模式来托管应用。多租户是一种软件架构技术,即软件应用程序的单实例服务多个租户。本文对比了三种多租户方案,总结了三种多租户方案的优缺点,提出了基于共享数据库和共享数据架的多租户系统实现与管理方法。
       关键词:SaaS;多租户;云计算;数据存储;   
Multi-system tenant management method based on SaaS model
    ZHANG Hu-tao, GAO Fei-ming, WEI Jin-tao   
Abstract:Cloud computing is a technology that provides customers with enterprise-level computing resources in the form of services through the Internet. Software as a service (SaaS) is the most commonly used service in cloud computing. SaaS services mostly use a multi-tenant model to host applications. Multi-tenancy is a software architecture technology in which a single instance of a software application serves multiple tenants. This article compares three multi-tenant solutions, summarizes the advantages and disadvantages of the three multi-tenant solutions, and proposes a multi-tenant system implementation and management method based on shared databases and shared data racks.
Keywords: SaaS; multi-tenant; cloud computing;data storage
一、引言
       云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务[1]。
       目前云计算中最常用的服务是软件即服务(SaaS),SaaS是软件的一种新型的云计算服务交付模式,可通过互联网以“按需服务”的形式为多个用户提供应用程序。SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责前期的实施、后期的维护等一系列的服务,企业无需购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息系统。
       SaaS应用程序最重要的需求是多租户的支持,为了最大化SaaS的规模效应,一般采用的都是多个租户共享一个运行实例的架构(Multi-Tenant架构,即多租户架构)。
       多租户是SaaS业务模型领域一种较新的软件架构,在此架构模式中,允许多个租户共享硬件资源以及应用程序和数据库,并可根据租户需求配置应用程序[2]。可配置性是多租户模式的重要特征。在多租户应用中,所有的租户都使用同一个数据库实例,必须确保每个租户只能访问它们各自的数据,因此数据隔离成为多租户应用中最为关键的问题[3]。
二、多租户数据存储方案
        多租户架构是实现SaaS规模效应的基本要素。多租户就是多个租户共用一个实例,租户的数据既有隔离又有共享,因此多租户设计的关键是如何解决数据存储问题。
       目前多租户数据存储方案主要有三种[4]:(1)独立数据库(2)共享数据库和隔离数据架构(3)共享数据库和共享数据架构。
2.1独立数据库
       独立数据库是指一个租户一个数据库,如图2-1所示,这是进行数据存储最简单的方案。一个租户一个数据库数据隔离级别最高,安全性最好,同时成本也最高。

  
2.2共享数据库和隔离数据架构
       共享数据库和隔离数据架构是指多个或所有租户共享数据库,但一个租户一个数据架构,如图2-2所示。该方案为安全性要求较高的租户提供了一定程度的逻辑数据隔离,但是如果出现问题恢复数据比较困难。

 
2.3共享数据库和共享数据架构
       共享数据库和共享数据架构是指租户共享同一个数据库,同一个数据架构,但在表中通过租户ID区分租户的数据,如图2-3所示。这是共享程度最高、隔离级别最低的模式。该方案成本最低、支持的租户数量最多,但是隔离级别最低,安全性最差。

        在系统设计时可以从数据隔离、数据共享、安全性、成本、开发能力等因素去考虑。系统服务的租户数量、属性和需求也是确定不同方式数据架构重要的因素,租户越多越要多考虑共享方法。
三、多租户系统设计与实现
       共享数据库和共享数据架构方案以其低成本和支持租户数量最多的优点被大量应用于现有的多租户系统中。基于共享数据库和共享数据架构方案实现的多租户系统应用之间的数据既有隔离又有共享,应用间既要共享租户的基础数据,又要隔离各应用的业务数据,因此基于该方案实现多租户系统的设计核心是数据库表设计。
       3.1多租户系统数据库表设计
       单应用系统业务表之间通过中间表关联。如图3-1所示,组织机构表通过组织机构用户中间表与用户表关联,岗位表通过用户岗位中间表进行关联。单应用系统业务数据不需要考虑隔离问题,各业务表只需满足业务联系即可,因此表结构设计较为简单。

    多租户系统较单应用系统多了租户的概念,并且租户与应用相关联,因此多租户系统较单应用系统数据库表多了应用表和租户表。如图3-2所示,业务表之间通过中间表进行关联,应用表与租户表直接关联,各业务表都与租户表进行关联,各业务表中增加租户ID字段来隔离业务数据。


       如图3-3、图3-4所示,多租户系统组织机构表中增加了tenant_id字段,组织机构表与租户表通过组织机构租户中间表进行关联。租户下应用间的组织机构数据通过 tenant_id字段隔离。


    如图3-5所示,多租户系统登录时根据前端settings文件中配置的应用公钥(client_id)和应用私钥(client_secret)来生成签名,登录时后端获取到签名,从签名中解析出应用公钥与私钥,根据应用与租户的关联关系确定平台租户,成功登录的系统拥有租户的基础数据并根据租户ID加载对应系统的业务数据。
       3.3多租户可视化管理
       单应用系统大多开发单独的应用配置模块来实现应用的可视化管理。多租户系统较单应用系统多了租户的概念,基于共享数据库和共享数据架构方案实现的多租户系统可支持大量的租户,并且应用与租户相关联。
       为了方便系统对租户和应用的标准化管理,根据租户与应用的所属关系,在系统中开发单独的租户配置可视化模块,实现对系统租户、应用的可视化管理。如图3-6所示。


四、总结与展望
    多租户是一种软件架构技术。通过多租户实现的SaaS系统易操作、易部署,降低了企业开发成本,并且具有易维护、定制化等特点。提高了企业项目开发中的开发效率,降低了开发难度,增加了产品灵活性。通过多租户可视化管理模块可以统一管理系统租户以及租户下应用,配合数据库表租户ID字段隔离业务数据,可快速实现标准化多租户系统。










                                           参考文献
[1]    许子明,田杨锋.云计算的发展历史及其应用[J].信息记录材料,2018,19(8):66-67.
[2]    Bezemer C.,Zaidman A.Multi-tenant SaaS applications:maintenance dream or nightmare?[C].Proceedings of the Joint ERCIM Workshop on Software Evolution(EVOL)and
International Workshop on Principles of Software Evolution(IWPSE):88-92.
[3]    殷伟凤.SaaS多租户数据管理及实现策略[J].软件工程,2016,19(01):44-47.
[4]     Chang Jie Guo,Wei Sun,Ying Huang,Zhi Hu Wang,Bo Gao.A framework for native multi-tenancy application development and management[C].In Proc. Int.Conf.on E-Commerce
Technology(CEC)&Int.Conf.on Enterprise Computing,E-Commerce,and E-Services(EEE):551-558.

--------------------------------------
作者简介:张虎涛(1995- ),男,河南洛阳,中国电建集团华东勘测设计研究院有限公司,本科,研究方向:企业信息化。
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: