腾讯云数据库,闯关18岁成人礼

2021-03-05

QQ浏览器截图20210224115324.png


如果说从0到1,考量是勇气;那么从1到N,则更大的决胜点则是“耐心”和“正确”。


作者|皮爷

出品|产业家


2014年,李纲主动找上了团队领导。


他想要让TDSQL参加微众银行的数据库选型。这是他想给TDSQL找到的第二个方向,即小步走出腾讯。


一个正式的介绍是,现在作为腾讯云副总裁的李纲带领的TDSQL是诞生在腾讯内部的分布式数据库,在过去近十年的时间里,它一直服务腾讯内部的海量业务,可谓是当时金融、社交、游戏等诸多腾讯产品的底层“定海神针”。


1614252380(1).jpg

2017年腾讯云TDSQL团队满十年工龄员工合影


但面对微众银行,李纲仍有压力。在当时,绝大部分银行的底层数据库架构都是集中式,用分布式数据库来搭建核心系统等同于“摸着石头过河”,抛开有可能会走的弯路不说,更多的是由于银行内外网分离,很多时候问题一旦产生,需要银行方面人员自己解决,这无疑给TDSQL团队的运维等配套能力提出了更高的要求。


无形的压力之下,没人敢掉以轻心。“当时不仅是感觉很惊奇,而且是胆战心惊。”腾讯云数据库技术负责人潘安群回忆道。


2014年底,TDSQL数据库管理系统正式投产微众银行核心系统。此时,其生产+容灾部署超过800个节点,数据库实例个数已达到2000+,整体数据规模已达到PB级。


这也意味着,第一个分布式数据库银行正式诞生。对此时的李纲和TDSQL而言,这是腾讯云数据库的第一个交付式产品,也是它打开的最重要的一扇门。


对不少人而言,数据库是颇为晦涩难懂的名词,它的容灾,它的同城多活,它的IDC……都是让市场和外界天然产生距离感的字眼。但也恰是这样的一个个名词,共同构成了互联网的底层仓库,基于此,人们可以在互联网随意浏览,存储,抑或是满足自己的搜索需求。


而在偌大的腾讯,这样一个名词,则是代表着一群团队,他们从0开始,不断摸索,用一群人的力量为腾讯构建起最坚实的底层堡垒。在过去十几年的时间里,腾讯云数据库是他们统一的代号,在每一次如微众银行的大动作背后,都填充着无数串联起来的小故事,它们构成着真正的腾讯云数据库底层精神。


去年12月24日,腾讯云正式宣布其数据库品牌TDSQL全新升级。TDSQL、TBase、CynosDB三大产品线统一升级为“腾讯云企业级分布式数据库TDSQL”。


微信图片_20210107171003.png


这其中传导出来的信号是,腾讯云数据库正式度过“18岁成人礼”。以愈加完整、独立的姿态呈现在外界面前。


没人知道从门里面走到外面,需要面对多少困难,走过多少弯路。但可以肯定的是,在腾讯云数据库成长的这十几年里,他们穿过的门,走过的路,绝不止微众银行一个。


一些细节需要被记录,一些温度需要被重新感知。TDSQL,仍在重新出发。


一、“自己的事情自己做”


“最开始腾讯用的也是Oracle,不是核心系统,而是数据分析和财务系统。”李纲表示。


尽管从现在来看,如Oracle的集中式数据库存在边界感明确、无法无限扩容的问题,但就当时来看,集中式数据库足够稳定,且不容易出错,对大部分企业来说,都是不错的选择。


不过,这个队列中,并不包含腾讯。


回看腾讯的历史,从2002年之后的几年时间里,腾讯拥有了自己独特的商业模式,以QQ秀为代表的一系列付费业务成为腾讯的最大利润来源,红钻、黄钻等多元化的变现体系逐步健全。


而此时李纲他们面临的问题就是,业务增长太快,具体的表现是在QQ空间。


“当时每天早上我们都在看数字报表,数据实在增长的太快了。”2007年,在李纲和团队就发现了这个问题,根据他们的预测,以这样的用户增长量,有“明显边界”的集中式数据库根本没办法承载。


他们需要的,必须是一款具备无限扩容,能够承载其腾讯现在以及接下来十年、二十年不断裂变的业务体量的数据库。而这个数据库,必须自研。


“如果说2007年之前我们更多的是使用者的姿态,那么在这之后我们开始真正自研数据库。”


值得一提的是,彼时的腾讯CTO张志东曾对数据库团队有过一个要求,即要求他们做到“账户可以像银行一样一笔都不差,一分都不差。”


