我在蚂蚁金服作后端:那些坚持在一个岗位作八年的人,后来怎么样了?

1985年出生的他,在OB团队里绝对算是一个“老人”,从研究生毕业加入OB至今已经迈入第八个年头了。
有人以为花这么长时间作同一件事会变得“螺丝钉”,用他的话说,作底层的同窗须要比通常人更多一份耐心。除了耐心之外,驱使他一直“作下去”而且“往深了作下去”的原动力仍是基于“兴趣”。
从P5到P8他完成了职业生涯的三级跳,也完成了三个阶段的成长和蜕变。机会历来都是留给有准备的人,固然,也老是留给那些耐得住寂寞的人。

元启,蚂蚁金服高级技术专家 面试

有时候离成功就差一次机会

「当时本身就憋着一股劲,就是很是想来 OB,以为本身说什么也要再试一次。」算法

1985 年出生的席华锋(花名:元启)出生于湖北襄阳。数据库

“我接触计算机算比较晚的,高中的时候有计算机课程,不过那个时候彻底没有概念,每次进机房都要套上鞋套,全部设备都被保护的很好。”编程

说到报考计算机专业,元启说那个时候想法特别简单,当时他连计算机跟软件工程两个专业都分不清楚,可是他始终坚持的一点就是本身之后是要作研究的。当时他以为计算机对于搞研究颇有帮助,计算机能够用来处理大数据,能够帮助人们去作更深刻的研究。架构

2004 年,元启顺利考入了华中科技大学,华科是湖北省最好的理工院校。大学期间,他对数据库并没产生特别大的兴趣。大学的数据库课教的都是关系代数、范式之类的内容,以为特别枯燥。并发

后来顺其天然选择了读研,在研究生期间,实验室作的方向是大数据,当时主要作的项目是大数据的 benchmark。至关因而在作一件定标准的事,虽然导师的想法很好,可是因为国内以前没有相似的先例,作起来困难重重。虽然过程很艰难,可是元启对最后的结果仍是挺满意的,研究生毕业的时候他拿到了优秀毕业论文。运维

就这样顺利的毕业了,找工做的经历却远不如求学顺利。分布式

“我其实并非特别自信的那种人。可是当时我有一点特别明确,就是必定要去一家互联网公司。”性能

2011 年的时候,外企风头正猛。当时外企的薪资和待遇比互联网公司还要高很多。可是元启相信互联网行业的前景,相信互联网必定是下一个趋势。学习

当年基本上全部的互联网公司巨头:BAT、网易、搜狐他都投了简历。有一些过程很顺利,好比腾讯的 offer 就拿的很是快;也有一些没那么顺利的,好比最后拿到阿里的 offer 就经历了很多挫折。

“第一次投递阿里是由于一个关系不错的同窗一毕业就来到了 OceanBase,他特别喜欢这个团队的氛围,就一直鼓励我来 OB 积极帮我内推。可是第一次面试不太顺利,没有过。当时本身就憋着一股劲,就是很是想来 OB,以为本身说什么也要再试一次。后面本身就花了不少时间作准备,这个同窗也特别好后来又帮我内推了一次,让我得到了宝贵的第二次机会,这一次终于拿下了 offer。”

让元启印象深入的是,当时最后一面的面试官是时任阿里云 CTO 的章文嵩。虽然元启在研究生期间作的项目更可能是偏实验性质,章文嵩以为经过一个点就可以体现出一我的作事的深度。过五关斩六将,最后元启终于来到了阿里巴巴,来到了 OB 团队。

跟 OB 一路狂奔的这八年

「那个时候确实是下了狠劲,基本上 9 点下了班之后,回家继续自学,天天学习到 12 点之后。」

2011 年,OceanBase 0.3 版本刚开始开发。刚来 OceanBase 的时候人比较少,基本上不论职位高低全部人都在写代码。当时元启进来后,主要作的事情就是跟事务和日志相关。这部分工做虽然不是最难的,可是却很关键。

2011 到 2012 年间,对于整个 OceanBase 团队而言特别特别困难。当时找不到对 OceanBase 而言特别有价值的业务,甚至整个团队随时面临着解散,活下来成了整个团队的惟一目标。

2012 年末,OceanBase 从淘宝调到支付宝,当时预估到支付宝在数据库方面所面对的挑战更大,后来证实确实如此。

这一年多时间对于元启来讲,是真的下了狠劲。由于研究生阶段花了不少时间作实验,项目经验比较少,编程基础比较薄弱。当时的主管很是关注他的我的成长,让他天天写一份日报总结除了工做之外自学到的知识。基本上是 9 点下了班之后,回家继续自学,天天学习到 12 点之后。

2013 年 5 月,支付宝下线了最后一台 IBM 小型机,完成了去 IOE 进程中的一次重要尝试。如何取代最要命的“O”成了横亘在支付宝面前的一道大山。

OceanBase 0.5 版本应运而生,在次年双十一,0.5 版本就取代 Oracle 支持了支付宝当天 10% 的流量。

