DBaaS自助门户服务平台构建研究

2017-06-20 00:25龙斌连云凯
软件导刊 2017年4期
关键词:隔离

龙斌+连云凯

摘要:云数据库是云计算环境下的数据库新技术。DBaaS自助门户服务平台是以自助服务和便捷管理为导向,可以对环境中的资源进行调配,是一个灵活、可扩展、按需服务的云数据库服务平台。基于当前云数据库,分析了DBaaS(DataBase as a Server)的应用优势,针对DBaaS自助门户服务进行设计与分析,设计DBaaS自助门户系统。

关键词:数据库即服务;自助门户;多租户;隔离

中图分类号:TP319

文献标识码:A

文章编号:16727800(2017)004012103

0引言

近年来,国家对信息化工作尤为重视,信息技术正成为各行业创新的驱动力。在企事业单位的信息化建设中,数据库搭建具有重要地位,是信息化建设的支撑与保障。随着业务的不断拓展和各类应用的深入,企业信息化建设面临着以下问题:一是为了满足不断增长的业务需求,需要不断更新硬件设施、增购数据库软件的用户数授权;二是面临长期的系统运行维护问题,需要专业的运维人员以及经过严格培训的数据库管理员,成本居高不下;三是传统数据库不能升级时,会导致数据库的暂停服务。随着数据量的增加和服务请求的增长,传统数据库由于可扩展性差,在遇到海量数据时往往读写性能变低甚至在性能上会有明显下降,无法满足高并发读写的服务请求[1]。传统关系型数据库不仅存在开发运维成本过高的问题,而且性能得不到保证。 云计算对传统数据库提出了新的要求:具有高可扩展性、高可用性、低成本、大规模数据处理的特点。如何在保证高可用性、高可扩展性、高性能、多租户隔离、免维护等特性的前提下对外提供服务,是研究的重点。 本文基于SQL Server2012关系型数据库设计DBaaS自助门户服务平台,将SQL Server2012数据库高可用集群封装成云服务的形式,并通过Web方式向外发布,解决租户即时获取数据库服务的需求。

1DBaaS(DataBase as a Server)发展趋势与应用优势

随着互联网和云计算技术、新型软件服务模式的发展,软件即服务(SaaS,Software as a Service)作为一种新型的软件服务模式日益受到业界的关注。云数据库是在SaaS模式下发展起来的一种云计算技术,通常是指运行在云计算平台上的数据库系统,它承载着用户重要关系型数据落地、数据分拆、无缝扩容等重要功能[2]。DBaaS(Database as a Service)即可交付的云数据库服务,在传统数据库技术的基础上,通过云计算技术将数据库资源已服务的标准封装起来,可以提供给一个或多个租户使用[3]。 目前,传统的国外数据库厂商,如Oracle、IBM、Microsoft等都已经推出了基于云计算环境的相关数据库产品,原来没有从事数据库产品开发的知名公司,比如 Amazon 和 Google 等,也发布了 SimpleDB 和BigTable等产品。云数据库的研究工作在国内尚处于起步阶段,阿里云、腾讯云、京东云等相继推出了自己的云数据库平台,各厂家平台实现方式各不相同,其软硬件架构离DBaaS的标准也还有一定距离。DBaaS的主要优势如下: 对运营商而言,DBaaS提供数据库服务的自助管理服务平台,通过它用户可以即时获取数据库服务。用户只需要通过平台提供的Web服务或数据库连接字符串就能完成访问。但不能直接控制运行原始数据库的主机,这就增强了数据库的管理及运维能力,同时消除了用户、硬件和软件的重复配置,并且虚拟化了许多后端的功能,对于用户而言,升级软硬件的工作更容易和简单[4]。 相对于租户而言,它是一个灵活可靠、可扩性强、安全性高、可用性高和按需服务的平台,租户可以自助服务和便捷管理为导向,完成环境中的资源动态调配。采用DBaaS模式与传统企业内置部署软件方式相比,DBaaS意味着更少的启动资金、更灵活的战略部署。对于大多数企业尤其是中小型企业来说,系统内部部署数据库的成本较高,不利于企业统筹规划发展,而DBaaS解决方案不仅可以降低首次投资的成本,且其高可扩展的灵活性对于有很大的吸引力,而这些中小型企业就是DBaaS解决方案的重要客户群体。另外,DBaaS不仅在成本上解决了初期投入高的问题,而且云数据库服务消除了用户对本地存储设备的需求,同时用户不必安装特有的软件,也不必投入时间和人力去管理和维护任何软硬件[5,6]。

2DBaaS自助门户服务设计及实现

