沃云平台数据库即服务设计及能力分析

2014-05-18 07:25郭志斌张云勇
信息通信技术 2014年1期
关键词:租户架构监控

郭志斌 张云勇

中国联通研究院 北京 100032

1 DBaaS的概念

DBaaS(Data Base as a Service,数据库即服务)是以传统数据库技术为基础将数据库资源以标准服务的形式提供给一个或多个租户的服务能力[1]。典型的DBaaS架构须支持如下必要功能:面向租户的、按需弹性配置的、用户自服务的数据库实例配置与管理功能;具备可选的、稳定的SLA服务标准和运行监控维护能力;具备精细化、细粒度的资源使用量计量与计费能力。除上述必备能力外,一个完善的DBaaS架构还应具有较为完备的安全机制、自动资源管理和综合性能规划等功能,并且能够适配各种不同的接入设备。当然,DBaaS所具备的很多特性也是传统数据库服务架构自身已具备的,所以DBaaS是对数据库功能的封装和创新,DBaaS不能脱离传统数据库技术而独立存在[2-3]。

2 DBaaS的优势

2.1 降低成本

DBaaS为IT规划和实施部门提供了一个优化传统数据库架构的机会。首先,在传统的IT项目中,每一个平台或者系统的数据库配置都是按照满足峰值需求设计的,在日常运行中,大量的资源处于闲置状态,不仅如此,高规格的数据库资源配置还将消耗不必要的运维和电力资源,造成严重浪费。其次,大多数IT平台的数据库部署和配置工作都是类似的,这些类似的工作在每一个IT项目中被不断重复,费时费力。

DBaaS架构本身就是为了灵活性和资源池化设计的,可提供生产/非生产数据库服务,支持随需求变化提高或缩减日均工作量需求,可通过简单的界面完成大部分数据库部署和配置工作,从而大幅度降低建设和维护成本。

2.2 提升数据库服务能力

对租户而言,DBaaS的自助配置和管理使得租户能够更快速、容易地部署新的应用。不仅如此,DBaaS提供的资源使用量计量,改变了租户过去在IT项目建设前,根据预估资源需求购买基础设施的建设方式,可以使用户根据实际需求弹性使用资源[4]。

对平台提供者而言,统一的数据库提供方式,使得平台提供者统一考虑安全性、可靠性、可用性、可管理性和恢复,以及如何满足业务的性能、可用性、安全性等要求,定制可复制、可重用的数据库服务体系,统一完成升级维护,有利于加强各方面的管控,提升服务水平。

3 沃云平台数据库即服务设计

沃云平台数据库即服务是基于开源数据库软件MySQL开发的统一的数据库访问服务平台,它通过屏蔽底层的异构数据库,为上层应用提供简单、一致的数据库访问接口,将应用与数据库服务解耦,降低复杂度,增强了系统的灵活性和健壮性,亦为增强数据访问控制能力提供了新途径。与此同时,服务以多租户的方式,并采用池化的方式实现用户与其使用资源、用户与资源使用情况的隔离,从而使得用户能够更加关注其核心业务。沃云平台数据库即服务的体系架构设计如图1所示。

由图1可见,沃云平台的数据库即服务功能主要由以下组件协同实现。1)监控管理中间件DBSManager节点监控管理代理Agent。2)统一数据库访问层DBProxy。3)监控管理平台交互访问层Portal。其中最重要的组件分别是提供数据和元数据接口的统一数据库访问层DBProxy以及负责管理监控和协调各个组件工作的DBSManager。前者提供数据访问能力以及数据访问接口,同时隐藏所有的服务细节;后者监控管理并根据预先配置的策略,负责仲裁所有组件的工作状态并在必要的时候上报给平台管理员。Agent负责在主机上上报心跳信息以及接收DBSManager的指令并执行。Portal提供友好的人机交互界面,帮助平台管理员更好地开展运维工作,并获得更多的运行信息。

本文后续部分将重点讨论DBSManager和DBProxy的设计。

3.1 监控管理中间件DBSManager

监控管理中间件DBSManager负责对数据库即服务所有资源的抽象及资源池化管理,其管理的资源包括但不限于服务器、网络、存储、虚拟机资源等。主要在数据库即服务中提供数据访问与数据库服务的媒介隔离,依照标准约定的平台监控规范、平台管理规范对资源进行抽象封装与对接。实现对资源使用的计量、统计等功能,以及对资源使用的调度和服务中各个组件的综合管控等。同时,借助沙箱机制实现多租户所使用资源的有效隔离。

DBSManager通过与各个主机节点上的Agent通信,实现集群的实时监控与管理,并对采集到的信息进行集中管理,而分布式的设计可以对整个集群进行逻辑群组的划分和管理,保证整个系统具有良好的水平扩展性。DBSManager与Agent之间的交互关系如图2所示。