这并不是件容易的事。根据李纲和团队的估算,自研数据库必须要满足三个条件:首先是可以无限水平扩展,即能够根据业务进行延伸;其次是高一致,数据不能出任何错乱;最后是高可靠,即必须保证不能丢失数据。


方向锚定,团队迅速开始行动。


2009年,腾讯内部出现两个大动作。一是“全民偷菜”热潮兴起,QQ空间的用户量迅速飙升至10、20倍,二是腾讯宣布推出开放平台,允许外部开发者接入。实际上,后者也恰可以看作是腾讯云的最初雏形。


这些动作给数据库团队提出了新的挑战。以后者为例,在无数开发者接入的过程中,数据库作为支撑平台,其运转逻辑不再是仅面向腾讯内业务,更多的是保障外部客户的平稳运转。


对此,潘安群有一个形象的描述,“之前内部更像一个‘大胖子业务’,即体量非常大,动辄50w,100w不等,但现在外部客户都可以算是一些中长尾的客户,体量不大。”


这也就意味着,从现在开始,数据库团队必须基于“大胖子业务”,做进一步的拆解运维,为中小企业开发者建立一套适配的解决方案,进而保证用户体验。


从长远角度来看,开放平台对腾讯云数据库的意义在于,其帮助腾讯云数据库真正做到接地气般的“事无巨细”,“这个平台之后,公司内所有只要和用户成长值也好,积分也好等等,都变成了一个通用的能力。”


一个形象的比喻是,腾讯内部数以万亿计的实战场景,也恰是其多个技术底层的练兵场。战略指导业务推进,业务驱动技术迭代,技术反哺战略升级。


随之而来的是微信支付、微信春晚红包、腾讯游戏……每一个真刀实枪的战斗背后,都在不断为腾讯云数据库的底层能力加码。


一个细节是,自2007年开始,腾讯云数据库就开始建立云账户,即而随着内部和外部业务的不断加入,云账户的体量在几年时间里实现肉眼可见的飙升。


但在李纲和团队的心里,腾讯云数据库能做到的,远不止这些。


二、第一站,微众银行


2013年,李纲和微众银行CTO有过一次面对面交流,对方向李纲表达了微众银行的技术诉求,即微众银行将采用普惠金融的模式,通过低成本的方式来服务每个客户。


这与李纲对腾讯云数据库未来发展方向的预测不谋而合。


实际上,这也恰对应了腾讯云数据库分布式架构的定位。即从整体来看,相较于集中式数据库,分布式数据库最终能够做到低成本管理。“微众银行日均每个账户的管理成本是国内的十分之一。”腾讯云数据库高级工程师张文告诉我们。


但在已知的成本之外,令李纲和团队头疼的是方向上的心惊胆战。“当时真的是摸着石头过河,一步一步趟出来的。”


潘安群同样深有感触。在他的印象里,第一次接触微众银行同事们的时候,双方几乎谈了一下午,最终的讨论结果是“他们觉得我们根本不懂银行。”


事实确实如此,尽管李纲和团队对自家的数据库技术非常有信心,但面对真实的银行架构,其强一致性,可用性的标准完全不同。如果说之前是演习保证不出错,那么这次则是荷枪实弹地上战场。错误不能,更不被允许。


在潘安群的回忆里,当时一个微众银行的负责人告诉他们,“先不要说你们的性能有多好,如果出问题半个小时,我们CTO就要去给领导做报告。”不论是从技术保障,还是运维服务,李纲和团队都必须做到万无一失。


1614252650(1).png


2014年底,微众银行核心系统正式投产,其承载了微众银行数百个核心系统,承载全行所有OLTP业务。而截至目前,微众银行基于TDSQL搭建的分布式银行核心系统已成功服务超过2.5亿客户,实现年均日交易3.6亿笔,单日交易峰值近6亿笔,最高TPS达到10 万+,为微粒贷、微业贷等业务的数百个核心系统提供着坚实的底层支撑。


“微众银行是腾讯云数据库的一个里程碑。”李纲表示。实际上,从长远来看,作为腾讯云数据库的第一款交付性产品,它不仅影响了腾讯云数据库未来的业务走向,更串联起了腾讯的金融云产业战略。


2014年前后,腾讯正式推出金融云。在整个微众银行的搭建过程中,云、TEG、微众银行等多方协同作战。


