周冠宇的难题,国产数据库DBA们的困境
周日的F1日本大奖赛,又是一个毫无悬念的结果,无论铃鹿赛道设计的多么具有技术性,仍然没能阻挡维斯塔潘开着那辆地表最快的赛车继续独占鳌头,奔腾的RB20以及熟悉的那个Logo——Oracle,还有开始稳定获取积分的小红牛车队(我是不是该叫它MySQL),这个赛季又是红牛王朝的了。无独有偶,唯一的中国选手周冠宇,又因为赛车的问题不得不退赛,在让人失望这件事上,索伯车队总是让人不失望。要知道上一场和上上场刚因为不知道从哪开始吐槽的进站工作,让周冠宇连续徘徊在榜尾那几名。一定程度上,周冠宇当下的困境,又何尝不是国产数据库DBA们的未来。
遥遥领先的Oracle
Oracle在体育界最成功的一笔赞助,莫过于红牛车队了。在2021年收官的阿布扎比大奖赛最后一圈,维斯塔潘完成对汉密尔顿的反超,从此开启了F1的红牛王朝。红牛车队的RB16B、RB18、RB19、RB20连续问鼎冠军,这和Oracle的9i、10g、11g和12c(严格意义上来说,19c也是12c的一个版本)何其相似。
事实上,在过去几年里,很多国产数据库厂商的宣传口径中,总给人一种错觉,Oracle已经后继乏力。但是如果真的了解Oracle的发展历程就会知道,Oracle在最近几年里的创新数不胜数,甚至不少今天国产数据库公司吹上天的新内容,都是Oracle在11g或者12c就已经正式发布的。但是一方面Oracle在这些特性上的宣传没有那么激进,另一方面新版本的数据库成为主流生产版本尚需要一个极长的时间,十几年前的11g仍然还是非常高比例企业的主流生产版本,可见一斑。在绝对的稳定性可靠性优势面前,新特性都得往后靠。
而到了23c,新特性新功能奔涌而出,我们也看到Oracle也在调整自己的策略,在推陈出新这块加快了速度。至于这是好事还是坏事,把答案交给时间即可。毕竟任何新特性新功能从发布到大规模应用,都不是一朝一夕,提前五年十年都很正常。只是不知道,这一波新冒出来的特性,会不会给国产数据库厂商更多的启示或者压力。别的不说,易用性这件事请上,23c确实是有了改进,一些被人诟病许久的东西,比如insert一次只能一行的事情,终于做出的改善。可能现在唯一让人觉得还没有明确答案的,就是共有云。
而另一个赛场,维斯塔潘除了上一场澳大利亚大奖赛退赛,也没有给任何机会到法拉利或者迈凯伦,更别说拉跨到要提前放弃24和25赛季的梅奔。
参差不齐的国产厂商
说实话,在把国产数据库厂商比喻成索伯车队的时候,我还是犹豫了一下。毕竟索伯车队已经成立了30多年,而且实打实拿到过几个分站赛冠军,这些是目前绝大多数国产数据库所不具备的。但是从另一个角度,索伯车队在这个赛季表现出的拉跨下限,又和一些国产数据库厂商的底色何其相似。
本赛季前两场索伯进站创造了用分钟来计算的成就,让周冠宇无论怎么努力,都不可能再有什么成绩,而且这还不算是进展策略或者轮胎策略用的问题,就是肉眼可见的换胎螺丝。红牛能用1秒多,索伯就能用掉1分钟左右。这和我接触过的一些国产数据库厂商的技术人员颇有异曲同工之妙。在做一些测试或者互动的过程中,让我感到无法吐槽的,往往不是那些复杂特性或者性能不足,或者说根本没到它们的轮次。在基础功能的验证以及排查上,就已经无法继续下去。很多东西一问三不知,开个线上会议,入会的人滚雪球一样飙升,都是基操。到了后面我都怀疑我是陪着他们在搞联调,而不是在测试我自己的业务场景。
有的厂商会非常执着于让我用公有云版,无奈之下就造一些数据在公有云试试。你以为公有云版就比私有化部署强到哪里吗?并没有。公有云有公有云的不方便,有的时候我需要了解自己预期硬件的性能极限,但是公有云版是不可能测准的。还有就是公有云的测试注定了让我没法放心用真实的业务数据去测试,没有任何商业协议就把业务数据扔到云端,都不用合规找我,我自己就会陷入惴惴不安的境地。更别说这两年公有云的事故也不少,赶上昨天腾讯云那个级别的事故的时候,真的抓瞎。这是让我同时承担国产数据库厂商和云厂商的双重风险。
合着我避开了进站换胎,还得承担着变速箱故障的风险,这不就是铃鹿赛道周冠宇的困境吗。
困在时间里的DBA们
培养一个合格的F1赛车手要多少钱?理论上最少1亿人民币,实际上只多不少。周冠宇能站在这个最高级别的赛场和统领的维斯塔潘、勒克莱尔、皮雅斯特里一教高下,既有他超过同龄人的赛车天赋,也和他优渥的家境密不可分。
同样地,培养一个优秀的DBA,不仅仅需要优秀的天赋,也需要去经历很多生产环境的升级、迁移、排错甚至事故来不断强化自己的技能。这些东西的背后,都是企业真金白银的投入,上不封顶,只不过这些钱有的是公司投入到自己的DBA里,有的是甲方投入到乙方的DBA身上。一个巨大体量企业如果因为生产事故宕机给DBA带来宝贵的经验,这个成本可能谁都给不出一个准确数字。所以能够到达最高水平的DBA们,一路走来既有自己的天赋和汗水,又有着企业真实的投入。甚至有些经验是可遇不可求的,懂行的人都清楚。
然而很多经验真正遇到国产数据库的时候,又会出现完全不同的困境。虽然你在Oracle、SQLServer、DB2、MySQL、PostgreSQL这些经典数据库上积累的无数的经验,到了很多国产数据库各种反人类或者匪夷所思的设定面前,都很可能无从下手。要知道,周冠宇可是法拉利青训出身,又有过雷诺的经验,如果把红牛比喻成Oracle,那么法拉利和雷诺的赛车说他们是DB2和sybase并不过分,都是有过属于自己时代的产品。然而面对索伯拉跨的水平以及那辆让人叹气的C44,周冠宇无论发挥多么优秀,只能在地球组拿个冠军(11名),距离积分区还是有一道看不到的墙。至于下个赛季,被奥迪收购之后的索伯还是否愿意和小周续约,已经成为未知数。
这和当下很多国产数据库DBA的困境何其相似,无论过去的经验如何宝贵,在参差不齐的国产数据库面前,都只能往而兴叹。解决不了问题,就会被同事和公司质疑,要知道不是每个领导都对数据库很专业的,处理不了问题,厂商又把自己东西吹上天,谁敢保证大家不会觉得是你DBA水平不足,谁敢保证下次升职加薪就会有人想着你,谁敢保证哪天出个大事故兜不住走人?我在现实中,已经遇到不少DBA跟我吐槽,某某公司的某某产品已经对自己职业生涯产生了影响,进退维谷,成了困在时间里的人。
下周,F1上海站即将开赛。我不知道下个赛季,在这个赛场上,还会不会看到那个来自上海的中国小伙子,哪怕是为本赛季的呐喊,我也一定要去现场看完整场比赛,只希望索伯车队别让小周在家门口尴尬。与此同时,也更希望更多的国产数据库厂商们多务点实,需心虚学习,把自己摆正,你们既不是红牛,也不是法拉利梅奔迈凯伦,甚至索伯车队的真实水平都还达不到。