从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。

从危在旦夕到浴火重生,OceanBase 这十年经历了什么?今天,我们一起了解它背后不为人知的故事。

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

最终 OceanBase 还是跨越了死亡之谷,在蚂蚁金服实现了全面替代 Oracle,成功支撑了过去 5 年“双 11”蚂蚁金服全部核心业务的重压,创造了 25.6 万笔 / 秒支付峰值和 4200 万笔 / 秒请求数处理峰值这一业内全新的纪录。自 2017 年开始,OceanBase 开始走向外部商用,目前已经在数十家商业银行落地,其中包括南京银行、浙商银行、苏州银行、人保健康险等。OceanBase 帮助南京银行共同打造“鑫云 +”互金开放平台,实现贷款交易处理能力 10 倍提升,轻资产模式显著降低成本,从原有的 30~50 元 / 账户降低到上线后的 4 元 / 账户。日处理百万笔放款,平均处理时间小于 1 秒,让老百姓借钱更方便,真正实现了普惠金融。

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

时 机

2009 年开始,大量新的非关系型数据库如雨后春笋般涌出,在整个数据库行业掀起了一场空前盛大的 NoSQL 革命,如今赫赫有名的 Redis、MongoDB 皆诞生于那一年。NoSQL 的拥护者们积极提倡使用非关系型的数据存储,从而获得丰富而随需应变的可伸缩性。这时候的关系数据库早已过了而立之年,在此期间虽然曾短暂爆发过一些所谓终结关系数据库的革命,但最终都失败了,丝毫没有动摇到关系数据库的主导地位。

但这一次似乎与以往不同,火热发展的云计算带来了对更大规模数据库的需求,而关系数据库的缺点则相应地被越来越多人诟病:不能够扩展、容量小、处理能力不够、成本又非常高。在当时的很多人看来,关系数据库的末日是真的要来了。2010 年,NoSQL 革命愈演愈烈,有行业专家发文直指“云计算时代属于 NoSQL,关系数据库已经日薄西山”。

那时阳振坤已经做了两年多的自研分布式系统,十分看好云计算系统的发展机会。同一年,阳振坤加入阿里巴巴,开始了分布式关系数据库 OceanBase 的研发。

数据库从诞生起已经有几十年的时间了,但基本上它的市场格局就没有多少变化,最早起来的几家厂商今天还是占据着统治地位。因为数据库非常难被替换,它处在整个产品或者产业链最底层的位置,替换风险很大,但收益相比起来却小得多。这也是为什么像 IBM、微软这样的后来者也无法取代 Oracle。这就导致了数据库变成了一个门槛极高、强者恒强的领域,后来者很难居上。前有 Oracle 挡道、后有 NoSQL 数据库追赶,在大部分人看来,那时候怎么也不会是自研关系数据库的好时机,但阳振坤却不这么想。

加入阿里之后,阳振坤发现无论对淘宝还是支付宝,关系数据库都扮演着十分关键的角色,在使用上根本不可能摆脱。但已有的数据库,无论是商业数据库还是开源数据库,都有非常多的局限,远远无法满足如淘宝、支付宝这样的互联网和金融业务对高扩展、高并发、高可用和低成本的需求。单机数据库已经走到了尽头,下一步只能走向分布式,而分布式恰好是阳振坤所擅长的。如果能将分布式技术揉到数据库里面,解决单机数据库存在的各种问题,对当时整个互联网的基础设施都会是一个巨大的帮助和进步。阳振坤认为他们赶上了一个“天时地利人和”的好机会。

“天时”指的是互联网的爆发式增长对数据库的高并发、大数据量提出了很大的需求,有了需求去推动就会容易得多;“地利”指的是阿里内部从淘宝到蚂蚁金服拥有大量需要使用数据库的场景,OceanBase 可以从不是特别重要的应用场景开始尝试,一步步地将数据库做成关键系统;“人和”指的是当时单机数据库已经走到了尽头,下一步一定是走向分布式,而当时团队成员大多是研究分布式出身,做的就是自己最擅长的工作。用阳振坤的原话就是:“这是千载难逢的机会,我们一定要做,而且一定能做成。”

选 择

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

