小孩反复发烧怎么办

首页 » 常识 » 问答 » 辛秘谈谈国产金融技术的核武器试爆
TUhjnbcbe - 2025/1/5 22:35:00

史中

如果全中国的火车、汽车、船舶在一夜之间消失,会发生什么?

“捆绑Play”的猪猪牛牛羊羊们全都去不了屠宰场,衣物、药品也只能堆在工厂,你家门口的超市会被瞬间抢购一空,接下来饥荒和疾病会让这片土地成为炼狱。

你可能会摸摸中哥的额头:是不是发烧了?交通工具们又不是孙猴子的毫毛变的,怎么可能凭空消失?

你说得对。但真相就像身后的鬼,回首之间,才让人脊背发凉。实际上,就在一个和交通极其相似的领域,这种“突然死亡”的威胁却千真万确地存在着。

这就是我们今天故事的主角——银行。

对于国家来说,银行和交通都是像心脏一样重要的器官:一个是把物资运到需要的地方,一个是把钱运到需要的地方。心跳哪怕停一秒,人就得进ICU;银行停一秒,国民经济就要休克。

然而就在此刻,中国99%的银行核心数据库,都是由美国公司提供的,其中最鼎鼎大名的就是甲骨文的Oracle数据库。甲骨文有多厉害?凭借在高端数据库的垄断地位,甲骨文的创始人埃里森可是常年盘踞“《服不服》富豪榜”前十位的。其中,中国几千家银行给人家贡献的利润可谓功不可没。

甲骨文联合创始人拉里·埃里森:别,别停,用美金砸我吧,我受得住!

为啥我们非要抱着美国的数据库喊“真香”?很简单,技术门槛太高,中国人造不出来。

然而危险正在其中:物理世界的汽车火车不可能瞬间消失,但是数字软件的授权,却可以在一秒钟之内全部收回。

如果外国公司突然宣布收回授权,限定所有中国企业90天内停用他们的数据库系统,后果简直不堪设想。就像你的“亲密战友”突然反目掐住你的喉咙,你根本没有后手可言。

坐在我对面,腾讯数据库架构师张文严肃地说。

年原子弹横空出世的故事告诉我们,尊严来自说“不”的底气。就在最近几年,腾讯、阿里、百度、蚂蚁金服、华为,还有一众新老国产软件厂牌纷纷宣布自己掌握了金融级数据库的能力。仿佛突然从身后掏出一把火枪,大声喊出:大人,时代变了!

所有传统银行为这一刻等待了太久太久,它们纷纷流着泪点赞,然后,把自己的核心数据库仍然跑在Oracle上。。。

好吧,这其实一点儿都不怪银行,毕竟储户的每一分钱都不是儿戏,假设因为采用了技术不成熟的国产数据库而把你的钱弄丢了,你会同意吗?此时,比热血更重要的恰恰是冷静。国产数据库把自己夸得可上九天揽月可下五洋捉鳖,但它到底能不能替代传统核心,还需要一次像罗布泊试爆原子弹那样实打实的验证。

于是,全国人民都屏气凝神地围观:这第一个吃“国产数据库”螃蟹的传统银行究竟是谁?它吃的,又究竟是谁家的螃蟹?

一、

“原子弹”就绪

长江奔流入海,最后的拐弯会路过一个美丽的城镇,张家港。

年,同学们吸着鼻涕在冬天的操场上跑圈,学校的院墙上都刷着新鲜的大字:“团结拼搏负重奋进自加压力敢于争先”。这十六个字正是当时国家号召全国人民学习的“张家港精神”。

年的张家港

在这些孩子中,有一个小男孩,叫做卢丽欢。

当时的他也许无法想到,20年以后,自己将会亲自见证和参与中国银行业的“原子弹爆炸”,成为漫长时光里,张家港精神的一行注脚。

年,29岁的卢丽欢决定辞去南京的工作,返回故乡张家港,进入明星企业张家港行。