图1 沃云平台数据库即服务总体设计图

图2 DBManager与Agent交互示意图

3.2 节点监控管理代理Agent

节点监控管理代理Agent负责对节点的监控和管理,具体功能包括以下两点。1)节点监控功能。负责在DBSManager配置的时间间隔内采集节点上的服务运行时状态信息、系统运行时信息,并通过接口上报给DBSManager。2)节点管理功能。负责侦听DBSManager推送过来的管理指令,验证身份后进行执行,并按接口规范返回执行结果。

3.3 统一数据库访问层DBProxy

DBProxy组件提供数据库即服务的数据、元数据统一访问接口,如图3所示。其通过接口封装形式隐藏了数据库的细节特性,仅通过接口形式提供多样的数据访问方式,如REST风格的WebService接口、JPA或JDBC的封装接口。同时,还提供多种数据结果集形式,如JSON、XML或者Protocol Buffer等。所有使用数据的方式都统一到一致的、受管控的界面上,使得无法直接计算的查询资源消耗,变得可计量及可统计。同时,通过应用程序无关的使用方式,实现平台统一的安全审计、监控管理、路由配置以及读写分离等高级特性的支持。

图3 DBProxy组件内部模块概要设计图

3.4 监控管理平台交互访问层Portal

监控管理平台交互访问层Portal主要为用户、平台管理员以及数据库管理员之间的交互提供良好UI体验,其主要功能如下。

1) 用户服务功能。申请开通数据库服务、申请扩展数据库服务、查看数据库服务状态、业务应用使用数据库服务、用户暂停/恢复/注销数据库服务、数据库服务报警、数据建模和映射。

2) 平台管理员功能。MySQL服务的监控报警、平台服务的监控报警、安装DBProxy、DBProxy监控报警、DBProxy日志管理、DBProxy启动/停止。

3) 数据库管理员功能。申请数据库服务、扩展数据库服务、暂停数据库服务、恢复数据库服务、注销数据库服务、数据库基本管理、数据导入、数据导出、数据同步、数据备份、数据恢复,数据库设计建模。

3.5 沃云平台数据库即服务的优势

业界其他平台的数据库即服务能力多为提供数据库单实例,单次提供一个数据库实例,如果需要高可用或读写分离等扩展架构需用户自己手动创建和人工运维,水平扩展困难。而沃云平台的数据库即服务通过支持高可用、读写分离、负载均衡等扩展能力解决了上述问题。沃云平台数据库即服务采用了数据库统一访问层技术,该技术降低了应用和数据库之间的耦合性,基于该技术可以实现对业务透明的后台数据库架构的扩展性,在平台中数据库服务的高可用性以及读写分离均由数据库即服务能力提供,而无需应用关注。

4 沃云平台数据库即服务实现的能力

沃云平台数据库即服务模块能够将数据库能力以服务的形式提供给一个或多个服务消费者,实现的核心关键能力包括:1)多租户共享能力;2)数据库实例的按需提供与动态调度管理能力;3)数据库服务的QoS/SLA指标自动监控与管理能力。

4.1 多租户共享能力

数据库即服务的多租户共享可以在两个层面上实现:数据库层与租户层。数据库层共享以数据库为基本的划分单元,即通过为每一个租户创建/分配不同的数据库实例,实现存储与服务器资源的共享复用。租户层共享以用户为基本的划分单元,即数据库实例已经创建,在此基础上为每一个租户创建多个用户,多租户之间共享存储、服务器、操作系统服务,多用户之间共享数据库实例。

4.2 数据库实例的按需提供与动态调度管理能力

DBaaS建立数据库即服务的资源池,管理数据库服务器资源池与存储资源池。资源池管理可以通过业务策略动态管理数据库服务资源;可以通过制定最大资源、最小资源、重要程度策略等动态管理服务可用性和服务质量;资源池管理可以统一管理大规模、多主机的复杂数据库环境,可以实现“大分小”(一台物理服务器部署多数据库实例)和“小合大”(多台物理服务器上部署一个数据库实例)的两种资源管理需求。

DBaaS建立资源计划管理功能,可以根据不同数据库应用的资源消耗的峰值波谷曲线特征定义其资源计划,资源计划管理可以定义不同的数据库应用在相同和不同的时段所占用的最大资源、最小资源以及资源分配的重要程度优先级别。资源计划管理可以对不同数据库应用所能够使用的计算资源(CPU)和IO资源(IOPS)进行定义,可以定义数据库应用能够占用的最多的和最小CPU核数,可以定义数据库应用能够占用的IO资源的百分比,并且可以根据计划在不同的时段进行动态调整,削峰填谷,提升资源整体利用效率。

