专栏名称: 养码场
养码场,一个技术人职场社交平台。 现有“养码人”80000+,覆盖JAVA/PHP/iOS/测试/运维等领域。80%级别在P6及以上,含P9技术大咖30人,技术总监和CTO 500余人。
目录
相关文章推荐
CDA数据分析师  ·  Deepseek来袭,数据分析师会失业吗? ·  昨天  
旁门左道PPT  ·  PPT重点别再标红了!!丑爆了! ·  2 天前  
数据派THU  ·  AAAI 2025 | ... ·  2 天前  
CDA数据分析师  ·  Deepseek来袭,数据分析师会失业吗? ·  4 天前  
51好读  ›  专栏  ›  养码场

蚂蚁金服P11,用10年时间打造支付宝背后的OceanBase!

养码场  · 公众号  ·  · 2019-04-25 16:36

正文

如果大家当时能看见原来十年后 OceanBase 能长成这样,可能十年前 OceanBase 得到的支持会好很多。 但是这种如果是不存在的,很多时候你要先证明自己。


根据工信部数据显示,1998 年,中国软件企业 5000 家,市场规模 325 亿;到了 2018 年底,中国软件企业 3.78 万家,收入规模超过 6.3 万亿元,营收增长了 193.8 倍。可在最核心的基础设施三大件芯片、操作系统和数据库上,过去我们并未取得商用意义上的重大突破。


不过,相比芯片和操作系统,国内数据库领域的局面要略微乐观一些。谈及国产自研数据库,就不得不提OceanBase。


OceanBase是完全由阿里巴巴和蚂蚁金服自主研发、全球首个应用于金融核心业务的分布式关系数据库。 研发始于2010年6月,因为选择从零开始,研发之路一直磨难重重,中途更因为找不到愿意使用的业务,团队濒临解散。

最终,OceanBase还是跨越了死亡之谷,在蚂蚁金服实现了全面替代Oracle,成功支撑了过去5年“双11”蚂蚁金服全部核心业务的重压,创造了25.6万笔/秒支付峰值和4200万笔/秒请求数处理峰值。


自2017年开始,OceanBase开始走向外部商用。

站在现在这个时间点上顾盼今昔, 蚂蚁金服高级研究员、OceanBase创始人阳振坤认为,OceanBase的成功其实有行业和时代的必然性。



时 机


2009年开始,大量新的非关系型数据库如雨后春笋般涌出,在整个数据库行业掀起了一场空前盛大的NoSQL革命。这时候的关系数据库早已过了而立之年,在此期间虽然曾短暂爆发过一些所谓终结关系数据库的革命,但丝毫没有动摇到关系数据库的主导地位。


但这一次似乎与以往不同,火热发展的云计算带来了对更大规模数据库的需求,而关系数据库的缺点则相应地被越来越多人诟病: 不能够扩展、容量小、处理能力不够、成本又非常高


在当时的很多人看来,关系数据库的末日是真的要来了。


那时阳振坤已经在百度做了两年多的自研分布式系统。百度数以万亿计的网页意味着与日俱增的天量数据,阳振坤十分看好云计算系统的发展机会。同一年,阳振坤离开百度,加入阿里巴巴,就在上面这篇文章发出的 2 个月之后,开始了分布式关系数据库 OceanBase 的研发。


数据库从诞生起已经有几十年的时间了,但基本上它的市场格局就没有多少变化。它处在整个产品或者产业链最底层的位置,替换风险很大,但收益相比起来却小得多。这就导致了数据库变成了一个门槛极高、强者恒强的领域,后来者很难居上。


前有Oracle挡道、后有NoSQL数据库追赶 ,在大部分人看来,那时候怎么也不会是自研关系数据库的好时机,但阳振坤却不这么想。

加入阿里之后,阳振坤发现无论对淘宝还是支付宝,关系数据库都扮演着十分关键的角色,在使用上根本不可能摆脱。但已有的数据库,无论是商业数据库还是开源数据库,都有非常多的局限,远远无法满足如淘宝、支付宝这样的互联网和金融业务对高扩展、高并发、高可用和低成本的需求。


单机数据库已经走到了尽头,下一步只能走向分布式 ,而分布式恰好是阳振坤所擅长的。如果能将分布式技术揉到数据库里面,解决单机数据库存在的各种问题,对当时整个互联网的基础设施都会是一个巨大的帮助和进步。


阳振坤认为他们赶上了一个“天时地利人和”的好机会。

