【摘要】云原生数据库参与金融业态数据库的部署和使用成为行业的热点话题,其应用的进程和趋势值得大家思考和关注,本文作者基于3年云原生数据库和10余年传统数据库的使用经验,分析云原生数据库对于从业者、使用企业,以及数据库业界与数据库产品的三方影响。
【作者】刘华阳,近15年数据库相关工作经验,其中6年数据库架构师经验,精通PostgreSQL、MySQL、SQL Server、MongoDB等,熟悉多种数据库相关特性与优化特点,并具有一定的云原生数据库相关经验。多年金融行业数据库从业经历,目前在某互联网餐饮企业任职数据库部门负责人,同时投身PolarDB替换传统数据库相关工作,
引言
与之前大家主要关心实体机+线下部署数据库的模式不同,云原生数据库参与金融业态数据库的部署和使用,正频频成为大家关注的话题。在金融业态环境下,本地主机部署+线下数据库是否还是主流?云原生数据库与固有的数据库部署的形态有没有交错进行?云原生数据库的市场前景如何?云原生数据库是否会成为趋势底座的支撑技术?其应用的进程和趋势值得大家思考和关注。与此同时,云原生数据库会给业态下的从业人员包括DBA职业带来什么影响,为企业创新带来什么变化,都值得细细琢磨。
以上便是本文作者撰写此文的初衷,基于3年云原生数据库和10余年传统数据库的使用经验,作者将分析云原生数据库对于从业者、使用企业,以及数据库业界与数据库产品的三方影响。
一、云原生数据库对数据库从业者的影响
(一)使用更便捷,但思考逻辑新、新知识多而零碎,想完全掌控系统难
云原生数据库在各个云厂商介绍中具有易上手的特点,大部分云原生数据库的操作与数据库从业者熟悉的数据库操作方式类似,兼容MySQL、PostgreSQL等数据库,一部分产品还与Oracle兼容,在操作命令、使用方式上与所兼容的数据库产品基本一致。会操作兼容开源数据库产品的数据库操作者,可以快速掌握云原生数据库产品,在操作方面没有新知识的障碍,如果仅作为操控和使用者来使用云原生数据库,不需要投入太多精力,学习成本普遍较低。
而公司IT部门的数据库负责人或公司的软件架构师等,则需要从更深层次角度去理解云原生数据库的原理、模型设计及运行维护的特点,甚至要明晰产品的设计原理,指导应用研发,以针对新型数据库改变研发中使用数据库的模式,最大化利用云原生数据库的特点,降低开发应用系统的成本。
但与此同时,云原生数据库也有一些传统数据库不具有的特性,如系统更新速度快,数据库结构和架构变更速度快等,知识体系更加零碎,需要和云厂商积极沟通,获取更多的新知识。这对于传统数据库从业者所习惯的学习数据库的方式方法提出了挑战。
(二)硬件模式的新角度、新基础,打破原有数据库产品理念
云原生数据库的程序编制者,需要更多理解基于新硬件的知识,通过云厂商现有的硬件体系中包含的硬件产品来编制数据库软件,最大化利用现有硬件模式完成云原生数据库的产品架构设计和代码编写,这点与传统数据库更多考虑硬件的兼容性,在兼容性面前牺牲硬件资源的利用率有很大差异。一个是把数据库架设在可确定的硬件产品之上,一个是把数据库产品架设在不确定的数据库硬件产品上,在产品设计初期的理念是不同的。
基于云原生硬件打造的数据库产品,敢于充分利用硬件的最大能力来进行数据库软件的编码,让数据库产品与硬件更加契合。
二、云原生数据库对使用数据库企业的影响
(一) 稳定性与成本
企业对数据库产品最重要的两个需求点是稳定性和成本,这二者缺一不可,在使用云原生数据库上也不例外。云原生数据库在成本上有自己的优势,购买RDS数据库(关系型数据库,Relation Database System)产品的成本,一般可以购买同配置的云原生数据库产品,但云原生数据库在性价比上有如下特点:
1.更多的节点。云原生数据库一般情况下都是以2个或多个节点作为标配,同样情况下RDS产品只提供一个节点。
2.更高的硬件产品性能。在同等价格基础上,云原生数据库可以提供更好的硬件产品作为底座,硬件较RDS产品的性能更高。
3.更好的硬件伸缩性。同样的数据压力的情况下,云原生数据库基于更多的功能如serverless等,可以提供更加灵活的硬件伸缩性,以在遭遇突发业务需求时提供更好的系统稳定性。
在具有这些特点的情况下,我们需要思考除账面成本、可见成本以外,云原生数据库使用中的其他成本,如:
1.管理成本:云原生数据库属于新类型的数据库产品,在运行维护、搭建部署、日常运行维护操作中,尤其对于金融行业来说,会有额外的管理成本显现。如新系统、新知识普及掌握前,需要更多的原厂维护人员,或基于云原生数据库的使用,可能需要应用改造的成本,这些都是我们在使用云原生数据库时需要考虑的成本因素。
2.稳定性:在云原生数据库提供了更多的灵活弹性的基础上,以及更加复杂的数据库架构的情况下,系统的稳定性需要更严格的POC测试和长时间的业务测试与使用,以针对系统运行稳定性进行考量。
(二) 产品的灵活性与功能
云原生数据库产品介绍一般都会提到,云原生数据库产品相较传统RDS数据库产品有更多的灵活性。主要的灵活性可以总结为以下几个方面:
1.扩展的灵活性:云原生数据库在横向扩展、纵向扩展上都有自己的一套相较传统数据库更快速的方案,尤其针对传统分布式数据库扩展容易、收缩难的设定,云原生数据库则具有与扩展性一样的收缩灵活性,同时,部分云原生数据库的扩展性中也包含了列式存储的扩展灵活性。
2.计费灵活性:在我们使用的云原生数据库产品中,存、算是分开计费的,尤其是一些纯serverless的云原生数据库系统,在不使用数据库计算单元的情况下,是不需要付费的,这对RDS产品的固定收费模式是一种强有力的冲击。
3.高可用切换的灵活性:在云原生数据库中,数据的故障自动切换速度相较RDS产品速度更快,部分云原生数据库产品已经开始向无感知切换的方向努力。相较于RDS产品,大部分产品切换对应用的影响非常小,甚至可以忽略,这主要是由于云原生数据库本身具有强悍的数据库代理前端,来解决系统切换中短暂的访问中断。
4.弹性灵活性:云原生数据库的弹性能力是云原生数据库支持业务复杂灵活性的标志,弹性主要以两个方式实现:
方式一、在现有数据库硬件配置的基础上进行弹性的设置。
方式二、没有固定的硬件配置,可以预设弹性的范围。
二者在计费的方式和成本上,以及适合的业务场景上,都有比较明确的划分,需要使用者有一定经验,来选择正确的方式打开云原生数据库中的弹性功能。
5.数据恢复的灵活性:云原生数据库目前基本都支持单表指定时间恢复的数据恢复方式,相较于传统数据库恢复数据的方式,这样的方式更符合现代商业中对于数据快速恢复的需求及有目的和有范围的数据恢复诉求。
三、云原生数据库对数据库业界和数据库产品的影响
(一) 产生了新的产品形成方式
云原生数据库产品在确定的硬件产品基础上,解除了基于硬件的束缚,解放了思想,产生了不少新的数据库产品雏形,如多节点写、数据库多功能刀片插入式解决方案、冷热数据自助分离等等在传统数据库上并不存在的产品形成方式,开拓了数据库产品设计的新思路,这对传统数据库的设计提出了挑战,将所见即所得这样一种新型数据库的使用模式逐渐推广开来。
(二) 形成了新的数据库市场增长点
云原生数据库将挑战传统数据库市场占据主导份额的历史。同时,更多客户在使用云原生数据库后,对云原生数据库的基础设施和服务也提出了新的挑战和更多的需求。
(三) 提供传统数据库产品无法提供的服务
云原生数据库将提供在传统数据库产品市场中无法为客户提供的服务,总结有如下服务:
1.自动扩展收缩服务:通过数据库弹性对数据库节点的横向和纵向进行动态扩展服务提供。
2.无限容量:基于云厂商的存储池化,站在用户角度,数据的存储容量可以视为无限制。
3.开箱可见即用:云原生数据库产品开通仅需要选择付费后即可使用数据库产品,无需事前的安装初始化。
4.自动调优和优化:部分云厂商的数据库产品已经开始集成AI优化产品。
5.高可用服务无感化:数据库切换升级,产品的HA等逐渐做到客户无感化。
6.高级别数据持久性服务:针对数据安全等,在云原生数据库中可以开通异地数据热备等服务,提供更高维度的数据高强度持久化服务。
(四)创新了数据库设计理论
云原生数据库产品基于更新的硬件产品、超大的硬件集群化的设置,与传统数据库产品在设计理论上产生了分叉点。基于新硬件的利用与最大化性能的利用,云原生数据库在设计编码实现上有了自己的一套新的理论和实现方法。
四、云原生数据库的问题和使用者的疑虑
我们也不能否认,云原生数据库面临不少问题,产品出现初期也必然存在使用者疑虑,需要更多金融业态的使用去验证其新理论,使其得到现实的滋养和成长。目前云原生数据库应用还存在着这些痛点:
(一)云原生数据库无法下云
云原生数据库产品无法下云是很多客户关心的问题,一些大客户希望使用云原生的数据库产品,但又想本地化云原生数据库产品,这对于基于硬件设计的云原生数据库产品是一个难题。基于开源数据库上层的程序所制作的云原生数据库,还存在云下部署的开源协议限制的问题。基于部分开源数据库的开源协议,需要使用开源数据库进行二次开发的使用者,将自身的二次开发的数据库产品的源代码进行开源,这对云厂商是一件困难的事情。
(二)客户与数据库产品绑定
数据库产品是一个企业数据资产处理和存储的核心,使用数据库的客户对于数据库的归属权和数据库中数据的灵活转移和使用是十分关心的。使用云原生数据库产品,使客户的数据库与云供应商进行了绑定,部分客户基于安全和企业的性质,在考虑企业自身利益与安全的基础上,将决定不能使用云原生数据库产品。
(三)产品的通用性与使用范围被削弱与限制
由于云厂商的限制,云原生数据库产品不具有跨云或线下的通用性,A云厂商的云原生数据库无法良好的在B云厂商的云上工作,或根本无法在B云厂商云上工作,这大大削弱了产品的通用性,限制了产品的使用范围。
(四)产品的分支合并与开源数据库对应功能的滞后
云原生数据库产品都是依托了MySQL、PostgreSQL这样的数据库开源产品,作为数据处理的上层方式出现,但开源数据库的功能是逐渐递进的,从小版本的功能添加到Bug Fixed等,云原生数据库基于下层的设计与原理与传统数据库不同,合并原有的开源数据库小版本的功能升级和Bug Fixed 都需要时间,部分情况下无法进行代码合并,这就导致云原生数据库中不一定包含对应开源数据库的新功能。
综上,云原生数据库是青出于蓝,还是数据库产品的倒退?相信各位读者心里已经有了判断。云原生数据库提供了一种全新的数据库使用体验和问题解决方案,以及基于云上的硬件和服务,但我们同时也应该正确认识云原生数据库使用的场景和适用的业务性质。云原生数据库市场后续发展如何,让我们拭目以待。