例如,当数据库服务的负载较高时,DBaaS会触发告警通知管理员,管理员可以对数据库系统进行一键扩容,如将原有架构为1主2从动态扩展到1主3从或者4从。后台的数据库架构扩容操作,如寻找合适的物理资源、数据库安装配置、数据从备份中复制、数据同步或者数据库架构的缩减操作,均为DBaaS自动化完成。并且数据库统一访问层技术可以保障扩容过程完全不影响现有应用的数据库连接。

根据实际测试,通过动态管理和扩容,MySQL架构读性能可以超过10万QPS,在众多场景内可达到甚至超过Oracle的性能标准。

4.3 数据库服务的QoS/SLA指标自动监控和管理

DBaaS可实现对多租户环境下的动态服务质量监控与管理。可以对数据库应用设置服务质量监控指标(CPU利用率、内存利用率等),当应用监测指标超过预先设置的阈值时,可以通过动态地调配资源或将新的服务请求调配到其他服务节点提供服务的方式,来保护数据库服务质量在安全阈值范围内,从而保证数据库服务安全稳定地提供。通过服务质量管理保护数据库服务资源,实现问题隔离,防止出现多米诺骨牌效应导致系统大面积瘫痪。

DBaaS可以为数据库服务设定端到端(计算资源到存储资源)的资源计划和服务质量要求,并能够在服务水平达不到预先设置的要求时通过动态调配资源保证服务水平的合规。

DBaaS具备数据安全管理机制,实现在共享环境下数据访问的隔离,防止超权限的数据访问,可以通过多因素访问控制策略来限制约束数据库安全合规访问,可以进行自动化活动监视,提供安全审计报告。

5 部署DBaaS需要注意的问题

需要指出的是,虽然数据库即服务具备很多传统数据库所没有的优点,但也并非适用于所有的业务场景,如对实时性要求很高的OLTP系统就未必适用,DBaaS服务访问可能带来较大的网络延迟[5],因此,企业在部署DBaaS之前应该认真审视自己的IT战略,仔细分析自身IT运营的模式,实事求是地评价自身的IT建设水平以及对合作伙伴的控制力。不同的IT战略会影响企业对DBaaS技术路线的选择,目前,很多商业数据库软件都不同程度地支持DBaaS功能,开源数据库的DBaaS功能则需要进行二次开发与资源服务化封装,因此,建立在不同类型数据库之上的DBaaS的服务能力有较大差异,这些技术路线的选择都与企业的IT战略密切相关;同时,企业的IT运营方式也对DBaaS用户自服务的功能需求和权限设计有较大影响,这些因素都须在实施DBaaS之前认真评估;同时,引入DBaaS后也可能导致大量数据移植和应用迁移等问题,这些都与企业自身的IT建设水平和对合作伙伴的控制力深度相关,对DBaaS实施的成败具有显著影响。综上,部署DBaaS之前需要综合考量多种制约条件,并结合企业自身的实际情况与IT发展战略做出最优选择。

参考文献

[1]Oracle Corporation World Headquarters.An Oracle White Paper on Enterprise Architecture-Database as a Service Reference Architecture[EB/OL].[2013-12-10].http://www.oracle.com/technetwork/topics/entarch/oes-refarchdbaas-508111.pdf

[2]Curino Carlo, Jones Evan, Popa Raluca Ada, et al.Relational Cloud: A Database Service for the Cloud[C]//Proceedings of the 5th Biennial Conference on Innovative Data Systems Research(CIDR '11).Asilomar,CA, USA. 2011:235-240

[3]Butt Ali R.Summary of Current Cloud Computing Research Activities[EB/OL].[2013-12-10].http://nsfcloud2011.cs.ucsb.edu/papers/Butt_Paper.pdf

[4]Gens Frank.IT Cloud Services Forecast–2008,2012: A Key Driver of New Growth[EB/OL].[2013-12-10].http://blogs.idc.com/ie/?p=224

[5]Jackson K R,Ramakrishnan L,Muriki K,et al.Performance Analysis of High Performance Computing Applications on the Amazon Web Services Cloud[C]//Proceedings of 2010 IEEE Second International Conference on Cloud Computing Technology and Science(CloudCom'10).Pisc ataway,NJ,USA:IEEE,2010:159-168

猜你喜欢
租户架构监控
基于FPGA的RNN硬件加速架构
The Great Barrier Reef shows coral comeback
功能架构在电子电气架构开发中的应用和实践
多租户数据隔离及加密研究
基于多租户隔离的云安全建设
基于云服务的图书馆IT架构
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
WebGIS架构下的地理信息系统构建研究
基于MVC模式的多租户portlet应用研究*