“一个不断破格的人”,这是早前某次采访中记者对阳振坤的评价。1984 年阳振坤考入北京大学数学系,硕士师从本系的张恭庆院士,后又转向计算机领域,博士师从计算机系的王选院士。需要强调的是,他修完大学课程只用了 3 年,硕士只用了一年多,成为王选院士博士生的时候他只有 24 岁。1995 年其所在团队研究成果获国家科技进步一等奖(排名第四),1997 年也就是他 32 岁那年被破格晋升为教授。

回想在北大的那些年,阳振坤觉得特别感激的是,学数学让他有了一个很好的数学基础,后来转到计算机系以后,碰到了王选老师,又打下了一个比较牢靠的计算机基础,这才有了他后来的今天。作为对阳振坤影响最大的人,恩师王选有两点让他至今受益:一是如何判断一件事情是否有价值,二是“顶天立地”的技术理念,“顶天”就是技术上要不断追求新突破,“立地”就是要把技术做成通用产品,让整个社会都能普遍使用。

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

这不是一个容易的选择,但阳振坤相信自己的判断:“2010 年选这个项目的时候,我是觉得这件事情需要做。当时互联网迅速发展带来了对大数据量、高并发的需求,大家对传统单机数据库有很大的抱怨,觉得它既没有扩展能力,又没有高并发的能力,成本还非常高,但是互联网根本就离不开关系数据库。这件事情怎么看都是一件应该要做、需要做的事情。”阳振坤没有说出来的是,这件事到底有多难。

那时候阿里巴巴刚开始要“去 IOE”,几乎没人想着说要自己从头做一个数据库。传统关系数据库都是通过外部硬件来保证可用性,用便宜的 PC 机替换高端服务器之后,硬件更容易出故障了,如何保证数据库高可用?高可用和数据一致性如何同时保证?分布式系统怎么同时实现 CAP 的要求?几十年来这么多做数据库的厂商,国内国外基本没有人成功过。而且从公司的业务发展的角度,也不可能等你几年把数据库做出来,再去发展业务,更可行的做法是基于开源做出一些东西,让业务先往前走。因此 OceanBase 立项之初,除了阳振坤和他当时的直属领导,其他人对这个项目要么不关心,要么不赞成。从零开始自研分布式关系数据库并全面替换 Oracle,在当时有多少人会相信这真的能做成呢?当时整个淘宝一共只有两三千人,而 Oracle 有十几万人,就算整个淘宝的人全部去做数据库,跟 Oracle 比起来也只是很小很小的一个比例。

在阳振坤看来,如果一件事情几乎所有的人都认为它很重要、需要做,这件事情就已经不是创新了。当所有人都认为这件事情要做的时候,其实做这件事情的时机已经过去了一大半。作为最底层的基础软件设施,数据库需要很长时间的积累,不可能今年做,明年就能真正大规模地用起来。虽然在 2010 年选择做数据库的时候,没有太多人看重和支持,对于团队来说这可能反而是一件好事。无人关注,反倒给了团队几年积累发展的时间。

阳振坤不只要自研,还要把 OceanBase 定位成恩师王选所说的“顶天立地”的技术产品——走标准化的路,做一个通用的关系数据库产品,而不是一个仅仅在公司内部使用的产品。每个公司使用任何产品其实都只用了其中很小的一部分功能,如果只做满足公司自用需求的数据库,可能只需要投入十分之一、五分之一的人力物力时间。而要做成通用产品就意味着必须实现所有功能,这要困难得多,团队的投入、花费的精力和时间也要大好多倍。但也因为阳振坤最初的坚持,今天的 OceanBase 才得以走出蚂蚁金服,走进多家银行系统。不过这都是后话了。

蛰 伏

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

OceanBase 的第一个客户来自淘宝收藏夹。当时的淘宝收藏夹正处于业务高速发展期,数据库的访问量飞快增长,面临着第二年服务器数量需要翻一倍甚至几倍的局面。业务方忙于寻找解决方案的时候,阳振坤主动找上门去提出了可以用 OceanBase 帮他们解决问题,把服务器数量降低一个数量级。四个月出 Demo,八个月出试用版,一年后系统正式上线,淘宝收藏夹就这样成了第一个吃 OceanBase 螃蟹的业务,新数据库取得了非常好的效果。这时候是 2011 年,收藏夹项目成为了 OceanBase 第一个小小的里程碑。