对于整个 OB 团队,或者说对于蚂蚁来讲,0.5 版本的上线都是一个里程碑式的存在。它最大的意义在于真正帮助蚂蚁完成了去“O”,也真正让高可用在蚂蚁落地。

0.5 版本在蚂蚁金服核心交易系统的上线让 OceanBase 真正活了下来,甚至 OceanBase 还有了很多“拥趸”。在当时整个阿里巴巴尚未一款数据库产品可以真正解决高可用的问题,OceanBase 一会儿被捧到了一个前从未有的高度。

对于元启我的而言,他除了持续负责日志部分的工做,另外很大一部分工做就是跟性能相关。那段时间基本上把全部精力都彻底扑在 0.5 版本的研发上,整个团队是一种尽心尽力的状态。

这以后,2014 年到 2016 年,整整两年的时间,元启和其余 40 多个 OB 同窗一块儿,再一次投入战斗,全身心投在 OceanBase 1.0 版本的开发上。

1.0 版本的诞生主要是解决扩展性的问题。“1.0 版本放在当时并非为了立刻解决业务的实际问题研发出来的,而彻底是一套面向将来的架构。”

阳振坤(OceanBase 创始人)曾经提到,其实在交易库尚未彻底上线的时候,就已经启动了1.0 版本的开发。1.0 版本的设计初衷就是但愿作出一套没有任何限制,彻底可扩展,高可用的系统架构。

1.0 版本的里程碑事件就是 OceanBase 在 2016 年的双十一上线了蚂蚁的帐务系统。对于银行系统有必定了解的朋友可能知道,对于银行来讲最最核心的实际上是帐务系统。

对于元启来讲,他的感觉更直接更具体。忽然以为那一年数据库的数量飞速增加,同时 OceanBase 上了很是多的业务。这对运维提出了更高的要求。OceanBase 1.0 版本的质量比 0.5 版本提高了整整一个层级,每个版本发布前都要通过一轮又一轮严密的测试,发布周期也变得长了不少。正由于有质量的保障,才有了 OceanBase 1.0 版本在规模上几何倍数的扩大。

OceanBase 2.0 版本在 2018 年 9 月正式发布。2.0 版本的重要意义在于真正将 OceanBase 打形成一款通用型的商业数据库产品。2.0 版本在 1.0 版本的质量标准上又提高了一个量级,除了对 MySQL 的兼容,2.0 版本更多的是打磨对 Oracle 的兼容性。

当时作 Oracle 兼容是有争议的,团队内部都以为 MySQL 已经作到了 90% 的兼容,为何还要花这么多时间再去作一套 Oracle 兼容。

可是元启内心明白,这件事不得不作。OceanBase 正在走向商业化,然而不少金融机构里的核心业务大多仍是基于 Oracle。若是不作 Oracle 兼容,就意味着业务改造的工做量变得很是大,更换数据库的成本很是之高。

“咱们在作在 OceanBase 0.5 版本的时候,当时作的系统已经能够算得上是业界领先了。到了 2.0 版本的时候,这个感受就更明显了,咱们遇到的问题都是现有的系统历来没有遇到过的,全部问题都是全新的,充满挑战的。”

在 OceanBase 2.0 版本的开发中有两个很是大的难点:一个是资源的紧缺,人力不足。Oracle 对外宣称要招聘 1000 我的来作内核开发,实际上 OceanBase 的系统远远比 Oracle 复杂,若是按照他们的标准 OceanBase 可能要招 1000 人还不够。

另外,还有一点就是技术实现上的困难,也就是如何保证分布式系统中数据的一致性。在事务执行的时候如何让它们看起来好像是独立执行,同时又能完成并发。这些问题在单机环境下已经很难解了,在分布式的环境下实现更是举步维艰。

三个阶段的蜕变

「你能够不去考虑本身所处的位置,勇敢的提出来,而且放手去作。作成了之后团队里全部人都能看获得。」

与 OB 一块儿狂奔的这八年,他完成了职业生涯的三级跳,也完成了三个阶段的成长和蜕变。

第一阶段:从自我视角到客户视角

刚进入团队的时候,最开始主要就是在作技术深度的积累和技术广度的扩展。除了一直在事务层面作更深刻的研究外,后面元启也接触了像测试、运维相关的知识。用他的话说,“当你了解的越多,你会发现本身看问题想问题的视角也在变化。”

当接触的东西愈来愈多,慢慢的本身会从狭隘的技术上的自我视角转向客户视角,去开始理解客户的痛点,感悟到技术是为了服务业务而存在的。

第二阶段:往高看,往远看

在进入团队前面几年的时候,常常有一些技术方案的作法本身不是彻底承认。还在第一阶段的本身,通常第一反应就是以为它不对,会去跟主管辩论。当你接触的越多,思考的越多的时候,其实观念也在变得愈来愈开放,本身会深刻去想主管为何想这么作,部门老大为何会这样想,慢慢你就会发现全部选择都是有缘由的。

“你如今若是仍是一个 P6。可能没办法去理解 P10,P11 的想法,由于你还没看到他们看到的东西。可是你要开放的去接纳别人的想法,从更高的层面去思考,可能到了将来某一个时刻,你忽然就顿悟了。”

