五千年(敝帚自珍)

主题:【整理】转帖-中国数据库领域的一颗钉子是怎么被拔掉的? -- 投桃报李

共:💬72 🌺547 🌵17
全看分页树展 · 主题
家园 【整理】转帖-中国数据库领域的一颗钉子是怎么被拔掉的?

文章来源丨冲浪普拉斯

54岁的阳振坤坐在办公室里,迎着窗外的光线,刚刚打了个哈欠。

衣着朴素的他,在用眼镜布擦拭完镜片上的灰尘后,按下了电脑主机的开机键。

随着主机滴的一声,机箱中的硬盘也开始快速转动,兢兢业业地开始了自己的固定工作。

坐在桌前的阳振坤就像一头老黄牛一般,平和、低调、坚韧,日复一日,年复一年地工作着,全然不顾刷新世界纪录的喜悦,一切就像没有发生过一样。

今年10月1日,一个由阿里巴巴自主研发的分布式数据库OceanBase,在一项业内认可的、衡量数据库性能的国际赛事(TPC-C)上夺得了冠军。

而这个榜单上,至今只有阿里巴巴这唯一一家中国公司,性能是Oracle的两倍,成本却只有Oracle的70%,在此之前,该榜单已经被Oracle为首的美国科技公司垄断了9年。

500

中国工程院院士、计算机专家李国杰这样评价OceanBase:「这是中国基础软件取得的重大突破」。

但主导OceanBase项目的阳振坤却依旧保持着谦逊:「数据库研发需要长期积累,更需要百花齐放,十年来OceanBase终于走出了一条自己的路,今天我们取得了一点小小的成绩,未来将继续为世界下一代数据库的发展探索和努力。」

十年磨一剑,这对赛道上奔跑的选手们来说只是一个开始,但对我们中国程序员们来说,是一件在数据库领域扬眉吐气的大事。

这背后的故事,每个人都应该知道。

01 盛满金条的美国马车

提到数据库,中国人最熟悉的是一家美国公司甲骨文,无论是大大小小的互联网公司,还是传统的金融银行,都离不开它的数据库系统Oracle,而该系统至今牢牢统治了中国数据库市场30年。

回顾这段历史,不难得出一个结论——中国的数据库技术发展史,基本上是一段西方技术的垄断史:

1978年,人大老师萨师煊在黑板上写下「数据库」三个字,标志着数据库理论正式从美国传入国内,人们第一次在大学课堂里接触到数据库的概念雏形。

也正是他在4年后,起草了国内第一本「数据库系统概论」的教学大纲,为国家培养了第一代数据库学生。

这群第一代接触到数据库的学生们,毕业之后很快将该技术应用在国防、军工等领域,不少人还成为国家科技成果的奠基者。

但技术应用得快,反而从侧面说明了我国计算机科学的一片空白。

那时中国还并没有什么像样的计算机技术,自然抵挡不了美国科技公司们来华掘金的热情,更抵挡不了先进科技带来的技术碾压,美国的科技公司们无需什么坚船利炮,Oracle进军中国简直是轻而易举。

500

Oracle创始人埃里森初次到访中国的时候就展现了这种高傲,这位数据库帝国的掌门人计划到长城拍摄推广自家设备的宣传片,时任甲骨文中国总裁的冯星君在他的要求下,找了20个小学生一起参与拍摄。

本来约好的8点开拍,但直到9点埃里森还没有起床,当时北京零下二十度的天气,小学生们在没有暖气的大巴上嚎啕大哭,冯星君只好带着哭腔给埃里森打电话催促。

而两个小时后,大老板才终于现身。

无奈的等待和敢怒不敢言背后,是中国对Oracle数据库的依赖,但又有什么办法呢?核心技术在别人手中,你能不用么?

Oracle入华后不到五年的时间,直接就赶上了中国电信系统推进的「九七工程」,那时各家各地都在抢着接电话,市话服务刚刚开始普及,资费大幅下降,普通家庭也接得起电话了,邮电局门前动不动就要排起10米长龙,通信是中国老百姓们的刚需。

由于没有像样的对手,Oracle不费吹灰之力,一举拿下了东三省邮电管理局五期工程的大单,从此成为了中国电信行业最大的数据库供应商,并垄断至今,动辄每年就是几千万上亿的高额软件使用费,不交就无法继续正常使用,但也没有安全便宜的替代品,没有自主的数据库技术中国企业只能受人摆布。