说张家港行是明星,不是无来由的吹捧。张家港行的全称是“张家港农村商业银行”,属于我们俗称的“农商行”。农商行的前身是农村信用社,一般来说就是服务于周边的城乡人口和当地经济,听上去毫不性感。

但是,张家港行却很逆天,它是中国历史上第一个农村商业银行。他们的历史是一部浸满改革开放欢笑和泪水的缩影,故事太长,此处暂时不表。我想说的是,“吃螃蟹”这件事儿,在张家港行是有传统的。

卢丽欢

年,卢丽欢任张家港行科技部数据库团队负责人。

他本以为自己将面对一汪静美的湖水,没想到,面前却是一团绕缠绕的死结。。。

问题就出在数据库上。张家港行那时的核心数据库是美国的Sybase,已经用了十四年,这就像一颗老迈的心脏,日常业务还算勉强应付,但是一旦遇到好多人同时来访问,“心脏病”就要犯了。。。

一到年底银行业务高峰期,这CPU使用率就冲上去,I/O吞吐也直接打满,有时候跑着跑着,核心数据库突然就卡住一秒,我的小心脏啊,也跟着停一秒。。。

卢丽欢吐槽。

这不是闹着玩的,要是核心数据库哪天真的宕机,让老百姓取不出来钱,那一切都晚了。

张家港农商行副行长沙健键和张家港行的科技部总经理周明海也早就忧心忡忡,让卢丽欢和同事们赶紧做一个预算,准备尽快升级核心数据库系统。

卢丽欢发愁,根据当时行业“潜规则”,要换数据库,肯定是换甲骨文的Oracle数据库。但是基于Oracle数据库的一套软硬件核心就要大几千万,张家港行虽然在农商行里属于土豪级别,但面对这么大的成本支出,也有点眼晕。

果然,最终核准的预算,是一个紧紧巴巴的数字,“需要跟Oracle很大力度商业谈判,才有可能拿下来。”可万一谈不下来,这事儿究竟要怎么搞呢?卢丽欢心里一直纠结。

上天总是猝不及防地给你开扇窗。转眼过了年春节,事情突然出现了变化。

开春之后,腾讯的同学在一次技术交流会议上遇到了张家港行的科技部同事们,听到他们的困扰,马上安利了一套鹅厂的国产金融级数据库——TDSQL。

TDSQL听上去可逆天了,不仅计算性能和Oracle不相上下,还采用了扩展性极强的分布式架构,最重要的是,价格比国外的数据库要便宜一大大大大截!

这TDSQL口气不小,到底是何方神圣呢?

实际上,TDSQL从新世纪初的Q币时代就开始支持腾讯内部的“计费”业务,只是腾讯一贯保守,“丑媳妇”没让见公婆——十几年间在腾讯内部反复磨练。

当年有种叫“Q币卡”的东西

不过就在最近一两年,腾讯确信TDSQL神功已成,可以服务银行这样最顶尖的金融机构,决定让TDSQL“出山”。说白了,他们也正在寻找一个态度开放,敢于承担历史责任的银行,一起搞一次国产数据库的“核武器试爆”。

周明海眼前一亮。没想到“首个国产核心数据库”的机会来得这么突然,中国银行业的历史即将翻到下一页,而这个起爆核武器的按钮,恰恰落在张家港行手中。

他心潮涌动。

没想到,国产数据库这个计划提交到行领导大会上,引起了轩然大波。

很多领导都是金融背景出身,并不钻研技术,他们的观点也很中肯:金融以稳定为先,不要盲目创新,全中国的传统银行,有一个算一个,不都老老实实用着Oracle吗?你第一个吃螃蟹,吃出问题,谁来负责任?

这样的会开了不下十轮,大家吵到最后,只有把目光投向行长和董事长。

董事长季颖沉默很久,开口说道:“我们张家港精神,有一句就叫做‘敢于争先’,这么多年张家港在全国百强县里面排在前列,不正是因为我们敢创新么。我觉得还是要尝试新技术。”