国内阿里云、腾讯云等平台近几年已对外提供云数据库服务,目前比较成熟的主要是基于MySQL数据库的云服务,对于SQL Server数据库服务还处于初步阶段。由于SQL Server的诸多优良特性,在国内使用的企事业单位很多,但正版SQL Server高昂的价格也使得不少企事业单位无法承受,同时也造成了盗版的泛滥。另外,当SQL Server数据库的配置在性能上遇到瓶颈时,用户不得不去耗费大量资源去扩展。基于以上研究基础,本文提出一个基于 SQL Server2012数据库的“DBaaS自助门户服务平台”体系结构,如图1所示。平台对外屏蔽底层数据库,通过WEB API提供SQL Server数据库服务的数据、元数据统一访问接口,所有使用数据的方式都统一到一致的、受管控的界面上,便于平台对数据库资源的消耗进行统计和计量,以及对资源使用的进行调度和综合管控。

2.1DBaaS自助门户服务平台体系结构

从结构上整个系统分为3层:应用接口层、服务应用管理层、服务实体层。(1)应用接口层。 应用接口层主要为用户提供各种使用平台的接入方式,用户访问接口主要分为3种类型:①自助Web网页服务,合法租户可以通过自助门户提供的Web 网页使用订购的云数据库服务;②Web API访问接口,向租户提供Web API服务;③数据库的直连方式,租户可通过数据库连接串和数据库实例名用sql server management studio直接操作数据库。〖HJ*3〗(2)服務应用管理层。 服务应用管理层不仅提供给用户可视化Web界面操作,而且还需要完成数据库服务的调度请求。当租户购买数据库服务时,服务应用管理层通过处理用户信息(订单、合同、实例等)为用户调度分配数据库服务。当租户请求访问数据库服务时,〖HJ〗云数据库服务调用端会根据租户所拥有的数据库服务信息,为用户调用相应的数据库实例。另外系统通过调用Web API的方式向服务代理发送服务调研请求,对数据库服务实体进行管理和维护。

(3)服务实体层。服务实体层包含所有数据库服务实体。每个数据库服务实体都有一个代理账户,通过代理账户为用户接入和配置数据库服务。

2.2平台功能设计

平台用户主要分为两种角色:管理员和租户。 (1)管理员功能如下:①角色管理。可对系统角色进行管理和维护,用来实现整个系统所有用户的访问控制;②菜单管理。可将相应的菜单授权给相应的角色。另外,当系统操作页面有重大改变或有新的服务操作功能添加进系统时,只需要通过管理员修改菜单上定向地址或添加一个新菜单再授权给角色,就可以轻松实现系统升级和变更;③角色授权管理。每一种角色对应一套系统菜单,角色根据菜单导航进行操作,管理员在角色授权管理中为角色授予的菜单权限;④用户管理。系统管理员通过用户管理,可对所有平台的用户进行管理;⑤服务类型管理。通过服务类型管理可设置平台提供的服务云数据库服务类型(如:Sql Server、Oracle、My Sql等);⑥服务实例管理。通过实例管理监督和维护后台数据库节点的状态和信息;⑦订单管理。用户的每一笔交易都从订单开始,通过订单管理可查看租户订购的服务详情,并对不同类型不同状态的订单进行区分和有效管理;⑧合同管理。合同管理是平台中用于处理用户合同信息合法性验证、合同签订、启用合同以及管理员合同管理的主要模块。用户完成订单支付之后,系统会为用户生成一个合同凭证,合同中包括租户名、资源大小、数据库类型、服务性能指标、合同开始截止日期等服务质量条款以及费用等合同条款信息,用户签订合同付费后才可使用申请的资源。使用期满后,合同将处于失效状态,用户也就无法再继续使用对应的云数据库服务。 以上8个业务管理模块作为系统管理员维护管理和运作整个“DBaaS自助门户服务系统”操作中心,它们环环相扣、相互联系,共同支撑着整个系统的流程运转正常工作。 (2)租户的主要功能如下:①注册登录功能。提供匿名租户注册、租户登录和身份验证等功能;②申请购买服务功能。租户可通过定购页面申请云数据库服务,并填写要求的服务配置(包括磁盘、CPU、内存、租期等),租户选择好服务后,平台要能检查当前是否有足够的数据库服务实例供用户订购及使用;③服务安全性设置。安全性主要是指服务访问的安全性,平台提供一些安全选项供租户定制,如:访问的IP地址范围、端口号等,租户如设置了IP地址范围,用户可以从外网通过直连的方式访问其订购的数据库服务;④服务访问和使用。当用户订购了数据库服务并分配了相应的数据库实例,用户可以通过应用接口层的3种访问接口使用该实例。

2.3平台关键技术设计及实现