客观来看,微众银行不仅是腾讯云数据库的标杆案例,也更是银行界的IT分布式架构标杆。一个观察是,尽管国内将分布式数据库作为核心系统的银行屈指可数,但越来越多的银行开始从外围系统入手,探索分布式架构的模式。


2017年,微众银行每个账户的运营成本进一步降至平均6元,仅为国内其它银行的1/10,相比国际银行则更低,只有其成本的2%至5%;在2018年,则将每一个账户的科技运维成本降至仅为3.6元/年。


不过,在当时,李纲和团队并没有执着这一个案例点,他们正在思考一件更重要的事:腾讯云数据库未来该怎么走?


“在这之前,我们可能是满足业务的需求就可以,但在这之后,我们想走的靠前一点,走在业务前面。”潘安群表示。


新方向的背后是腾讯云数据库对自身的重新定位。即由内生转外生,代表从腾讯真正走出来。


李纲和团队有底气。在过往的几年时间里,他们除了积攒了丰富的技术实力,更具备“腾讯式”的服务心态和模式,一整套通用适配的数据库模式早已经摸得炉火纯青。


腾讯云数据库正式走出“象牙塔”。


三、腾讯云数据库,走出来


2018年,张文接到一个任务。他将代表腾讯云数据库赶赴张家港银行,为其介绍和解决分布式数据库TDSQL的实际应用落地。


“原本计划就呆两三天,最后待了一个月。”他回忆道。


对此时的张家港银行而言,一件大事正在发生——进行银行核心系统的改造。在过去的一段时间里,张家港银行已经在全国范围内进行了数据库选型,最终他们把目光投向了TDSQL。


实际上,早在2018年早些时候,TDSQL数据库就已经服务张家港银行,应用在水电费结算系统。“当时我们想的是,和传统银行合作,要做就要做到最好,把握每一次机会。”张文说。


而这次从配套系统到核心系统,可以理解为是TDSQL的“顺利转正”。


实际上,在决定被证实采纳之前,张家港银行内部也进行了“赛马”。以TDSQL代表的分布式数据库和另一套集中式数据库进行了赛马,从性能、可用性、成本等方面做综合考量,TDSQL最终胜出。


但压力自然可想而知。一个大的背景是,张家港银行是全国首个将核心系统放到分布式数据库的传统银行,而核心系统则是银行的重中之重,一旦出现问题很容易遭到监管问责。


准备工作必须要做足。“前4到6个月的时间,我们一直在做各种预案。”张文告诉我们,这样做的意义有两点,一是给监管和行方充足的信心保证,二是在核心改造工作开始前,真正做到万无一失。


把时间线拉长来看,从TDSQL“转正”到最终张家港银行上线,共计历时十个月,而其中大部分时间则是用在前期方案阶段。


2019年8月18日下午6点,张家港银行核心系统改造工作正式结束。


老核心100TPS的处理能力,张家港新核心系统可以达到6200TPS。在性能方面,高频账户类交易耗时在300毫秒之内,查询类交易耗时在100毫秒之内,20秒内可以完成1万笔批量代发代扣业务,日终跑批耗时17分钟,存贷款结息耗时16分钟,相比老核心日终批处理耗时60分钟、存贷款结息耗时180分钟有着质的变化。


与此同时,成本更是被极大优化。一个可以比对的数据是,集中式数据库综合硬件成本估算在4000—5000万,而张家港银行则仅为1000万,降低了近75%。


但张文和团队仍然保持高度警惕。“在整个上线的8月份,我们还是一直有专门的人看守。”


而此刻,在腾讯云数据库内部,和张文同样冲刺跑步的,还有王辉。只不过和张文的“告一段落”相比,这时的王辉和团队正干的热火朝天。


他们正在参与的项目是平安银行。


“平安银行的科技能力在全国都算是名列前茅,所以他们本身对合作对象的能力要求非常高。”王辉回忆道。高要求也就意味着不断磨合,就时间刻度来看,平安银行所用时间几乎是张家港银行的三倍。


实际上,对于TDSQL,李中原和团队并不是一开始就认可。在他的印象里,仅数据库选取这个环节,他和团队成员就耗时3、4个月。


他是平安银行分布式数据库技术负责人,也是平安银行信用卡A+新核心系统搭建的一线参与者。“我们把各个数据,做成一系列可量化的指标,最终还是决定选用TDSQL数据库。”


客观来说,不论是从规模,还是其银行本身的数据库能力,平安银行确实都有足够自信的资本。但作为平安集团的一部分,它的每项决策都必须要上报平安集团的IT评审中心。一来一回,两者的前期磨合用时颇久。


