GaussDB云数据库架构
云数据库系统的主要目的是提供数据库系统服务的基础设施,以实现对计算机资源的共享。本文所讲述的GaussDB云数据库架构设计的内容,目前处于研发阶段,对应产品尚未向客户发布。
1.1 设计思想与目标客户
从数据存放的位置来看,云数据库系统可以分成三大类:
- 公有云数据库系统服务: 该类数据库系统服务主要面向中小型企业的数据库需求。针对中小型企业提供公有云数据库系统服务,可以大幅降低这类公司的运营成本,比如构建数据中心或者机房、构建服务器、运维服务器、运维数据库系统的成本等,同时也使得这类使用公有云数据库系统服务的公司,可以更加专注在业务领域,而无须花费太多的精力在基础设施的构建上。
- 私有云数据库系统服务: 该类数据库服务主要面向大中型企业的数据库服务需求。这类云数据库系统的构建,通常需要在公司内部购买大量的设备,同时构筑相关的PaaS层、SaaS层,其中数据库服务是非常关键的一类服务。该类服务使得公司内部的各个部门的信息新系统可以共享相关资源,同时实现数据共享,并降低整体的维护成本,最终降低总体拥有成本。
- 混合云数据库系统服务: 这类数据库服务同时包含公有云数据库系统服务和私有云数据库系统服务两类。至于哪部分数据库系统服务选择公有云服务,哪部分数据库系统服务选择私有云服务,主要从降低系统的总体拥有成本(Total Cost of Ownership,TCO)上考虑,包括构建成本、运维成本、折旧费用等。
应该选择哪种云数据库服务,主要从如下3个层面权衡。
- 成本。当企业的系统规模不是很大,通常情况下租用公有云数据库系统服务的成本会低于在企业内部构建数据库系统服务的成本,但是当系统规模扩大到一定程度,在企业内部构建私有云的成本会比购买公有云服务的成本低。当前规模稍大的物联网企业,如今日头条、美团等均是构建企业内部的云服务。
- 差异化竞争力。如果企业对外竞争力构筑在数据库系统服务的基础上,那么企业也将构筑自己的私有云数据库系统服务。
- 数据的隐私度及价值。如果数据是企业的重要资产和核心竞争力,那么这类企业大多会采用基于私有云的数据库系统服务,以更好地保护数据及个人隐私。
通过上述的分析,中小型企业通常在成本、竞争力构筑、数据隐私保护这几方面权衡后,更大概率地选择公有云数据库系统服务,而大中型企业则更大概率地选择私有云数据库系统服务或者混合云数据库系统服务,其中成本因素会占据比较高的比重。GaussDB云数据系统的目标客户主要是大中型企业。
大中型企业对云数据库系统的需求与中小型企业对云数据库系统服务的需求有较多的不同之处,具体分析如下:
- 具有更加高效的资源整合和利用能力。对于大中型企业,通常会管辖多个部门,这些独立部门有独立的、不同的业务,为此每个部门均针对各自不同的业务,配备不同的数据库系统,并由此提供数据库系统服务; 另外,对于大中型企业,为了更好地服务各个业务部门,通常会组建平台部门,并为业务部门提供更好的数据库系统服务支持。为了提升整个企业对计算
- 对数据库系统的规格,特别是SLA(Service Level Agreements,服务水平协议)有更加严格的要求。大中型企业通常服务的客户数量大,业务重要,因此对数据库服务请求的吞吐量、每个请求的响应时延、容量扩展速度、计算
- 大中型企业内部多个部门之间的业务并不是完全独立的,通常各自系统之间存在着一定的耦合关系。这类耦合关系,通常表现在数据库表模式之间的耦合关系、数据对象之间的一致性问题、数据之间流动关联关系(Extract Transform Loadworkflow,ETL)。例如某银行,需要通过数据中台维护各个部门之间数据表模式的一致性。
- 具有对新应用的快速迭代和快速开发需求。为了能够加速新应用的开发,在云场景下对数据库系统的克隆、回溯、合并等能力提出了新的需求。特别是在大数据
1.2 弹性伸缩的多租户数据库架构
为了能够适应各类大中型企业对云数据库系统的需求,GaussDB云数据库系统提供了更强的存储资源、计算资源之间的组合能力。其主要目的是实现存储资源的独立扩容和缩容能力、计算资源的独立扩容和缩容能力,以及存储资源与计算资源在弹性扩缩容环境下的自由组合能力。从本质而言,GaussDB 云数据库系统提供多租户(Multi-tenant)和扩缩容(Elasticity)的组合能力。
1.2.1 多租户存储计算共享架构
单个应用服务独立部署转向共享服务,对企业内部数据库系统的运维产生较大的变革,并有效降低其运维成本。
如下图所示,数据库系统从孤立的独立部署转向计算与存储共享的部署形态,在实现计算与存储共享的同时实现存储资源的独立扩缩容,以及计算资源独立的扩缩容。当云部署的数据库系统能够提供独立的存储、计算扩缩容能力后,数据系统需要被迁移的概率将被大幅度降低,由此可以提升数据库系统的业务连续性(BusinessContinuity),系统比较容易实现在运行过程中存储资源的扩缩容,以及计算资源的扩缩容。