2.3.1多租户机制设计 多租户机制是DBaaS自助门户平台的核心,平台所有租户都共享相同的基础架构,每个租户都可以访问和使用独享的服务,设计一套安全而有效率的多租户机制很有必要。 在以往的多租户机制设计中,数据层面上可从完全隔离到完全共享,其设计模式遵循3种模型:完全隔离(独立数据库)、半共享(独立表/Schema模式)、完全共享(独立表/Schema模式)。以上3种模式有各自的长处和短处以及不同的适用场合。由于DBaaS的租户大多为企业级用户,且不同租户对数据资源、服务请求过程具有很高的独立性以及安全保障需求,不同租户的数据库请求大小、服务响应速度、安全级别要求、数据共享要求以及可用性等服务质量要求各不相同,在服务端请求负载的差异也比较大,因此本文采用隔离级别更高、安全级别更高的“独立数据库”实例模式实现多租户机制,即为每一个租户创建/分配不同的数据库实例。 当租户跟平台签订数据库服务质量合同后,系统会根据用户订单表记录用户ID、用户合同记录订单ID及数据库实例ID,通过这一串的标识实现隔离,每个租户使用独立的数据库实例,从而实现数据管理的多租户机制。〖HJ〗 由于本课题是基于SQL Server2012的,对租户的不同性能要求和性能隔离,可借助SQL Server 2008及以后版本推出的一项新技术——资源调控器,为每个数据库实例实现不同的内存、CPU、磁盘资源,从而实现不同的性能要求和性能隔离,数据库服务扩展性需求也可同样借助资源调控器完成相关设计。〖BT3〗2.3.2数据库服务扩展性设计 不同租户对数据库的配置需求是有差异的,并且租户对可能在后期有扩展需求,为了满足这些需求,平台需实现对实例资源的动态配置。实现方法如下: (1)在数据库实体所在服务器搭建数据库实例时,通过SQL Server2012的资源调配器在每个实例上创建一套资源池和工作组,通过对资源池进行设置来控制该实例的资源占用比(包括CPU、内存等)。为每个实例建一个实例配置表,实例配置表的字段包含内存、磁盘大小等信息,从而实现数据库实例对资源池的映射。 (2)编写相关WEB API接口方法,实现动态设置实例下的实例配置表。租户通过填写并提交订单申请数据库服务,展示层服务器通过调度模块查找系统服务实例选择空闲实例,若有空闲实例,则调用该WEB API接口并传入实例信息和订单信息。而当租户需要扩展数据库实例配置时,展示层服务器会调用相关WEB API接口传入实例信息和扩展配置信息实现实例配置表设置,并更新租户的实例信息。 (3)数据库访问安全性设计。许多租户比较习惯通过“SQL Server Management Studio”直连方式访问订购的数据库实例,为了保证数据库实例的安全性,需要对其进行IP访问限制,本平台采用SQL Server的登录触发器及IP登录授权表的解决方案,进行IP登录限制及租户资源控制。數据库实例IP防火墙流程图,如图2所示。代理账户只需要在数据库实例下的IP登录授权表设置IP范围,就可以实现用户在外网环境下访问数据库服务进安全控制。

3结语

本文针对当前传统数据库面临的诸多问题,分析了DBaaS的应用优势,通过对多租户以及云数据库的研究,设计了基于SQL Server2012关系型数据库的DBaaS自助门户服务平台,将数据库以服务的形式提供给租户,实现了具有按需提供服务、多租户、可扩展等特点的DBaaS服务管理架构。目前该平台已在某云中心试运行且统运行稳定可靠。该平台的应用,将有利于促进云计算产业的发展,提升中小企业的竞争力。同时也为解决同类问题提供了一个通用的设计和实现方案。

参考文献:[1]青欣,胥光辉,戢瑶云,等.数据库应用研究[J].计算机技术与发展,2013(5):3741.

[2]中国经营网. 京东云成为国内首家支持MariaDB服务的公有云[EB/OL].( 20130927). http://www.cb.com.cn/info/2013_0927/1015198.html.

[3]郭志斌,张云勇. 沃云平台数据库即服务设计及能力分析[J]. 信息通信技术,2014,8(1):2024.

[4]朱生,牟星亮. 基于云的数据库的研究[J].电脑知识与技术,2014,(2X):899901.

[5]周生佩.云数据库服务管理研究与实现[D]. 武汉:华中科技大学,2013.

[6]刘少华.嵌入式系统低功耗技术及应用[J].软件导刊,2015,14(1):128129.(责任编辑:陈福时)

猜你喜欢
隔离
幼儿隔离中的安全问题
朱昱 十年“隔离”建构绘画体系