在 2021 年腾讯全数字生态大会上,腾讯宣布将在已经开源的基础上推出“免费版”的分布式数据库 TDSQL。腾讯云数据库希望通过这种方式,协同更多生态合作伙伴一起构建更好的整体生态。
TDSQL 是腾讯自研的国产化“金融级”数据库,整个过程投入了 600 多人,坚持了十四年,目前已经在平安银行、张家港农商银行等众多金融系统中使用,并将逐渐应用到中国农业银行、中国银行等核心交易系统中。
此外,腾讯云数据库团队还宣布了 TDSQL 全面升级,并发布了全自研新敏态引擎、全新 Oracle 兼容引擎两大引擎。
数据库系统、中间件与操作系统共同构成基础软件体系的三大核心。
数据库的发展可以追溯到 1970 年,当时 IBM 的计算机科学家 Ted Codd 发表了一篇有关“关系模型”的论文。甲骨文联合创始人拉里·埃里森(Larry Ellison)据此占领了技术先机,成为了市场领导者之一。直到现在,甲骨文在中国百亿数据库市场份额里,仍然占据了将近一半。
从 90 年代开始,达梦、金仓这些国内企业才开始在数据库技术上投入。由于起步晚,经典数据库的市场一直被国外数据库厂商垄断,据数据显示,Oracle、IBM、微软、SAP 这四大数据库巨头合计市场份额几乎达到 90%。
国内厂商在前面几十年都不占主流,但一些新的趋势正在行业内部悄然发生。
大数据时代的到来,数据爆发式增长,单机版的数据库处理起来开始显得力不从心。甲骨文这种上一代的集中式数据库,虽然产品力和兼容性非常强大,但有一个问题是边界感也非常明显,到了系统极限就会出现问题。在此背景下,加之云计算的兴起,让分布式数据库有了重塑行业格局的机会。虽然单个节点性能不如甲骨文数据库,但分布式数据库堆叠起来的性能则很可观,而且能够借助云计算的弹性伸缩性能处理几乎无限量的数据。
随着数据库上云进入快车道,全球数据库行业格局正迎来新一轮洗牌。根据 Gartner 的研究报告,2018 年整个数据库市场的增长主要来自 AWS 和微软,这两家贡献了其中的 75%,其中 AWS 只提供数据库云服务。在 2021 年,云数据库在整体数据库市场中的占比首次达到 50%,Gartner 甚至预测,“到 2023 年,全球四分之三的数据库都会跑到云上!”
云数据库带来的冲击慢慢呈现了出来,同时也给国产的数据库带来了切入的机会。
从上图可以看到,腾讯、阿里、华为已经可以和国际上的数据库厂商同台竞争,这些国产数据库正在不断缩小与甲骨文、IBM 等传统数据库厂商之间的差距。有业界人士评论道:“相比于传统单机版的经典数据库,由于其积累的时间更长,国产数据库的成熟度肯定还是会差一些。但是在云数据库领域,我国与国外的同类产品相比,技术上已经没有任何差距,甚至在一些高并发的场景上,国产数据库更具有优势。”
“将一个产品做好,需要有大量的场景磨炼,需要在一条正确的路上坚持不懈”,在 InfoQ 对 TDSQL 研发团队的采访上,腾讯云数据库副总王义成如此说。打磨一个数据库产品,腾讯投入了 600 多人,坚持了十四年。
2007 年之前,腾讯主要使用 MySQL 数据库为主的开源数据库,服务自身业务如 QQ 系统等,并没有做太多的产品化。
当时由于 QQ 用户快速增长至 2000 万,产生的数据量迅速超过了开源数据库的承受能力。“报表时间到了,数据却无法跑出来,已经挑战了集中式数据库的系统极限”,腾讯云副总裁李纲回忆道。
在 QQ 空间、QQ 游戏等业务的推动下,腾讯计费部门决定自研数据库,一开始定位于互联网弹性扩展、高性能的分布式数据库系统。然后又因为涉及到充钱换 Q 币的财付通业务金融场景,这些场景对数据准确性、系统稳定性等要求非常高。时任腾讯 CTO 的张志东,提出了一个要求:腾讯所有的账户都要像银行一样做到一笔都不差、一分都不差。也就是说,如果要自研,就干脆做到“金融级”,于是从 2007 年开始,一个定位于“金融级分布式数据库”的系统就开始逐步在腾讯内部孵化,这就是 TDSQL 的前身。
2009 年 3Q 大战的时候,腾讯开始做开放平台,引入了非常多的第三方生态。腾讯逐步把数据库产品提供给合作伙伴或者第三方服务商使用,这就需要考虑不同服务商之间的资源隔离。这也就相当于云数据库的第一代产品。
2014 年左右,腾讯开始拥抱云计算,成立了云事业部。云上的数据库开始对外服务,帮客户做运营维护、调优,客户仅使用服务即可。同年,这个数据库产品支持了春晚“摇红包”活动,完成了保守预测 10 倍的流量增长。也是这一年,TDSQL 被应用到微众银行,成为金融行业里第一个采用互联网分布式技术架构的银行案例。
2020 年 12 月,腾讯云将原有的几大产品线统一升级为“腾讯云企业级分布式数据库 TDSQL”,完成了品牌升级。
TDSQL 分布式数据库包括三个产品系列:其一是 TDSQL,含 MySQL 和 PostgreSQL 两个引擎;其二是 TDSQL-C 的云原生数据库,提供极致性能、无限扩展能力,以及极致的弹性能力;其三是分析型的产品系列 TDSQL-A。TDSQL、TDSQL-C 是 OLTP 事务型数据库,TDSQL-A 则是 OLAP 在线数仓。除此之外,还有 NoSQL 数据库,含 Redis、MongoDB、TcaplusDB 游戏数据库、CTSDB 时序数据库。
李纲认为,数据库的国产化首先要求产品的能力要跟传统商业版没有区别,其次技术、服务体系、生态都要由国内的传统厂商提供,然后还得有持续演进的生命力,能一直保持跟国际数据库技术上的对标。
TDSQL 的能力演进和突破也是一个持续的过程。这次,腾讯云带来了两款全新发布:
全新的 Oracle 兼容引擎,这款引擎在保险 运营商等行业兼容度高达 98% 以上,可以帮助行业在极短时间内,几乎零成本改造的情况下,实现国产化;同时最高 20 倍的超高压缩比和超高的查询性能,可大幅节省资源成本。
腾讯云数据库自研的“新敏态引擎”,可以完美解决对于敏态业务发展过程中业务形态、业务量的不可预知性。实现了 EB 级存储的 Online DDL,可以有效应对业务的变化;最关键的是,独有的数据形态自动感知特性,可以使得数据能够根据业务负载情况自动迁移,打散热点,降低分布式事务比例,获得极致的扩展性和性能。
此外,还有两个主打的工具平台,一个是 DBbrain 智能数据库运维平台,它能将大量传统人工的数据库运维工作智能化,为云上和云下企业提供数据库自治服务。目前,DBbrain 已覆盖超 60% 的云数据库用户,每日优化低质量 SQL 平均可达 6200 万,每月诊断优化高负载数据库近 1 万个,优化效率达到 89% 以上。还有一个是 DBbridge,可一站式完成商业数据库迁移,目前已在 1000+ 客户项目中应用。利用它可以完成 Oracle 到 TDSQL 的平滑迁移;支持自动转化 SQL 语法达 90% 以上;整体提升异构数据库迁移效率(减少人工参与度)达到 70% 以上。
在这个时代,基础软件必须开源,这几乎已经是大家的共识。TDSQL 的几个重要产品,无论是 Postgre 或 MySQL 的内核,还是 DBbridge、DBbrain,在发展的路径中,就都已经一一开源。
在开源的基础上,现在腾讯云在数据库行业里推出“免费版”计划。
合作伙伴可以下载全套的软件包,完全安装,免费使用,腾讯会对 License 做相关的匹配。在免费版里,腾讯云数据库希望将与现在的商业版同等能力的周边配套和同等服务能力的解决方案,直接给到数据库从业者。
开源能赢取用户的信任、降低获客成本、得到更多反馈,从而加速产品迭代。但开源不能够真正撬动整条产业链,腾讯云数据库希望通过免费的方式,协同更多生态合作伙伴一起构建一个更好的整体生态,以免费版为轴,连接服务商、社区、生态合作伙伴,同时通过数据库专家服务平台,为免费版进行服务兜底。
第一是针对 ISV 代理商,腾讯的联合实验室会在技术层面对接如神马、永信、东软这些上游应用厂商。合作伙伴的应用系统可以在实验室里对接,腾讯数据库团队也会有固定的 DBA 人员去做性能调优跟支持。
第二是开放了服务体系,有很多拥抱 Oracle 跟 DB2 的服务商,像海量、恩墨、新炬,他们同时也是腾讯的服务商。腾讯会对数据库方面的人才进行基础认证,达到认证标准具备了 TDSQL 的服务能力,就可以用合作伙伴的人力来做 TDSQL 服务支撑,同时合作伙伴也能拿到腾讯内部的特权(CSP)。还有一些腾讯周边的提供商或 OEM 厂商,在腾讯提供免费版之后,他们就可以以更低廉的价格提供 TDSQL 的转售、定制或提供专家服务来进行盈利。
第三是开放培训生态。云数据库出现后,一些数据库的日常操作慢慢被云的能力替代,DBA 岗位数量减少很多,但和传统的 Oracle 和 DB2 的 DBA 岗位职责有些差异,在设计模型或者在编写 SQL 的时候需要充分发挥分布式数据库的能力。现在腾讯云数据库已经建立了一个相对成熟的培训体系,包括初级、中级、高级人才培训认证。针对不同的合作伙伴的数据库培训认证,都可以出腾讯的官方认证。
腾讯云副总裁李纲总结说,“免费版的目的,总的来说,就是带动上下游一起去做整体的生态扩展,类似于开源的模式。但是今天大家都用开源模式的情况下,做一个简单的开源已经不能够真正将现在的国产化市场带动起来。因为在今天的国产化市场,并不是做了开源,马上就能吸收到很多的使用者和服务商。当然我们还有商业化平台的策略,对于 ISV 的扶持、对于服务商的扶持策略,免费版相比我们其他政策来说,是一个更好的做生态的模式。”
可以看到,在国产数据库探索中,TDSQL 正好踩住了云计算的发展趋势,而更具有突破性意义的是,TDSQL 刚好对准了金融场景这个“最难啃的硬骨头”。用潘安群的话来说,TDSQL 目标定为金融领域也是一种机缘巧合,更是一种更高的技术挑战。
金融场景下,故障半小时就是非常严重的事故,延迟 1 秒钟可能就能造成很大的经济收益上的损失。所以金融行业也是对数据库要求最高的行业:要求数据强一致、稳定可靠,以及 7*24 小时的系统高可用性,并且必须做到当系统遇到故障可以快速自动切换、自动恢复,保持 99.999% 的金融级高可用性。
腾讯云数据库团队最开始也没有想到 TDSQL 的未来定位是“一个金融级的数据库”,只是恰好 2014 年又遇到了微众银行做技术选型,微众银行希望替换掉以 Oracle 为代表传统集中式数据库。因为微众银行的改造,TDSQL 成为了业界第一个使用到银行核心系统的国产数据库。此前腾讯云数据库技术负责人潘安群告诉 InfoQ,“我们此前有些保守,业务有什么需求,我们就做什么满足他的需求,但 2014 年之后我们觉得要有更高的挑战,我们希望技术的选择、探索能够走在业务的前面。”
如今,在大的信创背景下,一些甲方经历过 Oracle 或者 DB2“敲竹杠”似的行为之后,就会倒逼着自己换掉 Oracle 数据库。微众的案例中,分布式的架构可以把成本(客单价)控制得非常低,仅为 3.5 元 / 年,仅为国内其它银行的 1/10,这也就引起了其他银行的关注。在这之后,TDSQL 又逐渐打造了几个标杆案例:
国产替代,是一个需要磨合并逐渐产生信任的过程。银行面对的是非常严格的监管,因此“一路伴随着我们的,是客户半信半疑的态度”,李纲回忆整个发展过程时感叹。
面对这样的挑战,在金融领域推广的路上,腾讯的策略是先从周边入手,逐渐推进到银行的核心交易系统,同时从“张家港”这样的区域性小银行逐渐推进到像“中国农业银行”、“中国银行”这样的大银行。另一方面是稳定踏实地和银行打好配合,拿中国农业银行项目为例,从 2016 年开始 TDSQL 就有一支稳定的团队一起战斗了五到六年的时间,反复做了 6 次 POC 测试评审,而且从来没有因为架构重组或人员离职导致跟厂商接触的人员发生变化。
“POC 就是赤身肉搏,进考场同一套考题考一遍,出了考场再自己提升,等下次还继续考。这给我们提出了比较高的要求,需要有长期的耐性,等真正拿到农行标的时候,其实银行对我们数据库已经非常了解并很有信心了。这是一个一路升级打怪的过程,不断攻克技术难关,拿下更多的标杆,从而让整个行业认可我们。”
腾讯云数据库团队取得的每一个成功,就如同给攻下的山头插上一面红旗。并不是每个银行都会通过一次又一次做 POC 验证的方式选择数据库,因此对于像华为、腾讯、阿里这样的数据库厂家来说,在相同领域内这样的红旗数量越多,对客户的说服力才越大。
腾讯云数据库团队为此制定了一个标杆打造计划。
第一个阶段,因为腾讯以互联网起家,之前主要是在互联网的场景里提供基础的数据库支撑。再往后有了云服务,公有云上面的客户也是一些泛互联网的用户,在这个过程中,TDSQL 得到了互联网高速发展海量业务的锻炼。
云原生的标杆客户包括拼多多、小红书、团油以及 Bilibili。TDSQL 在逐渐影响这些新兴的爆款业务和传统的互联网头部业务,能够给到大家云原生的体验,也会针对一些痛点比如频繁系统的架构调整、海量的数据存储和分析、应对洪峰等来定制服务。在过去一年里,腾讯公有云数据库的规模已经提升了 24 倍的规模,现在 TDSQL 希望做到云上云下的超融合,希望能在各种场景中把产品打磨得更好,这也是 TDSQL 的一个战略。
第二个阶段,是跟一些重大的政务项目进入到政务领域,比如第七次人口普查、数字广东、健康码、防疫小程序类似这些关系到国计民生的项目里。
第三个阶段,腾讯希望将 TDSQL 做成在金融行业里可以独立输出的产品。金融行业对数据库的依赖和对数据库的要求是最看重的,如今,TDSQL 在金融行业里已经树立了超过 20 个标杆案例。腾讯希望用未来三年到五年的时间,基于过去的经验和逐渐标准化的解决方案能力,助力 1000 家金融机构实现核心系统的转型,用 TDSQL 等国产化技术替换掉核心系统中的 Oracle 和 IBM 等数据库产品。规模化阶段难度是最大的,TDSQL 希望通过独立输出数据库产品实现产业再次升级。
TDSQL 取得的成绩也是众多国产数据库发展中的一个缩影。
技术演进的路上,过去我们屡次被人掐着脖子,数据库技术当属其中之一。
如今,经过无数技术人坚持不懈的努力,和始终不灭的信念,这种情况被得以改善,让我们可以打破银行核心系统只能用 Oracle 数据库的“潜规则”。国产化数据库在中国的各种场景下得以磨练,会比国外技术厂商更了解中国客户的需求,给以更多的时间和信任,相信国产数据库会走得更好。