“天时”指的是互联网的爆发式增长对数据库的高并发、大数据量提出了很大的需求,有了需求去推动就会容易得多;


“地利”指的是阿里内部从淘宝到蚂蚁金服拥有大量需要使用数据库的场景,OceanBase可以从不是特别重要的应用场景开始尝试,一步步地将数据库做成关键系统;


“人和”指的是当时单机数据库已经走到了尽头,下一步一定是走向分布式,而当时团队成员大多是研究分布式出身,做的就是自己最擅长的工作。用阳振坤的原话就是:“这是千载难逢的机会,我们一定要做,而且一定能做成。”

选 择

“其实绝大部分人都非常聪明,或者说智慧都足够,但最终能把事情做成的人却不多。有时候大家在想这个人是大聪明那个人是小聪明,不是说他的智慧不够。如果一个人把他的智慧放在做应该做的事情、需要做的事情、重要的事情上,可能这个人真的就是大聪明。”


1984年阳振坤考入北京大学数学系,硕士师从本系的张恭庆院士,后又转向计算机领域,博士师从计算机系的王选院士。


需要强调的是,他修完大学课程只用了3年,硕士只用了一年多,成为王选院士博士生的时候他只有24岁。


1995年其所在团队研究成果获国家科技进步一等奖(排名第四),1997年也就是他32岁那年被破格晋升为教授。

在他人或许都安于现状之时,他却毅然选择了离校。个中原因也不复杂,他的工作更偏于工程,而在工业界有更多的机会,也能发挥更大的作用。


2002年离开北大/方正的时候,阳振坤内心很清楚自己必须要做点不一样的事情。他先是加入联想研究院担任首席研究员,负责无线通信领域的研究;后来接触到分布式系统并看好其前景,在微软亚洲研究院、百度所从事的工作都属于分布式这个范畴,前者侧重研究,后者偏重工程实践。

回想在北大的那些年,阳振坤觉得特别感激的是,学数学让他有了一个很好的基础,后来转到计算机系以后,碰到了王选老师,又打下了一个比较牢靠的计算机基础,这才有了他的今天。


作为对阳振坤影响最大的人,恩师王选有两点让他至今受益: 一是如何判断一件事情是否有价值,二是“顶天立地”的技术理念 ,“顶天”就是技术上要不断追求新突破,“立地”就是要把技术做成通用产品,让整个社会都能普遍使用。

其实2010年去淘宝的时候,阳振坤根本不知道自己会做什么事情。


加入淘宝之后,摆在他面前的有两个选择,一个是加入正在快速发展的淘宝业务团队,去主管技术,这是一条已经能看到很大的发展机会、相对轻松的道路;另一条是阳振坤后来自己选的,从头组建团队做一个技术平台,也就是今天我们看到的OceanBase数据库。从加入淘宝到选择做自研数据库,一共只花了两个星期的时间。





这不是一个容易的选择,但阳振坤相信自己的判断:


2010年选这个项目的时候,我是觉得这件事情需要做。当时互联网迅速发展带来了对大数据量、高并发的需求,大家对传统单机数据库有很大的抱怨,觉得它既没有扩展能力,又没有高并发的能力,成本还非常高,但是互联网根本就离不开关系数据库。这件事情怎么看都是一件应该要做、需要做的事情。

那时候阿里巴巴刚开始要“去IOE”,几乎没人想着说要自己从头做一个数据库。


传统关系数据库都是通过外部硬件来保证可用性,用便宜的PC机替换高端服务器之后,硬件更容易出故障了,如何保证数据库高可用?高可用和数据一致性如何同时保证?分布式系统怎么同时实现CAP的要求?


几十年来这么多做数据库的厂商,国内国外基本没有人成功过。


从零开始自研分布式关系数据库并全面替换Oracle,在当时有多少人会相信这真的能做成呢?当时整个淘宝一共只有两三千人,而Oracle有十几万人,就算整个淘宝的人全部去做数据库,跟Oracle比起来也只是很小很小的一个比例。

在阳振坤看来,如果一件事情几乎所有的人都认为它很重要、需要做,这件事情就已经不是创新了。当所有人都认为这件事情要做的时候,其实做这件事情的时机已经过去了一大半。


作为最底层的基础软件设施,数据库需要很长时间的积累,不可能今年做,明年就能真正大规模地用起来。虽然在2010年选择做数据库的时候,没有太多人看重和支持,对于团队来说这可能反而是一件好事。 无人关注,反倒给了团队几年积累发展的时间。

