云数据库的技术需求与架构演进

  

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。
微服务,也就是一种面向服务的,有特定边界的松散耦合的架构。
主要特点包括,每一个微服务是一个独立的自治系统,可以不依赖外部组件独立运行;对应用只暴露接口,用户可以灵活的调整过每个微服务的使用,业务粒度足够小。

在企业架构“云化”的过程中,数据库的云化是最为重要也是难度较大的一个部分。数据库云平台(dbPaaS)是一类支持弹性扩张,多租户,自我管理,并能够运行在云服务提供商的基础设施(IaaS)之上的数据库管理系统(DBMS)或存储管理系统。

根据Gartner报告预测,数据库云平台市场份额将会在下一个五年中翻倍,而70%的用户将开始使用dbPaaS数据库云平台,因此,为了满足各类应用程序对数据库云平台的需求,同时为了减少私有云部署中对大量不同类型数据存储产品的运维复杂性,数据库的架构演进将是未来十年数据库转型的主要方向之一。

云数据库的技术需求
在业务和应用进行“云化”的过程中,云数据库因为在整体架构中的重要地位,在云化改造中的重要性不言而喻。云数据库的核心需求有一下几点,主要有:
?弹性扩张能力:数据库容量需要根据业务弹性扩展,满足不同业务的容量需求,
?弹性部署与随需应变能力:除了数据库的存储,其他数据库功能也需要根据应用的需求,进行弹性的部署调整。
?数据可靠性与服务持续能力:数据的可靠安全,全时在线是所有业务的必须要求,
?计算存储分离:将计算和存储资源灵活配置,既可以选择多种计算方式也可以同时对应多种存储方式,满足更多业务需求,
?多模式存储能力:结构化,非结构化,半结构化和图等多类型数据的存储;
?自我管理能力:提供零停机维护,持续集成,以及滚动升级能力,提升开发人员效率;
?自我监控以及问题修复能力:故障监控和问题修复,降低运维成本。
?是否满足特定应用场景:针对特定场景的可插拔组件或工具,
?监管与安全:满足监管的要求,保证数据的安全。

云数据库需要满足这些技术要求,除了在功能上的具体提升,在整体架构上更需要进行升级和“进化”。

云数据库架构方向
云数据库架构是其能否承载应用架构“云化”的关键点,随着技术和业务的发展,云数据库的架构出现了几个主要的发展方向:
?在dbPaaS平台中,计算,存储层分离将会成为主流技术方向。通过将协议解析,计算等模块与底层存储解耦,数据库云平台将存储层进行分片以实现存储的弹性水平扩张,同时通过计算层的无状态设计允许计算层通过增加节点数量线性提升计算能力,已达到整个数据库云平台的弹性水平扩张。
?多模架构成为主流趋势,多模型的架构在一个数据库平台就可以支持多种存储方式,大大减少运维和开发的成本。传统数据库中例如IBM、Oracle等早已经提供关系型,OO,甚至XML等存储引擎。而新一代数据库则更提供NewSQL, JSON,图,对象存储等多种类型数据存储引擎。
?云数据库平台将会提供多种混合模式的数据服务——关系型与非关系型。该模式使用户能够在同一平台中结合不同数据存储类型的特点,为新一代它应用系统提供混合数据存储解决方案。
?更符合微服务业务架构的要求,微服务要求各个服务模块之间尽量松耦合和可独立扩展。因此对于数据库,也同样会针对不同的业务,进行不同侧重的配置,无论是传统的“读写分离”或者现在流行的HTAP都是围绕这个要求展开的。

针对这几个主要的发展方向,我们就将详细来探讨云数据库的几个重要技术特点。

1)存储SQL分离
针对云数据库的需求和架构方向,一种新的数据库架构也在渐渐成为主流,也就是数据库的“存储SQL分离“架构。

存储SQL分离架构,即指数据库的存储引擎和SQL引擎两部分互相松耦合独立工作的架构。通常这一架构,分为存储、SQL和元数据三个部分。

?存储层:即数据库的存储引擎,存储引擎负责处理数据的存储管理。同时包含路由及事务控制,保障数据的酸特性。此外,存储层还应还具备索引,查询条件过滤,排序等一系列功能。
? SQL层:SQL层主要负责处理SQL请求,上层直接面对应用程序,将应用程序的访问请求分发给存储层,并且接受存储层返回的数据结果。
?null   null

云数据库的技术需求与架构演进