但在后续一年多的时间里,OceanBase 团队一直在寻找更多业务,也确实有一些业务用了,却再也没有找到像淘宝收藏夹效果这么显著的业务。做数据库难度大、周期长,前几年的投入也许有那么一点点产出,但其实跟投入比几乎微不足道,团队面临的压力可想而知。数据库少不了人力投入,OceanBase 团队从最早只有阳振坤一个人,后来发展到 2012 年已经有 30 多个人了。占了这么多人头,但在公司里却没有足够多、足够重要的业务,没能产生足够大的价值和效益。团队陷入了一个比较困难的时期,甚至数度濒临解散。

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

做数据库就像在黑暗中前行,守得住寂寞、担得了压力,甚至要有近乎偏执的性格才可能跨越死亡之谷,到达最终目的地。阳振坤团队中一位新人曾经向他表达过自己的困惑,当时这位新人入职三个月了,因为有太多东西要学,什么也没做出来,而跟他同时入职天猫的新员工才来了一个月,做的系统就已经在线上使用了。阳振坤当时给新人讲了一个故事,他说:“你过三年再看,没有人还记得那个同学三年前在天猫上把网页做了什么改版,可是三年以后你今天做的东西还会在生产系统中使用。”

破茧

在最困难也最危险的时候,团队迎来了一丝转机。2012 年底,公司把 OceanBase 整个团队调到了支付宝。支付宝属于金融领域,面临的数据库挑战会比其他业务更大,这相当于给了 OceanBase 团队一次从头开始的机会。

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

金融行业数据库,最怕的就是突发故障导致数据丢失,涉及到钱的事,多了少了都是不可接受的。为了解决高可用与主备库数据一致的矛盾,OceanBase 将可用性做到了数据库系统内部,用一主两备或一主多备代替一主一备。主库到备库同步的时候不要求同步到每个备库,而是同步到包括主库在内的多数库(超过半数),也就是说总共三个库中如果有两个成功了,这个事务就成功了。如果任何一台机器出了问题,这个系统的可用性和数据一致性都是可以保证的。

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

大促开始前的凌晨,各个团队都在自己的作战室里热火朝天地准备。当时任蚂蚁金服董事长的彭蕾去了 OceanBase 团队的作战室,问大家:“有没有信心?”阳振坤跟彭蕾开了个玩笑说:“你看我们窗子都已经打开了,如果等会出问题,我们就准备从这跳下去。”

在一开始的计划里,双 11 交易流量的 1% 会切给 OceanBase,但因为当时的 Oracle 数据库系统支撑不了汹涌而来的巨大流量,最后 OceanBase 成功支撑了 2014 年双 11 10% 的交易流量。经过了双 11 的考验之后,OceanBase 得到了更多的认可和支持。后来 OceanBase 团队获得了 2015 年蚂蚁金服的 CEO 大奖,这也是第一次由技术团队拿到这个奖。彭蕾希望借这个奖鼓励那些能够沉下心来、扎扎实实地把一项技术做好做扎实的技术人们。

2015 年春夏,支付宝交易库和支付库都换成了 OceanBase;2016 年,支付宝账务系统上线,这也标记着 OceanBase 真正在金融系统最核心最关键的领域站住了脚。2017 年,OceanBase 开始走出支付宝、走出蚂蚁金服,在商业银行推广使用,至今已在数十家商业银行上线运行。

从濒临解散到浴火重生,OceanBase 已经走了快十年,但在自研关系数据库这条漫漫长路上,OceanBase 才仅仅走出了一小步。在阳振坤看来,OceanBase 现在“开了很大的一朵花,但是结了很小的一个果”,虽然它已经向所有人证明了通用的分布式关系数据库是能够做成的,而且能真正应用在生产系统中,但今天 OceanBase 的应用还很有限,远远没有充分发挥它的价值。

变局

如今再回看十年前那场轰轰烈烈的 NoSQL 革命,很难一语判定它到底成功与否。从好的一面来看,在过去十年里,NoSQL 数据库确实取得了非常亮眼的成绩,在软件工程师阵营里越来越受欢迎,其中 MapReduce、Bigtable、Cassandra、MongoDB 等都是其中的佼佼者。然而这两年,业界也在重新拥抱 SQL,几乎所有的云计算服务提供商都在提供备受青睐的关系型数据库管理服务:例如 Amazon RDS、Google Cloud SQL、Azure PostgreSQL。对于亚马逊来说,其兼容 PostgreSQL 和 MySQL 的数据库产品 Aurora 一直是 AWS 历史上增长最快的服务。

