资料库即服务(Database as a Service; DaaS)是以传统资料库技术为基础,将资料库资源以标準服务的形式提供给一个或多个租户的服务能力。资料库即服务平台为用户提供一个统一的资料库访问服务,它禁止了底层的异构资料库,为上层套用提供了简单方便的资料库访问接口,将套用和资料库隔离开来,降低了耦合性,增强了系统的灵活性和健壮性,为增强数据访问控制提供了可能。
基本介绍
- 中文名:资料库即服务
- 外文名:Database as a Service
- 学科:计算机科学
- 特点:增强了系统的灵活性和健壮性
- 目的:降低成本
- 要求:数据隔离、性能隔离
简介
以云计算为代表的新型网际网路计算模式正成为当前企业界和学术界的研究热点。云计算的一个特徵就是通过基于网际网路的服务和“託管”及“租用”的模式为各类用户提供IT基础设施能力。随着云计算的发展,其套用範围得到进一步的扩展,人们开始尝试利用云计算技术来提供数据套用託管服务,特别是大量的行业数据套用,即资料库即服务(Database as a Service,DBaaS),以降低数据套用系统部署及运维的成本。DBaaS平台使用多租户实例隔离和资源池化的技术手段,对用户和真实硬体资源的使用情况进行隔离;这样不仅能更好地利用底层的硬体资源,也使得用户更关注数据业务本身。混合、异构资料库即服务平台在原有资料库即服务平台的基础上最佳化了异构特性支撑能力和跨数据中心异构支撑能力。当然,一个完善的 DBaaS架构还应具有较为完备的安全机制、自动资源管理和综合性能规划等功能,并且能够适配各种不同的接入设备,DBaaS所具备的很多特性也是传统资料库服务架构自身已具备的,所以DBaaS 是对资料库功能的封装和创新,DBaaS不能脱离传统资料库技术而独立存在。
资料库即服务的优劣势
DBaaS的优势
DBaaS解决方案既可以解决这些问题,又能为客户节约资金。相反作为解决方案提供商,採用DBaaS模式似乎就并不那幺有吸引力了,因为与企业内部署软体的解决方案相比,DBaaS意味着更低的利润。但DBaaS系统其实具有更大的市场机遇:像其他云服务一样,DBaaS意味着更短的销售周期,更少的启动费用,持续不断的收入,也意味着比之前更多的客户。
由于DBaaS解决方案可以降低首次投入成本,对于那些小企业来说,他们往往认为内部部署的资料库成本太高,DBaaS的成本和灵活性优势对小企业吸引力更大,他们是云资料库解决方案的重点客户群体。採用DBaaS解决方案,他们也可以使用同大企业一样的技术。在大型组织中,DBaaS可以提供部门级解决方案,而无需IT部门和採购部门的介入,提供更快和更容易的方法来实现小型解决方案。由于能够以较低的成本向客户提供IT所有权,当节约成本成为客户最高优先权时,解决方案提供商可以向更多的客户同时提供服务。虽然有许多来自RDBMS固有的局限性,客户还是可以使用DBaaS系统所能提供的所有能力。资料库云服务消除了组织对专职人员、本地资料库存储设备的需要。他们不必安装、配置和维护任何软硬体。
事实上,任何规模的组织都可能受益于外包服务,并在一个标準化和最佳化的平台上统一其资料库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的资料库服务,它可以支持多变的需求。而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求减弱时缩减规模。
然而,DBaaS并不意味着解决方案提供者要让自己失业。与其他系统一样,在实施DBaaS解决方案时,客户可能需要部署、迁移、支持、异地备份、系统集成和灾难恢复等方面的帮助。接下来,应用程式需要使用资料库,资料库本身需要设计、开发和部署。还有,客户怎样实施混合系统,或者需要帮助管理多个云服务?
与此同时,与资料库相关的流程的逐渐标準化,使得解决方案提供商能以更便捷的方式提供服务、部署应用程式、规划容量和管理资源。DBaaS模式还有助于减少数据和资料库的冗余度并提升整体服务质量。
最重要的是,解决方案提供商应记住DBaaS通常仅仅是解决方案的一部分。客户之所以与他们的解决方案提供商协同工作,不仅是因为他们出售的产品,而且还因为他们所提供的服务。DBaaS系统本身并不提供面对面访问或个人客户关係或持续不断的支持。这些就是需要解决方案提供商的原因。他们帮助客户选择正确的解决方案、规划集成和迁移战略,然后协助实施。
DBaaS的缺点
当然,这一切听起来不错,无疑DBaaS具有很多相对于RDBMS的优势。然而,DBaaS也有其局限性,云服务中固有的局限性就是之一。当客户开始将数据放入云端时,他们会遭遇到无法控制的网路性能问题。如果网际网路服务提供商,支撑数据的云服务,或它们之间任一点网路被堵塞或中断,他们就会遇到与数据延迟或应用程式故障有关的问题。如果问题发生在企业内部,解决方案提供商可以排除故障找出原因。
此外,一些典型的RDBMS功能并不总是在DBaaS系统中可用。例如,Windows Azure SQL Database(以前的SQL Azure)是微软的DBaaS产品,提供了一个类似于SQL Server的资料库平台。然而,Windows Azure SQL Database并不支持数据压缩和表分区之类的功能,而且SQL Database支持的Transact-SQL语言只是完整版的一部分。另外,因为解决方案提供商不能控制物理资源,所以他们不能将数据档案和索引分配给特定的硬体。事实上,在任何DBaaS中,解决方案提供商对如何管理物理资源都没有控制权,因此他们可能会发现由于DBaaS的局限性使得他们提供给客户的远远小于客户所期望的。
此外,使用DBaaS能让收入损失从其他业务上得到弥补,如软体更新和硬体管理。也许决定走DBaaS之路的客户可能会跳过解决方案提供商,儘管这个决策看起来有点短视。另外,DBaaS会导致单一客户利润率的下降,因为云服务一般是依靠高客户数来抵消较低的利润率。
DBaaS的走向
儘管DBaaS模式有缺点,但它还是适合某些客户群体,这为解决方案提供商提供了新的商机。鑒于云服务的增长,解决方案提供商除了拥抱这些技术还有什幺选择呢?如果他们不这样做,他们就会冒着被竞争对手击败的风险。但他们不能只想到如何把DBaaS的利润率与企业内部系统相比较。这是无法比较的,因为基于云的资料库提供了不同的模式。关键是要通过围绕云计算产品来包装其他增值服务以适应不断变化的市场条件:这就是DBaaS。
也许最好的策略是以不变应万变:给客户他们所需要的,不多也不少。如果DBaaS适合他们,他们就不应该买别的东西。事实上,云计算产业一直推崇自助服务,但提供这些服务的公司已经开始认识到解决方案提供商推销他们商品的价值。如IBM公司最近宣布让渠道合作伙伴分销其SaaS应用程式的新计画。微软认为合作伙伴是销售其云计算服务的重要组成部分。然而即使有这种趋势,DBaaS仍然不同于内部资料库,解决方案提供商必须认识到这一点;否则,他们不仅仅是丢失几个客户,而是要失去的更多。
要求
行业数据套用託管不同于面向公众的数据託管(如Amzon的RDS等网际网路公司提供的数据託管服务),在数据服务方面存在以下特定要求:
(1)数据隔离要求。不同单位/部门出于安全等方面因素考虑,对託管的数据具有严格的隔离需求,因此难以採用当前SaaS多租户资料库中广泛使用的共享资料库(包括共享数据Schema和隔离数据Schema)的技术。
(2)性能隔离要求。不同单位/部门的数据套用具有不同的用户对象和使用模式,由此会产生不同的用户负载并进而占用大部分系统资源,从而影响其他租户请求负载的执行,即发生资源劫持,然而从租户自身的角度这种情况则是不希望发生的。
(3)可靠性保障要求。由于行业数据套用所需託管的数据资源具有较高的业务价值,提出数据託管需求的单位/部门在数据存储及数据访问的可靠性保障方面具有高于一般网际网路用户的要求。
针对上述要求,提出一种无共享架构(Shared-Nothing)下基于虚拟机的数据套用託管方法及相应的资料库即服务系统。该方法的基本思想是为租户提供基于独立虚拟机的资料库託管环境,从而在满足不同租户资料库之间的数据隔离和性能隔离的前提下,同时使得不同租户资料库之间共享伺服器以减少系统资源(CPU、记忆体和IO)使用量;同时,为了提高託管数据的可靠性保障,每个租户资料库至少建立两个资料库副本。在这种方式下,租户的资料库副本部署在虚拟机上,使得伺服器资源可以分配给不同租户,从而能够灵活地控制租户资料库服务的伺服器资源分配并保障租户间的数据隔离和性能隔离。此外,在无共享架构下,提出了支撑多租户资料库的虚拟机资源分配这一关键问题,该问题可以看作是如下最佳化问题,如何在伺服器集群上为每个租户配置部署资料库副本的虚拟机所占用的系统资源,从而实现用最少的系统资源满足所有租户的资料库性能需求。按照上述思路,支持行业数据套用託管的资料库即服务系统包括以下三个层次的内容:
(1)数据託管基础设施层。该层次在一组共享的物理伺服器环境基础上,通过虚拟机的形式提供对租户资料库的支撑,包括租户资料库虚拟机的创建及撤销、计算及存储等物理资源的分配与监控等。
(2)数据託管管理层。该层次是资料库即服务系统的核心,它对託管的租户资料库进行统一的管理、监控,并利用数据託管基础设施层根据数据请求负载对承载资料库的虚拟机进行动态资源调度(即CPU、记忆体等资源分配的调整)。
(3)数据託管套用层。该层次由归属不同租户的众多数据套用系统构成,由于数据託管管理层提供了标準的资料库服务,套用系统可以基于标準的资料库接口来完成对数据存储及数据访问等请求,而不必考虑数据实际部署的虚拟机、物理机器及网路地址等信息