阿里巴巴|阿里的分布式数据库OceanBase:帮公司省了几百个亿( 三 )


这一仗,OceanBase只许成功,不能失败 。
双十一前夜,OceanBase全员枕戈待旦 。蚂蚁集团的CEO彭蕾(花名Lucy)先前在阿里内部任首席人力官,知人善用 。她连夜来到了OceanBase的办公室,既是动员,也是督战 。
变动如此巨大,难说彭蕾的心里没有忐忑 。她问阳振坤有没有信心,阳恰好站在窗边 。他推开窗子,杭州11月已经开始转冷,办公楼下路人行色匆匆 。阳振坤知道,他和OceanBase的前途全部取决于此,他说:
“出了问题,我们准备从这跳下去 。”
7年后,OceanBase早已成为了国产数据库中的“头马” 。谈及此事,阳振坤只说是个玩笑 。而当年的压力、忐忑和“不成功便成仁”的决绝,都如同过眼云烟,成为了多年之后的笑谈 。
三、开源——OceanBase的梦想、挫折和救赎
开源是许多程序猿的浪漫 。 
尽管在外界看来十分令人不解——把自己辛苦写的代码免费向社会公开,但OceanBase还是坚决地选择了开源 。
抛开技术人的理想主义,OceanBase之所以选择开源,有如下这3大原因:
一方面,数据库需要跑量 。在足够的测试与反馈的过程中,数据库才能发现运行问题,进行有机的调整 。
OceanBase作为一个新概念的数据库产品,自然急需实际的测试和验证 。开源,就是给了OceanBase不断“打怪升级”的机会 。
另一方面,刚刚提到过,信任对于数据库产品来说是重要的壁垒,也是合作的基石 。用户要把数据委托给数据库,几乎是要把自己重要的“家产”托付出去 。
OceanBase把自己的代码和秘密全部公开,也是告诉用户自己值得信任 。基于这种信任,OceanBase也期望能形成自己的开源社区,扩大用户群 。
有人用,就有信任;有了信任,就有更多人用,也就自然能产生更多收益 。
阳振坤有足够的信心,即使OceanBase开源供公众使用,他人也很难弄懂其中的奥秘和机理 。前文也提到过,数据库本就是一项极度复杂的工程 。如同芯片一样,即使能够拿到成品,但难以对其进行反向工程 。即使开源,护城河也在 。
著名的数据库MySQL开源20余年,核心技术就仍然掌握在开发团队的手中 。这种技术壁垒映射到开源上,称得上是一种数据库的核心能力 。
于是在2011年,当时还属于淘宝体系的OceanBase第一次开源,而这次开源的经历难称圆满 。
这次开源对于OceanBase来说,颇有“赶鸭子上架”的意味 。OceanBase在2014年前还是以单点写入的模式为主,两年后才正式完成了1.0版本 。
而2011年为了迎合淘宝系统全面开源的潮流,也是技术人的一腔热情,OceanBase匆匆宣布开源,而实际公开的只是一个“半成品” 。这个版本当时还以单点写入为主,还完全不是团队理想中的样子 。
而通过这次开源,另外一个问题也随之映射出来:OceanBase的定位究竟是什么?究竟要做蚂蚁业务的一个支持部门,还是一个通用化的工具?
做支持,OceanBase需要更多面向公司内部的需求 。一些“量身定制”的需求,甚至可能超出常规数据库的功能范围 。如果被这种需求牵着走,则很可能造成工期上的损耗,也容易把自己的路走窄 。
阳振坤和团队想做的,一直都是一个通用化的工具 。但认知上的鸿沟,让首次开源的OceanBase无法获得业务团队足够的支持,开发团队则要把主要精力投入到产品1.0版本的开发中,很难分出人手去维护开源版本的持续更新 。 
难说谁对谁错,只是立场不同 。
无人可用,首次开源的OceanBase终于不再更新,而这次尝试也终于不了了之 。
而在这之后,潜心投入开发的OceanBase团队终于见到了回报 。
在支付宝内部,OceanBase逐渐全部接管了Oracle先前的“生意” 。为了让“去Oracle”的进程更加“丝滑”,OceanBase力求让这个过程可以“不改代码” 。
2015年3月15日,阳振坤在他的微博上自豪地宣布:“从上周五开始,淘宝/天猫/聚划算在支付宝上的交易,100%都在OceanBase上了 。你可能没有什么感觉 。”
一年后,OceanBase也终于全部接管账务数据库 。在一次采访中,阳振坤表示:“这……是标志着,OceanBase真正地在金融系统里面站住了脚 。”
取得了如此斐然成绩,在阿里内部也是拿奖拿到手软,但阳振坤和团队的志向却不愿意在此止步 。又过了一年,凭借着支付宝成功案例的光鲜背书,OceanBase首次对外商用,第一个客户就是南京银行 。


推荐阅读