同期过来的IBM、EMC也借着中国这波电信、金融行业第一次信息化基础建设的东风,在数据库配套的小型机、存储设备等领域攻城略地。

中国的信息化基础建设元年,是属于IOE(IBM、Oracle、EMC)这三驾马车的,可惜这三驾马车都是美国公司,源源不断地把赚得的金条拉向大洋彼岸。

也是在这一时期,国产数据库虽然开始萌芽,但由于技术的差距,金融、电信、航空等重要关键客户并没有广泛、批量采用,导致国产产品无法真正发展壮大。

到了2000年左右,中国互联网行业开始兴起,各大门户网站开始逐渐意识到Oracle数据库的缺点——贵。

想要临时增加一些服务器承载更多流量?请提前几个月下订单,而且一旦流量下降,这些闲置的机器就成了摆设,各公司还要为此持续支付每年的使用费。

那时的门户网站最期望的是有社会热点出现,但也害怕服务器支撑不住如此大的流量而挂掉。

淘宝、支付宝几年后也遭遇了同样的问题,从04年开始,随着阿里巴巴商户、个人用户的激增,高额的数据库使用费已经让阿里巴巴有些吃不消。

09年首次提出双十一的淘宝,更是面临着卖多少货都不是问题,问题是服务器和数据库顶不住的尴尬场景。

支付宝当时用的数据库还是Oracle,为了应对双11这天的天量数据,只能再花数亿千万人民币的价格去购买主机,在交易恢复常态时,昂贵的主机旋又陷于长期闲置状态。

有人曾经这样形容整个过程:「你开了家洗衣店,有一天来洗衣服的特别多,根本洗不过来,无奈之下你被迫买了几台新机器来洗更多的衣服,但是几天后便没那么多来洗衣服的顾客了,洗衣机闲置在那里,但你还不能不买,否则店里的顾客会把出入口堵得水泄不通,洗衣店就会瘫痪」。

也是在这个阶段,阿里巴巴意识到问题的严重性,我一个中国企业,为什么要被你一个美国企业掣肘呢?我不能自己研发么?阿里成为了中国第一家喊出去IOE的企业,战略性地选择放弃Oracle,使用开源免费的MySQL数据库尝试进行自主开发。

但自主开发需要高级人才啊,怎么办?

程序员阳振坤被这个时代选中了。

02 天才的天时地利人和

阳振坤 1984 年考入北京大学数学系,属于那个时代的少年天才。

读硕士时又师从本系的张恭庆院士,后来觉得计算机更有意思,就转向计算机领域,博士师从计算机系的王选院士,没错,就是发明了激光照排,推动了我国印刷业进步、获得国家最高科技奖的王选,阳振坤可以说是名门之后了。

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

1995 年阳振坤所在团队研究成果获国家科技进步一等奖,1997 年也就是他 32 岁那年,被破格晋升为教授,还成为了北大首批「长江学者奖励计划」特聘教授之一。

500

按理说按照阳振坤的能力和机遇,在科研圈成为下一代学术泰斗不是什么问题,但阳振坤对于把科研运用到工业领域明显兴趣更大。

2002年,这位学术明星选择离开象牙塔,投身工业界,先后加盟联想、微软、继而是百度,从做激光照排,转向无线网络协议,再到分布式系统。

换了几个赛道的阳振坤,发现无论是激光照排还是无线协议,都已经没什么可研究落地了,科研界提出的方案早已在工业界落地,但分布式数据库那时还没有人实现过。

通俗来说,集中式数据库是把所有衣服都交给一个几十台洗衣机的洗衣店来处理,而分布式数据库是开了十几家洗衣店,每家店只有几台洗衣机,但可以把衣服不停运输给附近空闲的洗衣店,这样一来不浪费闲置的机器,二来整个洗衣系统可以同时接收更多的衣服。

分布式数据库是一个海量数据库,可以存放千亿条以上的记录,它就像一名超级会计师,可以在一秒内同时记数万笔帐,并且不出一点错。

不过,起源于上世纪6、70年代的分布式数据库系统一直存在于理论中,没人能够实现,就连阳振坤本人,都会觉得这是一件不可思议的事情。

