IT产业正在经历一个新的周期,离散的专用IT基础架构正在向集中过渡。这在产业发展史上已经不新鲜了。在主机时代、PC时代,我们也经历了从主机集中到个人计算机分散到云计算等多种变化。IT的发展似乎也在遵循“否定否定”的摆定理。
数据库作为计算机架构的核心底层软件,同样处于变化之中,其历史可以追溯到1970年,50年来数据库领域厂商进进出出,但传统数据库厂商的地位从未动摇,直到云计算的出现。
Gartner预测,到2023年全球3/4的数据库都会跑在云上,企业正将新应用向云转移,对数据存储和计算分析的能力要求不断加强。云数据库天然具备云上灵活性,能够提供强大的创新能力、丰富多样的产品体系、经济高效的部署方式和按需付费的支付模式。雷锋网(公众号:雷锋网)对话腾讯云数据库产品总监王义成,获悉腾讯云在云原生时代的数据库发展思路。
腾讯云数据库布局
上图显现了腾讯云数据产品及工具的整体布局,最上层是数据库的SaaS层,包括DTS数据迁移类服务,支持MySQL、Redis、PG等通用开源协议;DMS数据管理层,帮助用户实现图形化数据管理;另外包括数据审计、数据订阅等,审计支持实时记录所有的增删改查操作,订阅可帮助用户获取云数据库的实时增量更新数据,支持动态增减订阅对象、在线查看订阅数据、修改消费时间点等特性;灾备,用于跨云容灾和构建混合云场景。另外,用户仅需提交问题和需求,即可获得腾讯云数据库专家的专业支持。腾讯云数据库专家服务团队均有10年以上的 DBA 经验,拥有亿级用户产品的数据库管理经验。据了解,腾讯云数据库推出的数据库智能管理工具也即将上线,支持7×24小时的数据库智能监控告警。
往下是数据库的PaaS层,包括关系型数据库、非关系型数据库、分布式数据库和数据仓库、新一代数据库。关系型数据库包括MySQL、Redis、PostGreSQL、MariaDB、SqLServer,Tdata,非关系型包括Redis、MemCache,MongoDB、CKV等等。
很多数据库其实离我们日常生活很近,腾讯自研的非关系型的数据库CKV在微信红包场景中大批量使用,按访问量来收费的TcaplusDB在《王者荣耀》游戏中使用,很多游戏类应用或者腾讯系衍生的一些服务都会使用TcaplusDB。
腾讯云数据库发展史
据王义成介绍,腾讯数据库的发展史从QQ起步,开始是一种最早以的KV形式存储,当时Redis还没诞生,然后向CKV逐渐演变,再之后到财付通上线意味着腾讯有了纯粹的金融业务,也是MySQL在开源社区萌芽时期,故而腾讯没有选用传统的商业数据库,而是在MySQL基础上修改。
当然,最初都是痛苦的,腾讯也不例外。比如单库压力太大或者说主机延迟比较大等问题,倒逼MySQL演进到分布式数据库,就是如今的TDSQL。“最早是在腾讯内部开始演进,从单机节点到集群版,然后逐渐演进,再从一主一备,然后直接演进到三节点,基于Raft模式,这就是腾讯数据库自研的历史。”
此外,腾讯内部还有很多数据分析类业务,如广告等业务,需要混合OLTP和OLAP而成的HTAP数据库系统,基于OLTP的交易数据、OLAP的分析类数据,做整个广告业务推荐、分析。
“腾讯整个大的策略也是整个集团内部上云,TDSQL、CKV本就是腾讯内部演进的一些产品,在目前逐渐地迁移到云化的机房来,这是一类;还有一类就是云数据库,完全基于云开发的数据库, 比如像CynosDB、MongoDB,基于开源的Redis也在腾讯内部开始云化,原来有些新兴业务或者以前没有用到开源数据库的业务也开始逐步迁移上云。比如一些游戏场景和广告部门,他们可能原来自己没有MongoDB或者Redis整体的底层架构,现在也自动在腾讯内部云化环境里开始使用”。王义成介绍。
云原生数据库CynosDB
从某种程度上来说,AWS一篇论文开启了云原生数据库时代,AWS认为,高吞吐量数据处理的核心问题已经从计算和存储移到了网络IO,Aurora提出了一种新的关系型数据库架构,将REDO日志的处理下沉到一个专门为Aurora定制的多租户可扩展的存储服务上。
数据库就此进入下一个纪元——云原生。
2018年11月,腾讯云公布了新一代自研云原生数据库CynosDB,目前处于公测阶段,将于今年Q3正式推出商业版本。CynosDB数据库100%兼容开源数据库引擎 MySQL 5.7和 PostgreSQL 10,几乎无需改动代码,即可完成现有数据库的查询、应用和工具平滑迁移;最高性能是 MySQL 数据库八倍、PostgreSQL 数据库的四倍;最高128TB的海量存储,无服务器Serverless架构,自动扩缩容。
腾讯云云原生数据库CynosDB产品架构
过去的云数据库是在传统数据库之上扩展一部分云的能力,把数据库赋予一部分云的扩展性,但没有对数据库本质上做任何的改变,只是给用户提供了一些基础的运维和初级DBA的能力,而CynosDB这类数据库走的是纯粹的云原生路线。
数据库真正的挑战在内核级,以MySQL为例,传统的MySQL数据写在内存,然后再刷到REDO里去,通过REDO再去刷内存页,再输到磁盘,这样带来一个明显问题,扩容磁盘就必须要导数据,因为整个缓存和数据都是在一台机器上。CynosDB把计算和存储分开,REDO层面不在本机内刷,而是通过网络传到共享存储,让存储层去感知MySQL REDO日志,在存储层做日志回放。计算只负责计算,不再负责存储数据了。
“为什么做CynosDB?传统的数据库+云的模式没有给用户带来很多惊喜,我们认为,未来方向是“云+数据库”,数据库将会发生根本性变革。云原生、超融合、自治是带领腾讯云数据库发展的三驾马车。CynosDB就是云原生时代的产物。”
王义成形象地比喻,传统数据库如SQL Server或者云+数据库形式,类似于买宽带,放到云计算领域则是实例,不管用多少,怎么用,都要使用租用的方式,但实际使用量级可能比购买的要小很多。
“CynosDB是商业模式上的一种变化,但商业模式的变化一定是技术架构或者说技术的重新改造。以前是基于物理基因的模式去搞一个实例去做,用户做一次升级或者搬迁,都要全面要把数据搬走。CynosDB实现存储跟计算分离,存储是一个大的共享磁盘,并且让磁盘存储能够感知MySQL或者数据库的协议,然后把日志下沉,在存储的扩展性和性能上经过良好的一个中和。”
云原生数据库市场两三年爆发
“云原生数据库市场可能在未来的两三年内就会爆发”,王义成给出了两个原因。
第一,公有云的增量市场可能不会像以前那么快,达到之前的100%、200%,在这种市场条件下,云原生数据库更迎合市场需求,云厂商需要逐渐教育市场。
另一方面,当前国外数据库厂商的技术垄断逐渐被打破,国产数据库崛起势头强劲有望进一步发展,数据库市场即将开始下半场角逐,云厂商是影响这场战役新的变量。与Oracle对标并做到Oracle这种程度是很长的过程,当下并不现实。厂商如何用对数据库市场的理解,或者在数据库技术上的优势来去打动价值20-40亿的市场客户,是摆在数据库厂商面前的现实问题。
来源:东方资讯