Gartner 在 2018 年的操作型数据库管理系统(OPDBMS)魔力象限中推测“到 2020 年,关系数据库技术将继续用于至少 70% 的新应用和新项目。”

 

从上到下依次为2018、2017、2016、2015年Gartner操作型数据库管理系统魔力象限图

以上是 Gartner 过去四年对操作型数据库管理系统的分析,其中头部领导者 Oracle 和微软一直稳如磐石。正因为数据库领域的理论和工程实践早已成熟,前前后后各家公司做产品和技术的思路都差不多,所以很难突破现有产品的框架,更难以颠覆已有市场上占领先地位的厂商。

但即使是数据库这样非常成熟的细分领域也发生了不少动荡,相比四年前,如今活下来的公司只剩下一半;谷歌凭借 Spanner 从一招鲜玩家杀入到远见者,阿里云一举跻身远见者,且拥有最多的 DBMS 服务品种;亚马逊连年快速上升,如今已经跟 Oracle、微软非常接近。

阳振坤告诉我们,OceanBase 当初没有选择基于开源或已有的技术思路开发,而是选择走分布式自研这条路,虽然走得艰难,但做成之后就会成为不可替代的优势。过去这十来年正好是分布式系统发展的十来年,转型到分布式已经成为所有人都认可的一个选择。如今,以 Google Spanner、蚂蚁金服的 OceanBase 为代表的分布式关系数据库,不仅解决了关系数据库的扩展性问题,也极大地降低了关系数据库的成本(数量级的硬件成本的降低),还提升了可用性。

现在,兼容 Oracle 的工作是 OceanBase 的重中之重。OceanBase 团队的目标是,用两年时间做到 Oracle 业务的平滑迁移,不需要修改一行代码、不需要业务做任何调整就能够将数据库迁移过来。

对于数据库的未来,阳振坤表示:“尽管今天在业界,数据仓库主要依赖的不是关系数据库,但可以看看 Google。今天 Google 的大数据分析 / 数据库仓库基本都统一到了 Spanner,这应该是 5-10 年后产业界的写照。”未来,OceanBase 还会走得更快、更远。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两成开发者月薪超 1.7 万、算法工程师最紧缺! | 中国开发者年度报告

整理 | 郭芮 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) “求知若饥,虚心若愚”——这个原本出自《全球概览》的俳句,因为乔布斯在斯坦福大学毕业演讲中的引用而备受推崇,流传成为 IT 界的至理名言之一。在…

拒绝版权流氓!阿里巴巴重磅发布免费商用字体