因为它的优点和缺点同样明显,优点是可以大大降低成本,缺点是这些普通PC机单个来看都达不到金融级别的稳定性,如果其中一台机器「罢工」,容易产生多米诺骨牌效应般的连锁反应——最终机器会集体崩溃。

在技术上实现一台机器出问题,其他机器即时补好备份数据不难,难点在于让每台机器的工作量始终保持均衡,否则工作量过大的机器容易崩溃,继而又是一场大崩溃,每个洗衣店接收多少衣服是难点中的难点。

这个短板被视为世界级技术难题,这也是为什么全球前三大数据库甲骨文、IBM、微软都采用集中式系统的重要原因。

一来它们的主机稳定,一台动辄数百万美元,存储空间不够,那就只能再买一台,二来卖硬件+技术服务费的模式可以随意宰割没有这项技术的中国企业们,高额的利润和垄断的地位让他们没有动力「浪费精力」在研发新技术上。

而「情怀型」程序员阳振坤想做的,恰恰是解决分布式系统的这个难题。

2006年,他从微软跳到百度,从事分布式系统研发。

这确实也是百度的刚需,作为中文最大的搜索引擎,每天都要抓取无数的内容,数以万亿计的网页,而且数据量还在迅速增长,百度的服务器和数据库如果全部使用IOE,成本高得惊人。

但很不幸,百度并没有给他持续研究的机会,在百度做了刚满两年,他的团队就遭遇了解散,项目被砍掉——做分布式系统需要很大投入,但公司不愿再付出更多的金钱、时间成本,百度最终采用了一套现成的开源系统,尽管阳振坤主导的分布式系统在性能上已经超过了开源系统。

45岁程序员要被淘汰的行业规律,在阳振坤眼中似乎不是个事儿,此处不留爷,自有留爷处,哪里需要分布式我就去哪里。

2010年,到阿里巴巴面试的阳振坤,找到了发挥自己光和热的地方。

03 阳振坤磨了十年的剑——OceanBase

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

加入淘宝之后,摆在他面前的有两个选择,一个是加入正在快速发展的淘宝业务团队,去主管技术,这是一条已经能看到很大的发展机会、相对轻松的道路,一个月业务就会翻一倍,想赚钱、升职真的轻轻松松。

另一条是阳振坤后来自己选的,从头组建团队做一个项目,商业公司是要追求盈利的,做这种业务很可能面临跟百度同样尴尬的境地,投入太多产出太少,没人用的结果就是项目全员被裁。

这个项目,就是今天我们看到的 OceanBase,一个像海洋一样的海量数据库。

王选曾经教育阳振坤要做「顶天立地」的事情,顶天是指产品的技术要领先,只有站在技术制高点上才不会受外人宰割,立地是指这个产品一定要是一个通用的,整个社会都可以普遍使用的技术。

基于此,阳振坤是铁了心的要搞中国技术人自己的分布式数据库,不再依赖欧美的高价产品,而是做一款中国人自研的通用型项目。

从加入淘宝到选择做自研数据库OceanBase,他一共只花了两个星期的时间。

OceanBase 立项之初,除了阳振坤和他当时的直属领导,其他人对这个项目要么不关心,要么不赞成。

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

跑在「海洋库」上的第一位「客户」是淘宝收藏夹,那时是2011年,淘宝用户已达数千万级,「每人收藏十条,那就是几亿条。」

为了确保收藏夹在双11当天万无一失,整个团队连轴工作了三个星期,迭代、压测、调试、再压测、再调试……「当时在讨论群里,凌晨两点,凌晨三点、凌晨四点……一直都有人在说话。」双11当天,OB交的第一份成绩单让阳振坤满意,「那时,我们都觉得机会来了。」

现在看来,当时的判断显然过于乐观。阿里内部对自主研发数据库很快产生分歧,反对者认为,不如采用开源系统性价比更高,就像百度那样。

这样的意见一度占据上峰,理由也确实难以反驳:全球三大数据库制造商已存在几十年,每家公司都拥有数以万计的员工,还没有做成功的,淘宝当时全公司只有几千人。

12年,OceanBase已经得到了初步验证,30多个人还在忙着加功能,但年底的时候到了一个非常危险的状态——愿意使用OceanBase的公司很少,阳振坤非常担心公司认为OceanBase产投比太小,关闭整个项目。

好在公司去IOE化的战略没有改变,不但没有关闭OceanBase,反而是把团队做了一个调整,从淘宝调到了支付宝团队,获得了一个从头开始的机会,「你们能把银行的数据库替换掉,推广OceanBase绝对不是问题」。