张家港行董事长季颖

行长杨满平也说:“没错,应该投入费用和资源鼓励创新!不过,腾讯虽然名声很大,我们也不能盲目相信。一下子就替换掉核心系统确实太冒险,不如先从非核心系统开始替换,摸着石头过河!”

周明海和卢丽欢大松了一口气,心想这事儿可以大胆干了。

你可能会问,之前说的不都是“银行核心系统”吗?行长说的“非核心系统”是个啥?

这里稍微科普一下。每家银行都是由几十甚至上百个系统组成的,然而“核心系统”却只有一个——账户交易系统(就是记录你账户里有多少钱的那个系统)。除此之外,还有互联网银行、贷款系统、企业客户信息系统等等非核心系统。“非核心系统”就像树枝,要连通“核心系统”这个树干,才能完成任务。

最终张家港行研究决定,先对“企业客户信息系统”(ECIF)下手。

张家港银行是这样子

看门前这个梅花鹿多帅气

说干就干,年10月,张家港行企业客户信息系统(ECIF)的数据库被顺利替换为TDSQL,一切平稳。

你可能会说,这不挺简单的么。

简单,恰恰因为这是“非核心系统”。

中哥不妨用足球给你打个比方:非核心系统就像日常训练,而核心系统环境就像是“世界杯”。而把普通数据库比作足球爱好者,金融级数据库就好比是梅西。

在日常训练的情况下把球带到对方球门,爱好者和梅西都可以做到,甚至看不出区别。但是,世界杯比赛上,对面五个世界级后卫向你冲过来的情况下,足球爱好者马上就跪了,而梅西依然能把球带到对方球门。

说回银行。ECIF系统的日常是展现用户信息,几乎不会遇到超高频交易和极端情况。它就像“日常训练”的场景,TDSQL能在这个环境下丝滑运行,还远不值得庆祝。

《国产数据库的原子弹爆炸》这本英雄史诗,你才仅仅翻开了《序章》。

截图来自电影

《我和我的祖国》

二、

“皇位争夺”计划

时间不等人,就在ECIF系统完成改造的第二天,张家港行核心数据库的改造就被提上了日程。

故事讲到这里,要请出一位新朋友——长亮科技。

长亮科技可是大名鼎鼎(不好意思,今天出场的都是明星)。他们是专门为金融行业提供解决方案的企业。这么说有点抽象,举个例子吧:如果把张家港行比作想装修房子的房东,腾讯的TDSQL数据库就是建材,那么长亮科技就是施工队,他们熟悉各种金融领域的软件和架构的特性,拥有很多经验丰富的老湿傅,负责把各种金融系统完整地部署、交付给银行。

这次银行核心系统“换心”的任务,就准备交给长亮科技来完成。

行领导经过慎重讨论,让项目组拿出了一个万无一失的“皇位争夺”计划:

同时建造一个TDSQL数据库和一个Oracle数据库,二者互为备份,到投产前再决定谁来“登基”成为主数据库。但是,无论是TDSQL还是Oracle,都要满足一个硬指标:至少支持每秒次的交易,术语叫做TPS。

TPS是个什么概念呢?在改造之前,张家港行的旧核心数据库大概能够支持TPS。也就是说,新数据库的性能要比过去提高五倍,这是个挺吓人的目标。

旌旗招展,大军立列两旁,“中国太子”TDSQL和“美国太子”Oracle争夺皇位的宫斗大戏就此开始。

老板,选我啊!!!

在卢丽欢心里,当然是拥护“中国太子”的。

因为就在年夏天,他专门去“施工队”长亮科技南京研发中心做过一次测试。长亮的同事们当着他的面,在配置很差的机器上,用TDSQL做到了TPS。大致一算,如果换成顶级机器,应该轻松做到三倍性能,也就是TPS。

哦忘记介绍了,长亮科技当时负责张家港改造项目的总工程师叫做李坤圣。

