周末在上海参加两场活动,一场是OceanBase针对4.3的开发者大会,见到了上上周DTC的很多老朋友,另一场就是上海F1大奖赛,同样也见到了很多老朋友。在这两场活动中间穿插,让我思索出很多东西。
开端
周五冲刺赛排位赛,坐在我不远地方的一对情侣,女生问男生,车手和赛车哪个对成绩影响更大,男的说赛车占70%因素,车手占30%因素。这个答案和我固有的印象是比较相符的,但是又说不清楚有哪里不对劲。
带着这个疑惑,来到了周六OceanBase会场,听了盖总和白鳝老师主持的谈话小会场,聊起他们从DB2到Oracle再到今天国产数据库的职业历程。以及在各个分会场之间寻找自己感兴趣的话题,这期间也和几位OB原厂的朋友做了交流。其实既有产品也有研发,他们都在从自己角度来跟我阐述对OceanBase的理解,这件事请让我也收获了很多不一样的视角。然而,心里那个疑惑,还是有一种没有找到答案的感觉。
转折点来到周日中午,在大家等了五年之后,终于聚集在围场之外开始整活,其中“索伯换胎监工组”人数没有100也有80,而另一方面,那些六七十岁见惯了大场面的上海老爷叔老阿姨们,则微笑着看着10号看台栏杆那里整活的后辈们。到了最后,成了各家吐槽自己车队运营的吐槽大会。那一刻,我心中的答案终于找到了。
在围场之内,赛车、车手、车队,到底是一个什么关系?
在围场之外,数据库产品、DBA、数据库团队,又是一个什么关系?
数据库即赛车
如同前几天我文章描述的,数据库产品就是自己赛场里的赛车,好的赛车能让你事半功倍,烂的数据库能让你陷入泥淖无法脱出。
盖总和徐老师在谈话中提到的最多的是DB2和Oracle,这是过去40年,数据库技术在中国曾经承担了最多民生相关业务的产品,它们最重要的一项特性就是稳定可靠。宇宙行的DB2可以做到全年不宕机,传统行业用作核心交易系统的Oracle可以确保业务连续性。而且更重要的是,它们都能让有经验的DBA更加高效稳定地运维管理,无论出现什么样的问题,都能有迹可循。日志的输出、问题的收敛、可观测性的帮助,都不至于让DBA一筹莫展。
当然,很多经典的开源数据库同样不差,MySQL和PostgreSQL能够在生产环境大规模应用,就足以说明这些。在商业数据库面前,也许它们在性能可靠性等方面尚存差距,但是开源为他们带来了更多的生态工具以及低成本优势,在一个临界点之前,仍然还是很多公司的最优解。也是当前诸多国产数据库开发探索的重要参考。
其实F1赛车也是有着异曲同工,表面上看,F1有10家车队,但是真正提供发动机的只有法拉利、梅赛德斯、本田和雷诺。大部分F1车队使用的发动机都是采购别家,然后经过自己的调校,搭配底盘、悬挂、尾翼这些组件,最终组合出一辆完整的赛车。
某种程度上,使用开源的数据库内核,来研发一个完整的数据库产品,并不是什么不可接受的事情,坦然接受并逐步探索出自己的东西,才是最重要的。红牛不生产发动机,但是不妨碍他们的RB20继续统治这个赛场。能把别人的开源内核用好,服务好客户,这个才是最实际的。
DBA,另一个车手
上海大奖赛,毫无悬念的,维斯塔潘带着他的Oracle赞助Logo再一次登上了冠军领奖台。我跟朋友说,如果维斯塔潘哪天学会了DBA技能转行,一定会是一个很优秀的DBA。为什么这么说?因为他只要坐进赛车里,就是一个无情的跑圈机器。完全感受不到任何情绪的波动,超车了他不兴奋,落后了他不慌张,被撞了他不愤怒。所有的反馈都是为跑圈做准备。这简直就是天生为DBA做准备的的一件事情。
我相信大家都有过类似的经历,面对突发的生产事故,出现手足无措的情况。这时候脑子里的一片空白,需要一个时间重启,逐步冷静下来,开始进入状态。而在处理问题的时候,多少也有心跳加速,10成功力减半的情况。人都是有情绪的,出现这些再正常不过。
然而无论是赛车还是数据库运维,都要面对各种突发情况,非常考验我们的冷静、判断、处理问题等诸多能力。好的数据库,能够帮助我们尽快理清事故头绪,以最小的代价完成业务恢复;能够提供给我们可靠和可用的服务,从而拿出更多的时间来学习提高自己。
当周冠宇完赛走下赛道掩面痛哭的那一刻,我竟然也有想哭的冲动,那一刻我想起了很多被烂系统坑到焚膏继晷的日子,想起那些匪夷所思的数据库产品设定,想到那些关键业务支持完成之后瘫倒在工位的瞬间。
然而,当下的DBA又和车手不同,一个车手一个赛季只需要面对一辆赛车,无论是红牛的火星车还是索伯的拖拉机。可是当下的DBA们,却要面对的可能是多种无法预知下限数据库。
缺失环
如果只有数据库和DBA,如同只有赛车和车手,中间是有缺失的,如同开篇那对情侣的对话,赛车和车手显然不可能涵盖每个环节。其中还有一个重要的角色——车队。这个车队就是数据库厂商。
红牛之所以能够最近几年统治围场,总是能够研发出最好的赛车,是和他们车队的高效运作密不可分。车队领队在赛道的临场指挥,数据分析师和机械师收集的第一手数据,车手每个细微的表现,都会汇总到工厂,技术总监分析后,对赛车及时做出升级调整,并且在经过测试车手的实际测试后,在最近的比赛中升级,形成一个正向循环。
成熟的商业数据库产品,也是如此。一线的DBA就是车手,售前售后的技术人员就是机械师和数据分析师,产品经理和测试人员就是技术总监和测试车手,将数据库产品不断调整升级,最终将结果呈现给DBA,再继续下一个循环。这个循环中的每一环都必须确保高效专业,才能让这个循环继续下去。索伯换胎组的尴尬,表面上看是换台人员的能力不够,其实背后暴露的是整个车队的运行不够理想。
在我和Oracle打交道的多年里,我结识了很多专业的售前售后同行,他们的专业严谨让我佩服,以至于昨天红牛的双车进站时,看到侧面的Oracle Logo,我都会想到曾经打过交道的他们。
反过来说,那些千疮百孔的国产数据库产品,暴露的则是这个厂商诸多不专业方面的下限。技术实力再好,最终呈现给客户的一定是最短的那个板子。
虎溪三笑
那么回到标题,究竟是谁成就了谁?
想到舒马赫,我们总会提起他驾驶过的火星车F2004;提到维特尔,我们无法回避RB7;仿佛还在昨天的汉密尔顿连冠岁月,眼前闪现的是飞向银河的W11;当下制霸的维斯塔潘,和他最契合的是上赛季的RB19。
是的,开创一个王朝的车手,必然有一辆遥遥领先的火星车。而想要生产出一辆火星车,必须要有顶级的车手带来的第一手数据。光有研发和车手仍然不够,还需要车队领队去统筹调度机械师、数据分析师、换胎组,与技术总监做好配合。才能实现真正的人车合一。数据库和赛车一样,都是一个极其复杂又要长期磨合的产品。
没有好的DBA提出问题和最佳实践,原厂支持工程师就不可能获取到真正有价值的数据;原厂支持工程师如果不专业,就无法提取出关键的问题,反馈给产品经理和研发测试工程师;产品经理和研发测试工程师如果不能正确理解前方的回馈,就不可能真正制定出符合生产需求的升级和bug修复。最终获得成功的数据库产品,必然是三个角色共同努力的结果。
赛车、车手、车队,抑或数据库产品、DBA、数据库厂商,就是互相成就的关系,好的产品需要好的DBA支持,好的DBA给予好的数据库团队反馈,好的数据库团队不断打磨出好的产品。
东晋时,东林寺慧远大师给自己定下规矩,送客绝不过溪。然而有一天陶渊明和陆修静道长来访,三个人相谈甚欢,送别的时候不知不觉送过了寺前那条溪,甚至引起了老虎的嚎叫,最终三人相视大笑,执礼作别。后人以此借喻儒释道三家完成文化上的合流,留下千年佳话——虎溪三笑。
周冠宇的一场完赛,是索伯车队的一小步,但对于中国赛车和周冠宇,都是历史性的一大步。而未来成功的国产数据库,也必须要经历跨过那条溪水的一大步,才能成就另一段虎溪三笑。