但问题仍不可避免。“其中有一次要升级系统,在此之前已经做了通知不能进行压力测试,结果行方某个环节进行了压力测试,最终双方经过一起排查检查出问题所在。”王辉表示。


在这次之后,双方达成了一个默契——“15分钟原则”,即问题发生后双方各自检查15分钟,再一起交流、沟通。


可以解读为,尽管腾讯云分布式数据库技术非常成熟,但双方长达数月的磨合则是给腾讯云数据库提出了新的要求。不论是底层逻辑,还是服务维度。


如腾讯云数据库专门的集中管控平台“赤兔”,在合作期间,为满足客户需求,研发人员还专门对“赤兔”进行升级,对其运维功能做了更大强度的开发,如满足批量开发等等。


2020年10月31日凌晨5时,平安银行信用卡A+新核心系统成功上线,其新系统能保障10亿级交易账户,并可实现10亿级的海量日交易量,真正为平安集团接下来的“双11”大战构建出铜墙铁壁。


“上线前的头两周和上线之后的后两周,我们是24小时响应的,投产的那三天我们是24小时大概有6个人在现场。”王辉回忆道。在他看来,给客户的感觉就应该是产研包括腾讯云团队都在全程保驾护航。


从更大的角度来看,如果说2014年微众银行向腾讯云数据库给出了一个模糊的未来方向,那么从2014年到2020年的六年时间里,经由张家港银行和平安银行等外部项目的“磨合”,李纲和团队则是一步步把这个方向夯实,彻底搭建起宽阔的交付式产品的康庄大道。


微信图片_20210224114653.jpg


值得一提的是,也恰是在这段时间,腾讯云开始招兵买马,内部聚拢来自各个事业线的产业人才,搭建起腾讯云的底盘模型。


而腾讯云数据库,则恰是腾讯产业线出击的最强保障。换句话说,在所有腾讯SaaS和PaaS层中,此刻的它,已然是一款完全具备“走出腾讯”能力的产品。


新的一页马上掀开。


四、拳头握紧


2020年12月24日,腾讯云正式宣布数据库品牌TDSQL全新升级。


原有的TDSQL、TBase、CynosDB三大产品线将统一升级为“腾讯云企业级分布式数据库TDSQL”,升级后的腾讯云TDSQL将涵盖分布式、分析型、云原生等多引擎融合的完整数据库产品体系。


可以这样解读,如果说之前TDSQL、TBase、CynosDB是五根手指分别出击,那么如今腾讯云数据库要做的则是向外界输出一个统一的产品界面。握紧拳头,力合一处。


微信图片_20210225204554.jpg

腾讯计费平台部员工合影


在过去的十年里,因为腾讯内部不同的场景需求和外部不同产业客户的服务模式,在腾讯数据库内部有三款产品分列而立:面向强交易的TDSQL数据库、共享存储云原生的数据库CynosDB、以及强分析数据库TBase。


尽管分列而行在一定阶段保证了数据库的纵向延伸,但不同名称与功能给外部客户带来的困扰同样在慢慢滋生。“我们更希望客户、包括行业对腾讯云的数据库体系能有一个更清晰的认知。”李纲表示。


根据他回忆,因为三个数据库名称和自身特点本身就没有吻合的匹配度,甚至有不少客户会产生“该选用哪个数据库”的困惑。


整合势在必行。


李纲表示,在他看来,对外是品牌升级,对内部更精准的描述是融合。三个数据库产品进行能力打散,重新组合,形成了数据库底层能力加产品的两层体系架构,不同应用场景的引擎纳入统一体系进行管理。


更清晰的产品分布是,现在腾讯云数据库TDSQL有金融级分布式产品序列TDSQL、单体实例可支撑百T百万QPS的云原生序列TDSQL-C、可应用于百P级复杂场景的分析型序列TDSQL-A等,辅以能够融合公有云与私有云,连接传统IDC与云数据库的数据库SaaS工具DBbridge、软硬一体的数据库一体机,可兼顾用户各方面需求。


显然,从另一个层面说,这次整合更是将云原生、超融合等多个长板集于一体,打造更高质量的交付模式。


微信图片_20210224114408.jpg


形象的比喻是,腾讯云数据库在做“减法”,也在做“加法”。减法是通过对团队的合并以及底层数据库通用模块的打散重组,整合同类项,摘除冗杂,化繁为简;而加法则是精简之后的服务能力和响应效率的直线拔高。