话说,李坤圣可是金融系统架构的老炮儿,曾经带队帮助无数银行升级过他们的系统。对于横空出世的国产数据库TDSQL,李坤圣第一时间就做过细致的专业研究,他的结论是:TDSQL代替Oracle从技术上看是绝对没问题的。听到这话,卢丽欢又放心了很多。

李坤圣

说干就干,年10月,李坤圣带着团队进驻张家港行机房。

把TDSQL数据库灌入服务器,直接点亮,随即第一版测试成绩出来了:TPS。只有目标成绩的十五分之一。。。

卢丽欢跟李坤圣说,你过来我保证不打死你。

这下热闹了,卢丽欢拉着李坤圣要说法,长亮科技南京研发中心的人也来了,腾讯TDSQL数据库的架构师张文也从深圳紧急打飞机到了张家港。不解决问题,谁也别想离开张家港!

本来大家满怀期待支持国产技术,没想到这一盆冷水让领导们心弦一紧。

被各大领导“按在地上摩擦”的周明海据理力争,他劝大家冷静:“数据库是要进行深度优化,才能跑起来的。现在刚刚部署进来,一行代码都没做优化,跑出这个极低性能,是可以理解的!!!”

于是,所有的压力都集中在了项目组的技术专家身上,他们满头大汗地鼓捣代码时,猛然回头一看,看到背后齐刷刷站了一排行领导,头顶的汗珠更鲜艳了。。。

技术人有一说一,问题肯定不在国产数据库本身上。当时我们一条条SQL语句去测试,排查问题究竟出在哪。几天以后我们突然发现了规律,原来是银行旧的数据表格设计中有个小特点,恰恰和TDSQL不匹配,只要调整一下表格的设计,TPS的表现就能瞬间回血一大格。

卢丽欢回忆起那时,仍然历历在目。

果然,经过两个礼拜的“生死优化”,TDSQL的性能直线突破了TPS,李坤圣和卢丽欢长舒一口气,如葛优般瘫在椅子上。行领导眼里的“杀气”渐渐消失,连专家们的午餐里都给加了两个鸡腿。。。

好险,TDSQL还没开始争夺皇位,就差点被父皇冤杀。。。。

三、

前世今生

话说,当时蹲在现场调试代码的人中,最为笃定的那一个,当属腾讯TDSQL的架构师张文。

这套数据库是腾讯研发的,张文比在场的所有人都更知道它的真正实力。

TDSQL最早可以追溯到年Q币诞生的时候。

你肯定知道,Q币虽然不是真钱,但它是腾讯世界内部的一般等价物。反正当时的CTO张志东的要求很简单:Q币的账户,不允许算错分毫。

但现实很残酷。当时的世界,能够一分钱都不算错的数据库,几乎只有Oracle为代表的顶级海外数据库厂商。

负责Q币数据库的同事觉得,跟老板申请个几千万经费买Oracle倒也不是不可以,但是凭什么我们自己做不出来呢?

这灵魂一问,才有了后来的一切故事。

伴随着“QQ秀”发布,平行世界缓缓启动。

从那时开始,腾讯的技术宅们就在开源数据库MySQL的基础上一点点改进、重写、大换血。漫长的时间涌动,终于几十万行代码如火山浮出海面——一套金融级的数据库TDSQL慢慢出现在所有人面前。

然而,Oracle数据库三十年的积累,并不是中国人靠热血一朝一夕就能赶上的。当时由于技术局限,年轻的TDSQL数据库可以不出错,但是却需要工程师密集地人肉维护,成本巨大。

故事的转折发生在年。

那年,技术大牛潘安群(现在TDSQL的负责人)加入腾讯。他记得很清楚,当时数据库团队提出一个听上去很怪异的目标:“安心喝咖啡”。

这是啥意思呢?就是说,TDSQL必须达到一个标准——各种突发情况下,例如断电、服务器故障,工程师依然可以一边喝咖啡,一边抖着腿看系统“自愈”。