「如果阳老师愿意妥协,放弃OceanBase,转去做开源系统的技术优化,早就拨云见日了。但这显然不是他想干的事情,他的目标,就是想做一个中国技术人自主研发的数据库。」一位不愿意透露姓名的开发者这样评价OceanBase。

支付宝母公司蚂蚁金服现任首席技术官程立是OceanBase的「贵人」,他同意将支付宝1%的交易库存数据在这个数据库上跑跑试试。

500

当时的支付宝,遭遇的世界级难题是,双11的交易量呈几何级增长,未来势必还将继续呈几何级增长,事实也证明了这点——2017年双十一实际支付峰值达每秒25.6万笔,是前一年支付峰值的2.13倍,是2009年第一次双十一支付峰值的1280倍。

这一还未正式上过「真正战场」的数据库,被支付宝高层认定是解决双11支付峰值这一世界级难题的「钥匙」。OceanBase最终也不负众望,「原定搬1%的交易库存数据到OB上来,最后搬了10%。」

2013年,斯诺登的棱镜门事件曝光,达梦、金仓、神通、南大等一批国产数据库得到了广泛关注,中国企业开始不信任Oracle为首的美国企业,这些国产数据库开始广泛应用于央企、国家财政、军事等专用领域,OceanBase也寻觅到了证明自己的机会。

2014年双11,OceanBase搬了支付宝10%交易数据链,扛住了压力,获得了支付宝团队的初步认可。

2015年双11,支付宝整个交易库都换成了OceanBase。

2016年双11,支付宝整个账务库都搬过来了,而这一核心数据被称为「金融系统数据库皇冠上的明珠」。

蚂蚁金服的CEO大奖,当时就是给了OceanBase团队,也是第一次给技术团队。

这几个生产线全用Oceanbase替换了之后,标志着这款从零开始,中国自主研发的数据库真正在金融系统里面,最核心,最关键的领域站住了脚。

到了2017年,Oceanbase开始走出支付宝,走出蚂蚁金服,在外面的商业银行开始广泛被使用,这又是一个新的里程碑。

从没有,无人问津,到内部试用,再到完全替换,走出阿里,走进银行业,花了阳振坤团队整整7年。

04科技圈马太效应被阿里打破

马太效应是全球科技圈心照不宣的准则,科技越强的公司和国家,越可以攫取更多的利润,称霸市场,达到「技术殖民」的目的,而中国的数据库市场就是这样被Oracle「技术殖民」的,牢牢垄断了30年。

因为只有你的技术可以让性能达到一个最高标准,那么你只需降价到和比自己差的产品相同价位即可,同样的钱,为什么企业不买性能更好的呢?待国产的竞争对手被这种让利打法活活挤兑致死,Oracle又可以重新涨回高价,而这时,已经没有一个能打的对手了。

市场就是这么无情。

但让Oracle这家数据库霸主想不到的是,阿里巴巴的电商业务和中国的人口基数,会催生出了双11这种每秒要处理17亿条数据的销售活动,而正是这种巨大的流量涌入,以及高额的Oracle授权费用,给了中国人做自己的数据库的动力和契机,也给了OceanBase真枪实弹练兵的机会。

阿里用10年的时间赶超了美国科技巨头42年的数据库技术积累,从使用美国技术,模仿美国技术,掌握美国技术,到反超美国技术,基础技术研发的突破是背后无数个中国工程师们日以继夜的付出,最初怀着「顶天立地」愿景的OceanBase,终于拔掉了数据库领域中西方垄断的这颗钉子,困扰中国多年的问题得以解决。

而这样的大背景下,Oracle的CEO埃里森对中国的评价:「中国是美国最大的竞争对手,不能让中国产出比美国还多的工程师」。

然后这位CEO今年解雇了900名中国员工。

阿里巴巴打破Oracle的记录,这不只是一个产品的PK。

这是一个换道超车、面向未来的改变,这也是中国独特的土壤、独特的时代给我们的千载难逢机会

通宝推:strain2,迷途笨狼,大道至简,独立寒秋HK,梓童,红军迷,脑袋,陈王奋起,柴门夜归,楚庄王,桥上,唐家山,jhjdylj,逍遥蜀客,阴霾信仰,朴石,
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河