UCAN 2019 设计大会在杭州国际博览中心开幕,超过 4000 位来自世界各地的设计师参与了这场阿里巴巴设计举办的盛会。 继去年品牌升级为阿里巴巴设计(Alibaba Design)后,阿里巴巴经济体设计委员会委员长杨光(青云&#…

全站CSRF漏洞

文章目录二、解决方案2.1. 创建CSRF防御统一管理2.2. 创建csrfToken校验2.3. 加密工具类2.4. 查询实战2.5. 添加和更新实战默认guns不支持添加headers的需要添加ax2二、解决方案 2.1. 创建CSRF防御统一管理 package com.gblfy.sys.config.web.csrf;import com.gblfy.base.uti…

AutoML数据增广

DeepAugment是一个专注于数据扩充的自动化工具。 它利用贝叶斯优化来发现针对您的图像数据集定制的数据增强策略。 DeepAugment的主要优点和特点是: 降低CNN模型的错误率(WRN-28-10显示CIFAR10的错误率降低了60%)通过自动化流程可以节省时间比谷歌之前的解决方案—…

基于TensorFlow.js的JavaScript机器学习

Credits: aijs.rocks 虽然python或r编程语言有一个相对容易的学习曲线,但是Web开发人员更喜欢在他们舒适的javascript区域内做事情。目前来看,node.js已经开始向每个领域应用javascript,在这一大趋势下我们需要理解并使用JS进行机器学习。由…

阿里巴巴、支付宝员工都在用的知识管理工具,究竟有何特别?

公司内各部门工作文档难以共享?缺乏高效便捷的团队协作工具?文档放到在线云平台担心安全?…… 2019年4月22日,蚂蚁金服旗下知识创作与分享工具语雀发布“空间功能”。语雀在支持在线文档编写、多人协作、灵活的团队管理和金融级安…

探索处理数据的新方法,8 个重点带你搞懂云数据库——DBaaS(数据库即服务)到底是什么!...

作者| Rohan Wadiwala、Mangesh More翻译 | 天道酬勤,编辑 | Carol出品| CSDN云计算(ID:CSDNcloud)在分析的世界中,网站的每次点击都是数据分析的候选对象,显然,这会涉及大量的数据生成。对于海…

阿里开发者招聘节 | 面试题05: 关于epoll和select的区别,哪些说法是正确的?

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案将在专辑结束后统一汇总分享,点此进入答题并围观他…

c语言printf里的自增,笔试题记录:C语言——函数printf()的执行机制;先自增与后自增的区别;取值运算与自增运算的优先级...

考点:函数printf()的执行机制:参数按照从右至左的顺序入栈,在调用时出栈;考察运算符“”在变量之前、变量之后的运算机制,即是先赋值/还是先自增*(p)、*(p)、*(p1)之间的区别后面两项主要是考察:取值运算与…

分布式系统:CAP 理论的前世今生

CAP 理论是分布式系统设计中的一个重要理论,虽然它为系统设计提供了非常有用的依据,但是也带来了很多误解。本文将从 CAP 诞生的背景说起,然后对理论进行解释,最后对 CAP 在当前背景下的一些新理解进行分析,澄清一些对…

你的企业混合云了吗?来看看评估混合云解决方案时要注意的6个原则!

作者| Matt Kimball翻译 | 天道酬勤,编辑 | Carol出品| CSDN云计算(ID:CSDNcloud)混合云如今很流行。几乎每个IT公司都声称已部署了解决方案,但实际上实现的却很少。相反,它们拥有与多个云实例进行某种程度…

c语言int超出范围字符串,Go返回int64类型字段超出javascript Number范围的解决方法...

Go返回int64类型字段超出javascript Number范围的解决方法最近在项目中,一个go服务给前端提供了一个接口,返回json格式数据,其中Int64字段会超出javascript Number可表示的最大的Int值会丢精度,可以通过返回string类型值来屏蔽这个…

构建可靠系统的原则与实践

随着阿里技术的发展,我们的技术系统越来越成为社会的基础设施,对于这些系统的可靠性要求也就越来越高。但是实际上很多的基础的产品和系统确仍然会出现一些稳定性问题,那么如何才能构建可靠的系统呢?是不是制定非常严格而细致的规…

看完就能独自把集群搭起来!Hadoop HDFS完全分布式环境搭建以及技术详解

作者 | 慢慢变成大佬责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)在文章开始之前,作者想要告诉大家:读懂本篇文章,能让小白快速入门,并且能够搭建完全分布式的集群,以及能对Hadoop …

使用idea创建JavaWeb项目

【第一步】 File—New—Project 【第二步】 选择Java Enterprise版本,然后配置tomcat 注意:这里关联的tomcat home指的是tomcat的解压目录(bin目录的上一级目录); 【第三步】 选择使用模板创建项目 【第四步】 填写…

阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事

本文主要带大家了解服务稳定性的重要性和相关策略。策略大概分两部分,第一方面从架构层面介绍保障服务稳定性的常见策略(限流,降级,隔离,超时,重试和集群)。第二个方面是从流程方面(…

ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)

1、如下为.dat文件中文件头的基本格式:MagicNumber Format StartingAddress PageNum Length [NewFormat]下面是分别的解释:MagicNumber:1651.Format:a number from 1 to 4, indicating the format of the samples in the file. Th…

阿里开发者招聘节 | 面试题06-07: MySQL的数据如何恢复到任意时间点

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案将在专辑结束后统一汇总分享,点此进入答题并围观他…

通过接口操作MyBatis及数据库配置文件

优点: 不用每次实例化SqlSession配置优于硬编码减少sql书写错误的概率规范代码,面向接口服务 文章目录一、回顾二、如何通过接口操作MyBatis2.1. 文件结构2.2. 依赖jar包2.3. 表结构2.4. mybatis配置文件2.5. db配置文件2.6. 获取SqlSession工具类2.7. 基…

厉害!中国AI企业50强榜单!看完员工待遇,网友:我酸了!

有自媒体说,现在各大国对AI的部署,就像对“核武器”的部署一样,这份脑力和智力的比拼,超级大国都绝对不能输。在最近,赛迪研究院就发布了「2019人工智能企业综合实力100强名单」,BAT毫无疑问霸榜&#xff0…