图1 多租户数据库系统部署形态
1.2.2 三层逻辑架构实现存储、计算独立扩缩容
为了有效实现云数据库系统在存储资源、计算资源的独立扩缩容,需要实现计算与存储的解耦,以及各自的扩缩容能力。
如下图所示,为了实现GaussDB云数据库系统在存储和计算方面的弹性,现将整个数据库系统分为3层,分别是弹性存储层、弹性事务处理层及无状态SQL 执行层。GaussDB云数据可以在事务处理层实现横向扩展,以保证满足大中型企业对数据库系统的不同需求。无状态的SQL执行层,可以实现对不同客户端连接请求数进行扩展的能力。

图2 GaussDB云数据库系统的分层架构
GaussDB虽然实现了在数据库系统3个层次上的不同可扩展能力,但是不要以为这些组件是部署在不同的物理机器上。相反的,为了更好地提供性能,这3个层次的组件通常在部署的时候,具有很强的相关性,需要尽可能地联合部署(尽量部署在一台物理机上或一个交换机内),以降低网络时延带来的开销。
1.2.3 云数据库的克隆与复制支持
将企业的数据库系统搬到云系统之上,可以提供更加便利的数据库系统管理功能,以满足企业对业务的测试、新业务的构建等不同需求,加速业务上线的速度。
由于云数据库系统实现多个数据库系统之间数据的共享(即在一个存储池中,存储大量的数据库)。因此,可以实现对这些数据库高效的复制、克隆等功能。比如,某公司可能需要基于现有数据库系统的当前数据,开发一个新的应用。传统的做法是,为了测试应开发的应用不影响到现有的线上应用,公司通常会构建一个新的数据库系统,并从当前线上系统导出一份最新的数据,将这份新的数据导入另外一个数据库系统中(比如刚创建的数据库系统实例),并在该数据库系统开发、测试新的应用。
当这些数据库系统共同部署在云数据库系统中时,可以实现数据库系统的克隆(包括数据与系统)和复制(仅数据),比如使用COW 机制(对于持久化存储的Copyon-Write机制)可以实现对于数据库数据的快速克隆(仅克隆了元数据,数据库数据并未复制)。通过COW 机制,构建在克隆数据库上的业务可以直接修改克隆的数据库系统中的数据。
如下图所示,云数据库系统可以对生产数据库系统进行克隆、复制等操作,对于克隆、复制出来的数据库系统可以用于非生产系统,并用于开发、测试流程或是参与到基准测试中。需要说明的是,用户非生产系统的数据库系统保持了和生产系统当前一致的数据,同时生产系统中更新的一部分数据也可以实时同步到非生产数据库系统中,进而保持这两部分数据之间的一致性。

图3 GaussDB云数据库系统的数据库克隆与复制
通过上述分析,GaussDB云数据库系统通过分层,实现了在存储层和计算层的弹性以及这两者的任意组合,能够较好地适应大中型企业对云数据库系统的需求。另外,GaussDB云数据库系统在此基础上又进一步实现了对现有数据库系统的高效克隆、复制,以满足中大型企业提升业务演进的速度和节奏。
更多推荐
所有评论(0)