核心团队的一张合影

前排右三就是潘安群

(低调到你都看不清)

这个“咖啡标准”看上去像个玩笑,但实际上是个超高的要求。

但潘安群就是那种喜欢“自虐”的人,为了磨练和验证技术,腾讯内部哪个业务要求精准,他就偏要争取自己的TDSQL去支持这个业务,明知山有虎偏向虎山行。。。

自虐的效果拔群。到了年,TDSQL就支持了腾讯内部90%的计费业务,托管了亿个账户,每天进行2.9亿笔交易,愣是一个数都不错,运维工程师手里的咖啡还一点儿都不抖。

从空中俯瞰,年至今的十几年时间里,TDSQL的性能悄悄地追赶Oracle,就如同中国的GDP慢慢追赶美国一样。如今可以拍着胸脯说:你很好,但我们也不差。

这里还要插播一个故事:

其实严格来说,如果算上所有类型的银行,张家港银行并不是第一个用国产数据库支撑核心系统的,这个殊荣属于中国第一家民营银行——微众银行。

早在年,微众银行成立时,就选用了TDSQL作为核心数据库。只不过微众的情况比较特殊:

其一,民营银行的天职就是探索新技术,为传统银行面临的问题寻找解决方案,所以历史决定了它必然会选择国产分数据库。其二,微众银行的股东之一是腾讯,在诸多国产金融数据库中选用自家的TDSQL也算是是天经地义。其三,微众银行是一家民营银行,没有线下网点,业务模式也和传统银行很不同。它能用国产数据库,并不完全证明传统银行也可以用。

但是,潘安群心里可是非常清楚:微众银行的每一行代码都完全符合银保监会的要求,TDSQL实际上已经完全具备了承担银行核心交易的能力,只不过,它需要一个更加盛大而有证明力的舞台。

这个舞台就是张家港行。

四、

新“心脏”

核心系统就绪,张家港行的新“心脏”造好了。

然而到了这一步,还离延安会师有十万八千里。接下来的任务是——上百个系统的联调测试。

啥叫联调测试?

换过心脏的浅友都知道,如果医生给一个人更换心脏,它不仅要保证这颗心脏本身很健康,还要保证这颗心脏可以和肝脾肺等等其他器官“兼容”,不产生排异反应。

显然,医生不能先把心脏移植进去,出了问题再研究对策。医生得保证移植手术之前,就提前做好所有器官之间的兼容测试。

张家港行的新核心系统总共有一千多个交易。把这一千多个交易测试全耗费的资源太大,没有必要。所以大家研究决定,至少要测试个最常用的交易。

于是卢丽欢和李坤圣带着各自人马,开始了一个交易一个交易的测试。

年3月,包括转账、取现等等个最高频的交易完成测试,各个交易的响应时间都在毫秒以内。张家港行用户的日常操作中,有95%的交易量都是由这个交易完成的。

年6月,个最高频的交易完成测试,这覆盖了张家港行98%的交易量。

专家们迈着碎步小心翼翼,一切都非常顺利。这期间,Oracle数据库已经准备就绪,领导根据情况,决定正式把TDSQL作为主数据库,Oracle数据库作为备份。省联社和监管机构经过调研,也认可了这个计划。

“登基大典”之前,太子之争才尘埃落定。

这是当时的工作照片

TD攻坚小分队向董事长及各位行领导汇报:“根据测试情况,按计划咱们的新系统8月份投产,情况良好!”季颖董事长经过商议,慎重考虑,最终拍板同意这个计划。

年7月,张家港行为数据库升级专门订的一批新的戴尔服务器到货,专家们把之前测试好的TDSQL系统布置在新机器上,进行最后一次封装测试。

看到系统跑在新硬件上的数据,卢丽欢和张文一起跪下了——测试好的系统一个代码都没改,在新机器上的响应时间一下子飙升到了毫秒,警报瞬间响起。