从时间刻度来看,腾讯云数据库越来越“外向”,也越来越内敛。经由微众银行、张家港银行、平安银行等多个项目的打磨,这个腾讯最强保障之一的技术层越发懂得自身的定位和打法,也更能明晰未来十年自己要走的路。


“我们现在思考的是如何让我们的应用开发和整个交付流程更加流畅,不像你吃第一口螃蟹那样那么吃力大家花大的精力去做。”谈及未来,李纲表示。


不难看出,这是腾讯云数据库给自己交出的一份“发展答卷”。这份答卷上誊写的不仅有过去十多年腾讯云数据库的技术自信,更多的则是与腾讯产业互联网战略协同发展的强大底气。


而事实上,它的整合对外信号也更昭示着一个新的事实,即腾讯的产业开放,并不单纯的集中在流量、资本,而是真真正正把无数从腾讯内部成长起来的能力,进一步凝合成SaaS、PaaS、技术平台的形式,做到全面To B。


这种对外服务模式则为企业带来的是自上而下贯穿式的进化。


“现在我们更多的是考虑让DBA(数据库管理员)能更轻松的管理数据库界面,进而减少企业在这方面投入的人力,或者使DBA更多的关注业务,做真正的业务架构师。”腾讯云数据库总经理林晓斌表示。


战略上三方整合,统一出口;细节上小步快跑,查漏补缺。2020年,腾讯云数据库正式完成“成人礼”。


五、“做正确的选择”


在采访的过程中,李纲提到一个有意思的片段,“前段时间我们和微众银行的同事聚餐,大家发现几年下来还是那些人,都没有变。”


他是腾讯云数据库的“老人”,但在他的印象里,过去十几年的时间里,腾讯云数据库的主场团队几乎都还在,团队一直保持非常稳定的状态。


事实上,也恰是这种稳定,才有了放大之后的腾讯云数据库,以及藏于无数项目背后的快速迭代,以及在每一个方向点选择上的坚定一致。


把时间线拉长,不论是早期腾讯云数据库的自研,抑或是微众银行的“毛遂自荐”,还是张家港银行、平安银行的争分夺秒,在每一个现在看来可以算是节点的事件上,都有无数必须的考量。站在每一个节点上,关于技术,关于战略,也更关于腾讯。


对于这些年的发展,李跃森在采访中说过一句话,“腾讯云数据库这么多年,可以算是一直没走偏路。”他是腾讯云数据库技术总监,也更是无数重大项目的亲历者。


如果再凝结几个字,或可以解读为“做正确的选择”。基于人才的正向增益,基于战略的正向作用,基于未来的良性判断。


实际上,在腾讯内部,对于技术的发展一直是持包容和鼓励态度,如现在的数据库,再如如今的腾讯云。而这也恰保障了底层技术能够具备更强的自我启动性和更大的发展自由度。


谨慎试错,验证方向,再大举进军。这恰是腾讯最强大、也是别人无法复制的独特打法。


对此,李纲有一个形象的比喻,“未来的发展方向就像是两根筷子,一根长一些,一根短一些,我们会给短一些的那根更大包容和耐心,绝不会说是只选择一个方向。”


微信图片_20210224114318.jpg


如果说从0到1,更多的考量是勇气;那么从1到N,则更大的决胜点恰是“耐心”和“正确”。


一个总结是,在出现10多年的时间里,腾讯云数据库具备一个腾讯底部技术层应有的特点,即从业务发展驱动技术发展,到技术探索驱动业务迭代。


从内生到外延,从单纯的保障到“超纲”服务,腾讯云数据库尽管一直在摸黑前进,但用潘安群的话就是,“十多年来从未走偏”。


去年疫情期间,腾讯会议40天更新14个版本,8天紧急扩容超过10万台云主机,投入的计算资源超100万核。疫情复工期间,每周都有数万家企业和政府相关机构使用腾讯会议复工复产,云签约、云招标、云面试、云培训等多个云上协同场景更是时刻待机。


外界看到了一个不一样的腾讯,也更看到了一个强大的腾讯云数据库。


人们驱动企业的正向发展,企业的正向发展反哺个人蓝图。腾讯云数据库十多年的发展过程,恰印证着这个牢不可破的理论。


但在时代的漩涡里做正确的选择,从来都不是一件容易的事。


尽管摸爬滚打,但如今我们目之所及的仍是一个和最开始一样的,那个蓬勃向上,昂首挺胸的腾讯云数据库。


从这个角度看,国产数据库的未来,腾讯云数据库的未来,值得我们期待。


分享