阳振坤不只要自研,还要 把Oc eanBase定位成恩师王选所说的“顶天立地”的技术产品 ——走标准化的路,做一个通用的关系数据库产品,而不是一个仅仅在公司内部使用的产品。



蛰 伏

“如果找不到愿意使用的业务,数据库系统是做不下去的。”


OceanBase的第一个客户来自淘宝收藏夹。


当时的淘宝收藏夹正处于业务高速发展期,数据库的访问量飞快增长,面临着第二年服务器数量需要翻一倍甚至几倍的局面。业务方忙于寻找解决方案的时候,阳振坤主动找上门去提出了可以用OceanBase帮他们解决问题,把服务器数量降低一个数量级。


四个月出Demo,八个月出试用版,一年后系统正式上线,淘宝收藏夹就这样成了第一个吃OceanBase螃蟹的业务,新数据库取得了非常好的效果。


这时候是2011年,收藏夹项目成为了OceanBase第一个小小的里程碑。

但在后续一年多的时间里,OceanBase团队一直在寻找更多业务,也确实有一些业务用了,却再也没有找到像淘宝收藏夹效果这么显著的业务。


做数据库难度大、周期长,前几年的投入也许有那么一点点产出,但其实跟投入比几乎微不足道,团队面临的压力可想而知。


数据库少不了人力投入,OceanBase团队从最早只有阳振坤一个人,后来发展到2012年已经有30多个人了。


占了这么多人头,但在公司里却没有足够多、足够重要的业务,没能产生足够大的价值和效益。团队陷入了一个比较困难的时期,甚至数度濒临解散。



当被问及“中间有没有想过这事如果没做成,怎么办?”,阳振坤回答得云淡风轻:“ 不是每件事都能做成,那太难了。 如果每件事在做之前都想着它能不能做成,那最后做成的事就会很少。


做数据库就像在黑暗中前行,守得住寂寞、担得了压力,甚至要有近乎偏执的性格才可能跨越死亡之谷,到达最终目的地。



阳振坤团队中一位新人曾经向他表达过自己的困惑,当时这位新人入职三个月了,因为有太多东西要学,什么也没做出来,而跟他同时入职天猫的新员工才来了一个月,做的系统就已经在线上使用了。阳振坤当时给新人讲了一个故事,他说:“你过三年再看,没有人还记得那个同学三年前在天猫上把网页做了什么改版,可是三年以后你今天做的东西还会在生产系统中使用。”


破 茧


在最困难也最危险的时候,团队迎来了一丝转机。2012年底,公司把OceanBase整个团队调到了支付宝。

2013年夏天,支付宝也开始启动“去IOE”,并希望能够把Oracle数据库替换掉。阳振坤又一次主动出击,向当时的主管、也是现在蚂蚁金服的CTO程立自荐了OceanBase的解决方案。

金融行业数据库,最怕的就是突发故障导致数据丢失,涉及到钱的事,多了少了都是不可接受的。为了解决高可用与主备库数据一致的矛盾, OceanBase将可用性做到了数据库系统内部,用一主两备或一主多备代替一主一备。


主库到备库同步的时候不要求同步到每个备库,而是同步到包括主库在内的多数库(超过半数),也就是说总共三个库中如果有两个成功了,这个事务就成功了。如果任何一台机器出了问题,这个系统的可用性和数据一致性都是可以保证的。

程立认可了阳振坤提出的方案,OceanBase团队开始埋头开发,第一个要攻克的目标是支付宝交易库。 2014年双11,OceanBase迎来了第一次大考




大促开始前的凌晨,各个团队都在自己的作战室里热火朝天地准备。当时任蚂蚁金服董事长的彭蕾去了OceanBase团队的作战室,问大家:“有没有信心?”


阳振坤跟彭蕾开了个玩笑说: 你看我们窗子都已经打开了,如果等会出问题,我们就准备从这跳下去。







请到「今天看啥」查看全文


推荐文章
CDA数据分析师  ·  Deepseek来袭,数据分析师会失业吗?
昨天
旁门左道PPT  ·  PPT重点别再标红了!!丑爆了!
2 天前
CDA数据分析师  ·  Deepseek来袭,数据分析师会失业吗?
4 天前
caoz的梦呓  ·  数字交易所,人傻,钱多,速来
8 年前
考研英语时事阅读  ·  【核心词汇】DAY 54
8 年前
严歌苓  ·  沉默
7 年前