当时 OceanBase 选择走上自研这条路来讲,不少人都不承认也不理解。尤为对于刚毕业的同窗来讲,可能心理会有障碍,他会认为如今已经有一套开源的 MySQL,作一套自研的数据库有什么用,不理解作这件事的价值。

出现这种认知的误差可能有两方面的缘由,一方面是这个同窗可能了解的信息比较少,眼界还不够开放,不少东西他看不到。另一方面是他了解的不够细致,还认识不到这件事情背后的难度,多是由于他以为这件事情太简单,不知道从里面可以玩出什么花样来,因此会变得很浮躁。

在总结招聘经验的时候,OB 团队里曾经有人总结出这样一句话:“若是一我的在一个看似很无聊的岗位上都可以玩出一些花样儿,这种人就很值得要。”说明这我的可以沉得下心,愿意也可以去发现一些别人看不到的东西。作数据库的人自然须要这样的特质,或者说也只有具有这种特质的人才愿意投入这个行业。

第三阶段:扩展你的边界

阳老师说过一句话让元启感触特别深,“企业里的组织架构大可能是人带人的模式,并不表明这就是你作事情的边界。若是你愿意作一件事,而且以为是对团队真正有价值的。你能够不去考虑如今本身所处的位置,勇敢的提出来,而且放手去作。作成了之后团队里全部人都能看获得。”

元启说特别喜欢 OceanBase 团队开放的氛围。刚进 OB 团队的时候,不少事情都是领导安排你去作。慢慢进入到如今这个阶段,本身会更多的主动去想应该去作哪些事,作哪些事才能发挥本身最大的价值。

在 OceanBase 的这八年,元启最明显的感受就是本身作的越多,懂得越少。早期的时候会以为本身特别牛,越日后越以为本身身边的人特别牛。这一路还有不少东西要学习,还有不少事情值得去探索。

一个特别正确的决定

「若是你选择了这个行业,最重要的就是必定要有耐心,必定要相信本身的选择。」

谈到选择数据库行业,元启说这是一个特别正确的决定,也是值得选择的一条路。

首先,数据库离业务最近,无论是在功能上的加强,仍是在性能上的提高,数据库的价值都会被放大。好比你写了一段代码,若是这段代码是一个具体的业务逻辑,可能只有几十或者几百我的去访问,它的价值就比较有限。若是你写了一段代码放进数据库,由于数据库拥有海量用户,它的价值就会被放大,给更多的人带来影响。

另一点就是数据库行业的技术壁垒很高。技术壁垒一方面指的是技术的门槛高,因此一旦你在这个行业站稳脚跟,就拥有了很是强的核心竞争力。另一方面是指从工程上来讲数据库是一个超大型项目,代码行数在几百万行都算是规模小的,这就使得这个行业必须长期投入,在这一行也必需要沉下心来耐得住寂寞。技术壁垒越高,也就意味着一旦作成了,价值也会越大。

“若是你选择了这个行业,最重要的就是必定要有耐心,必定要相信本身的选择。还有一点就是保持好奇心,多了解当下和将来,好比如今整个行业有了哪些新硬件或者新业务产生,了解的越多,你就越容易找到本身的突破点。”

数据库发展的这八年

「数据库的价值在于它的开放性。」

元启与 OceanBase 的这八年其实也是数据库行业变迁的一个缩影。对于元启来讲,这八年时间感触最直接的变化就是单机的性能和性价比愈来愈高。SSD 愈来愈便宜也愈来愈快,内存变得愈来愈大,CPU 核数也在变多。而 OceanBase 在最开始其实就是基于 SSD 大内存多核来设计的,这也是 OceanBase 的一个后发优点。

而后就是从集中式转向分布式的这样一个大浪潮。其实互联网最开始是基于 KV 或者文件系统来作分布式。数据库的分布式主要依赖于业务配合中间件来作,可是 OceanBase 是真正开创了一套在工业上可用的分布式数据库

亚马逊的 Aurora 作的是数据库的云服务,也能够叫作云原生的数据库。能够说是数据库方向的另一个趋势,也有不少公司在效仿这个思路。Aurora 它的思路是首先保证数据库功能的完善,而后再去解决它的扩展性。OceanBase 至关因而走了彻底不一样的一条路,咱们一开始的设计就是无限可扩展的,而后再开始持续不断完善功能。虽然过程会难不少,可是 Aurora 最终的扩展性是有限的,OceanBase 倒是无限可扩展的。

谈到数据库将来的发展,元启一直强调“数据库的价值在于它的开放性”。

提到数据库,你们首先想到的就是 MySQL、Oracle。数据库之因此这么有价值,某种意义上是由于数据库开放的定义。关于什么是数据库其实这个概念一直在发生变化,好比时序数据库、空间信息数据库等等全新的概念层出不穷。

人工智能的普及化也给数据库带来了新的机会点。如今的人工智能更相似于用数据去训练,获得的更像是一套算法,最后可以进行识别和反馈。将来人工智能跟数据库有更紧密的结合,才可以发挥更大的价值。

数据库的边界在不断扩展,随着新技术的兴起将来数据库的机会点还会有更多。