这种事情除了用“闹鬼”来形容,恐怕找不到更好的解释了。

距离最终上线日期还有二十几天,出了这么灵异的事情。卢丽欢死的心都有。

大家紧急开会,最牛的技术大咖关在机房一天,愣是没研究出来问题出在哪儿。

周明海心急如焚:“两天,最多只能给两天时间。如果找不到问题,我们只能承认国产数据库和服务器的配合上还有些未知问题。我去找领导承认错误,把Oracle重新换成主数据库。。。”

这些平日里叱咤风云的技术专家,此刻坐在机房里,像委屈的孩子,眼泪就这么在眼眶里打转。

多人,奋斗了整整一年,我们只是想证明中国人研究的数据库不比老外差,这有错吗?老天爷你为什么一直给我们期待,却在最后的关头突然掐灭所有人的希望,这到底是为什么??

越是危急时刻,越需要冷静。大牛们还是冷静下来,仔细拆解这毫秒。很快他们就发现,服务器本身的接口其实很空闲,那么时延很可能来自网络。赶快抓包分析,问题被定位在了数据库服务器的网络模块上。再细致定位,问题出在网卡上。

这时候,问题已经非常偏向于底层硬件了,大家的经验确实不足,这个时候,他们想到了TDSQL的研发公司腾讯。在腾讯肯定有很多熟悉底层内核的大牛。于是他们紧急联系腾讯,腾讯的一位内核老湿傅看了相关数据,提出了一个问题:“服务器是否有节能模式?”

顺着这个思路,他们果然在网上搜索到一篇英文文章,里面只有一个不起眼的段落提了一句:戴尔服务器为了节能,会在极端高并发的时候,自动开启网卡的省电模式。

他喵的,谁需要你省电啊,老子要的是性能!!!性能!!!!

所有人赶紧按照说明把服务器的省电模式关掉,卢丽欢颤抖地按下回车。毫秒,妥妥的。

这帮技术人的欢呼,差点把房顶给掀了。

此时,距离新核心上线的最后期限,只有三个礼拜了。

五、

起爆

时间来到了年8月,张家港行正式“换心”的日子迫在眉睫。

根据银保监会的规定,银行升级系统的上线是48小时。也就是说,卢丽欢、李坤圣和张文必须保证从银行暂停服务的那一秒开始,到数据库完全同步到新核心,所有服务重启的那一秒为止,中间不可以超过48小时,也就是秒。

为了这48小时,之前项目组已经做了7次演练。

张家港行的技术同事,加上长亮科技,腾讯的同事,还有一众外包团队,总共个人,包下了一栋楼,整整一年的努力,这次迁移只能成功,不能失败。

卢丽欢回忆。

8月16日,星期五。

当天晚上9:00,万家灯火。张家港行线下网点已经停业,网站和App双双挂出“系统升级”的公告,运行了十几年的核心系统缓缓熄火。

这艘巨型飞机,就这样飘荡在空中,早就写好的自动迁移程序被拉起,旧数据库里的每一个字节都被复制,一行行地写入中间层,之后再由中间层腾挪到新的数据库。

每写完一批,系统都会返回做自动校验,准确无误之后显示绿灯,再开启下一批的复制。

17日凌晨3:58,多家网点,所有用户的资料顺利转移到新数据库。

系统开始做最后的校验,把两个数据库用各种奇葩的姿势作比对。完整无误,绿灯亮起。

由于之前的迁移动作横跨了午夜,银行每天都要做的“日终结算”被拖到了下一天凌晨。17日凌晨,银行开始用新的数据库做16日的日终结算。一切完毕,伴随着深夜里电流和风扇的低鸣,系统的日期自动跳到17日。

迁移完毕,新核心缓缓启动。一切都如窗外破晓的晨曦一般安静。

17日下午1:00,

1
查看完整版本: 辛秘谈谈国产金融技术的核武器试爆