重要也更深远的意义或许在于,阳振坤的存在创造了一种新的生态。他颠覆了时下困扰这个行业的「35岁危机」:一个程序员必须在35岁之前跻身进入管理层,否则将无法以技术身份立足,年长的技术人员意味着贬值、淘汰、失去意义,「60岁还在写代码」几乎是对一个程序员最恶毒的职业诅咒。
阳振坤活成了这个危机的最好反例。他离开北大的那年已经36岁,着手数据库立项的那年45岁,投身业界的过程并非一帆风顺,中途经历过不止一次的否定、质疑、团队解散危机,可他始终是一个绝对意义上的程序员。自始至终,他保留了王选教给他的职业原则:正气、专注、顶天立地。
文|尤尔敏
图|受访者提供
去更远的地方
超过一万名程序员在蚂蚁集团上班,但其中有一个人是另类。他今年已经五十多岁了,活得却像一个刚毕业的计算机系学生,他不带团队,没有管理职务,直到今天依然是第一线的程序员,每天跟程序员们坐在同一个工位区,在工位上看代码、找bug。他并不是一个爱说话的人,不跟大家开头脑风暴会议,参加团建的时候不玩聚会游戏,中午也不跟大家一起吃饭,午餐时间总是一个人跑到楼下,边听英语边绕着圈散步。
办公室里流传着许多关于这个另类的故事,他常常穿着冲锋衣来上班,跟实习生开会的时候也会做笔记。还有一件广为人知的小事:他不止一次在面试的时候自己拿出纸和笔,事无巨细地给桌子对面的人画一个架构图,向对方努力推销自己的工作构想——他想要做一个数据库,叫OceanBase,他试着说服对方理解其中的意义,Ocean代表海洋,Base是数据库,它如何容纳海量数据,为什么做分布式系统……他的讲解常常让对方目瞪口呆,因为在那个面试现场,他才是面试官。
这个另类程序员就是阳振坤,OceanBase创始人、首席科学家,现任蚂蚁集团副总裁。办公室里既没有人喊他Boss,也没人称呼他「阳总」,大家都叫他「阳老师」。这是他在第一份工作里留下来的称呼。因为他喜欢数学,考大学选的也是北大数学系,一路从本科的基础数学读到了研究生的应用数学,阳振坤差一点就成了数学系的老师。只是那时候他觉得自己英语不好,家里又没钱,没办法出国留学。因此经过当时的北大数学系的邓东皋教授介绍,他去找了北大计算机研究所所长王选,成为了一名实习生,想在数学之外的地方走得更远。
跟着王选的日子改变了阳振坤。王选是中国最早也最伟大的第一代程序员,正是因为他创立了汉字激光照排系统,今天人们才能在计算机中使用汉字。王选是一个讲究「方正」的人,阳振坤在导师身上看到了如何做一名程序员。在王选的课题组,做人比做技术更重要,当一个程序员要有技术能力,更要有见识,有正气,为人要正派,要有担当。阳振坤记得王选常说,「德才兼备,提拔重用;有德无才,难当重任;有才无德,以济其奸。」
「那时候他经常教我们,做事情要顶天立地。顶天就是你做的东西,技术上要有过人之处,否则就算你做出来,产品在市场上也没有很大的竞争力。第二个事情是要立地,你从做东西的时候就得想着别人怎么来用它,如果你只是把技术做得很好、很牛,没有太多去想别人怎么用,那样也没有机会的。」阳振坤说。「这后来成为我做很多事的原则,要做到顶天立地。」
抱着王选教给他的信念,他在激光照排领域做出了顶天立地的技术成果。他所发明的智能化高速向量还原算法让光栅图像处理系统不断升级换代,他的技术贡献让他从35岁之后开始过上安稳日子,他被连续破格提拔为副教授、教授,成为北京大学计算机科学技术研究所副所长,北京大学首批长江特聘教授……
就在迈向中年的节点上,阳振坤又一次找到王选,他想离开这个日渐成熟的行业,去外面的世界闯一闯。当时刚刚经历了互联网泡沫,有很多技术空白,有机会让他创造更多新的「顶天立地」。他在联想做过无线局域网、无线投影技术,做出了无线投影机,后来在微软和百度研究过云计算。最后,他找到了自己新的终点:分布式数据库。
2010年,阳振坤入职阿里巴巴,开始了分布式数据库OceanBase的研发。「我在微软亚洲研究院学做谷歌的技术,在百度做过云计算,后来到了阿里巴巴从0到1开始研发分布式数据库OceanBase。这些都有一个共同的特点——如何用更廉价而可靠的办法,正确地处理越来越庞大的数据?」阳振坤说。
就这样,商业世界里多了一个原本要当数学家的人。离开学界已经超过二十年了,他身上依然保留着一个学者的朴实。他是蚂蚁高管里为数不多的自己贴发票报销的副总裁,他没有助理,凡事亲力亲为。他自己则像程序员一样,坐在工位上,守着电脑看代码。
一开始,没多少人看得懂阳振坤在做什么。他是他所在的每一个群体里的另类。他是北大学者里少有的投身产业的人,而在觥筹交错的商人圈子,他的教师属性又让他格格不入。即便见到技术同行,他所创造的一个全新的数据库,能理解的人凤毛麟角。很长一段时间里,他必须活在无人理解的孤独里。他参加技术圈的聚会并不多,倒不是因为工作忙,而是他已经习惯了热闹里的孤独。「我还是会按照我的方式来做事情,我觉得需要参加的活动并没有那么多……对程序员而言,更重要的是沉下心来做事情。就我自己的经历而言,一个程序员把事情想清楚的重要性要比人们认为的大很多。」他说。
阳振坤和组员在工位区
12年过去了,他和他的技术已切实影响了超过十亿消费者,他曾经一次次画在纸上跟人解释的数据库构想,最终全面替换掉了支付宝交易、支付、账务系统原本依赖的Oracle数据库,成为支撑着我们日常生活的底层基础,这个中国的数据库还出口到了东南亚和北美等地,为当地的业务提供数据库服务。这些真实世界的成功,让这个技术另类的存在变成了一个有趣的命题:商业世界存在一个阳振坤的意义是什么?
最直接的结果是技术进步。正是因为有他的坚持,中国诞生了一个拥有自主知识产权的分布式关系数据库,这也是全世界第一个大规模应用在金融核心业务的中国数据库。在没有任何先例可以参考的情况下,OceanBase最初仅由只有几十个人的小团队开发出来,以远低于传统数据库的成本,扛住了支付宝一次又一次的双十一支付峰值,入选了2022年世界互联网大会领先科技成果奖。
然而,更重要也更深远的意义或许在于,阳振坤的存在创造了一种新的生态。他颠覆了时下困扰这个行业的「35岁危机」:一个程序员必须在35岁之前跻身管理层,否则将无法以技术身份立足,年长的技术人员意味着贬值、淘汰、失去意义,「60岁还在写代码」几乎是对一个程序员最恶毒的职业诅咒。
阳振坤活成了这个危机的最好反例。他离开北大的那年已经36岁,着手数据库立项的那年45岁,投身业界的过程并非一帆风顺,中途经历过不止一次的否定、质疑、团队解散危机,可他始终是一个绝对意义上的程序员。自始至终,他保留了王选教给他的职业原则:正气、专注、顶天立地。他做过团队的管理者,但他大部分时间都在技术一线,全力专注于代码、设计和具体的技术问题。他的团队信奉另一种职业逻辑:一个程序员也可以不必钻研晋升捷径,专注于自己的代码,深耕技术也可以取胜。这对于热衷谈论风口、热点、捷径的互联网行业,不失为一种有意义的对照。
跟阳振坤一起爬过山的人都知道,他有自己的法则。在山脚下出发的时候,阳振坤并不是夺冠选手,他既不是体力最好的,也不是冲刺最快的,他的爬山也不讲究走捷径的技巧,他只是按照自己的节奏,找准通往山顶的路,不紧不慢地匀速前进。他比不过起速快的年轻人,中途也会被抄小路的人反超,但整个全程他走得最稳,走得也最远,所以几乎每一次,他都是最早攀登顶峰的人。这是他的取胜之道,一个技术主义者赢的方法论。
「阳老师」带领年轻程序员研读学术论文
技术的愚公移山
杨传辉是第一个看懂阳振坤想做什么的年轻人。2007年,他毕业到百度工作,入职的唯一要求是要进阳振坤的组。后来阳振坤加入阿里巴巴,他也在一个月以后入职,继续一起研发数据库。
一开始,他们都着迷于谷歌的分布式系统。杨传辉在谷歌实习的时候第一次知道它的概念,而阳振坤在微软的时候,常常和王坚讨论起这个话题,每次聊起都觉得很震撼。以前人们要处理海量数据,只能把机器越造越大,但是谷歌提出了一个新主意——我们可以用很廉价的机器,以一种分布式架构组织起来,去完成大型机才能做的事情。这个主意激发他们去探索,如果将分布式应用在关系数据库上,同时解决这种系统的可用性和可靠性,那会是新的「顶天立地」。
当时,数据存储是一个亟待解决的难题。他们在组内讨论业务前景,中国人网上交易是海量的,阿里巴巴的服务器最早就是以千为单位计数,累积超过数千亿条记录了。当时支付宝一天就一亿多笔交易,如果像传统商业数据库那样一笔交易成本一毛多钱,一亿多笔交易一天就一千多万,哪个公司扛得住这样的成本?在这条路上依靠像Oracle这样的商业数据库是代价高昂的。更何况,业务还经常会跑来说,下个星期我们要做一次大促销,你们数据库扛不扛得住?Oracle扩容需要购买高端服务器和磁盘阵列,这至少需要2-3个月。这是摆在技术面前的挑战:能不能创造一种新的模式,既把成本几十倍地降下来,又能保证稳定、可靠、快速地按需扩容缩容?
在一次次重写的架构图纸上,阳振坤慢慢找到了一种可行的解决路径——固态盘SSD每秒钟能读取几万次,每次只需0.1毫秒,大大优于机械盘的读取能力。如果设计一种分布式数据库,采用SSD存储数据,只记录修改的动态数据,而把全部数据记录的写入时间放在用户行为减少的后半夜一次性写入,这就可以大幅提高效率,提升数据可用性。而同一份数据至少存在三台机器上,这就好像把生命送上三个运行的小星球上面,它们彼此都是对方的备份,失去任何一方都还有人能顶上,这就能保证数据的可靠。
这就是OceanBase数据库最初的构想,阳振坤提出了一种同时解决了成本、性能、可靠、可用、容错、容灾问题的技术解决方案。之后十多年的现实证明,这个最初的设想不仅成立,而且是关系数据库的显著技术进步。
OceanBase第一个业务应用在淘宝收藏夹,刚上线的时候是一个机房十几台机器,后来数据量和访问量都已经翻倍了,还是十几台机器。他们用了几分之一的成本,实现了比当时更高的性能。
但是,这个技术创新在诞生之初面对的却是接连的否定。当时Oracle数据库已经占据了市场统治地位,替换风险很大,那时候淘宝大部分业务也都已经按照用户维度做了分库分表,一个全新的数据库很难有用武之处。更重要的是,数据库是底层系统,研发周期以年为单位,短期看不出成效,但那时候人们还沉浸在中国互联网的高速增长中,没人知道十年后会有贸易战,大部分人不能理解为什么研发一个国产数据库迫在眉睫。
面试新人的时候,阳振坤经常问:「你觉得有没有希望追得上Oracle?」在OceanBase刚开始的几年,他得到过表述不一的回答,结论都是统一的「不可能」。
在当时的处境下,阳振坤提出「顶天立地」的技术目标听起来十分遥远。「那时候我经常跟大家聊,我们做这件事情,一定不只是给淘宝做,给天猫做,给支付宝做,我们一定要面向全世界,做一个真的顶天立地、通用的数据库,因为数据库一定会从单机走向多机、走向分布式,我们正好有机会先走了这一步。」
最初的很长一段时间里,阳振坤成为了数据库行业里的另类,围绕他身边的都是怀疑:为什么要自己做数据库?有那么多开源的数据库,拿来用不就行了?数据库发展那么多年,不止一家公司想做新数据库都没做成,你是一个没有做过数据库的人,凭什么你能做成?
「阳老师一直都觉得OceanBase肯定能替代Oracle,当时对我们来讲觉得是一个天方夜谭的事,我们怎么可能替代Oracle呢?我们连人数上都(比不上),我们几十人,人家Oracle几万人。从零到一做一个数据库,觉得是愚公移山,大家都觉得有现成的干嘛不用,干嘛非要自己去研发一个,但阳老师相信这件事。」在OceanBase负责技术运营的李琦说。「我觉得他身上有那股劲儿,非常执着,对于他坚信的事情一定要做到极致,并且会想尽办法把他相信的事情变成现实。」
「其实技术永远不可能完全地舒展开,那是个理想状态。但是我觉得一个技术团队(取得成功),也许有两点很关键,让大家看到技术很有价值,也要让大家理解技术的力量。因为有时候解决问题,可能不是用的技术手段,比如有人谈判能力很强,靠人的能力把价钱压下来了。但是我要做的事情是让大家看到,我们能用技术的手段解决问题。」阳振坤说。「我本身是一个程序员,我能把技术想得很清楚,估算出来大概需要花多长时间,多少人,就能把这件事情做出来。我们要让大家认同我们的技术做法,(相信)这个技术方向是正确的。」
这是阳振坤从王选时代就形成的信念。一个例子是,最早印刷的汉字看起来有点别扭,因为当时的技术没办法完美表达曲线,一碰到汉字有弧度的部分,像是撇、捺、点、勾,只能用短小的直线拼凑成近似弯曲的样子,这导致汉字的每一种弯曲在芯片上的算法表达都很困难,一度陷入瓶颈,但是阳振坤一点点推敲,最终想到了办法。他学数学出身,他用一个三次多项式表达这种曲线,再用三次加法的迭代让芯片处理这条曲线,这样一来就实现了芯片完美表达汉字里的每一种曲线,也是他的技术自信:那些原本你觉得不可能的事情,因为代码的存在,它们都能发生。
「他有一个信念,他认为没有什么技术问题是解决不掉的,只要这个问题有最优解,大家就一定能想到,这是他的自信。无数年的工作已经证明了这一点,他慢慢形成了这种自信。」杨传辉说。
只要有技术的进步,只要有人的坚持,改变一定会发生,这种技术自信一点点感染着周围的人。杨传辉说,一开始出去谈合作的时候总要开很久的会,因为对方做业务,听不懂他讲的底层数据库。每次一提到自家数据库的特征,「既能保证强一致,又能保证高可用,宕机的时候还能保证不丢数据」,对方总是一脸怀疑,这怎么可能呢?有时候开会讲不明白,开完会一边吃饭一边继续讲,他常常觉得最后对方同意,并不总是因为技术。「有时候业务方也知道,他没办法理解底层的每一个细节,他没听懂,但是他觉得你人是靠谱的,信任我们的为人,给我们尝试的机会。」
2014年,支付宝的交易支付系统开始使用OceanBase数据库,为了说服管理层信任技术,阳振坤当时写过一封邮件:「咱们的同学非常优秀:给他们一个信任,他们会给我们惊喜甚至奇迹,我们认为技术上做不到的,他们也能做到……」不久后,他也得到了信任的反馈:「我不懂技术,但是我相信技术。」
事实上,技术最终给出了一份超出想象的答复。在很多层面上,OceanBase已经做到了互联网数据库基础软件中的最优解。它在2017年在支付宝全面取代IOE,在2019年又在世界上最权威的数据库评测机构TPC(国际事务处理性能委员会)发起的TPC-C基准测试上取代Oracle,成为第一名,打破了Oracle保持了9年的世界纪录。不仅如此,从2017年开始,OceanBase开始服务外部客户,2021年面向全网开源,去年八月份发布了可以在全球最小的电脑树莓派上运行的4.0版本,这打破了当前分布式数据库只服务于大客户的局限,新版本让中小企业也可以低成本享受分布式数据库的高性能。
这所有的现实成绩证明了最初设想的成果,技术道路的确把商业带到了更远的地方,OceanBase朝着一个通用的数据库迈进,这条路走得越来越远。