关键时刻,第一时间送达!
2008年,王坚从微软亚洲研究院常务副院长的位置上离职后,于当年 9月加入了阿里巴巴集团担任首席架构师一职,负责集团技术架构以及基础技术平台建设。加入阿里没多久后,王坚就提出了“去 ioe”的想法,即摆脱过去 it系统中对 ibm小型机、oracle数据库以及 emc存储的过度依赖。
2009年开始,阿里举全公司之力投入到云计算的研发和使用中,这可视为取代 ioe之举。2010年,阳振坤加入了阿里,这位在 1999年就成为北京大学首批长江学者、曾获得国家科技进步一等奖、先后担任北京大学计算机科学技术研究所副所长、联想研究院首席研究员、微软亚洲研究院主任研究员、百度高级科学家等职务的研究员,带领团队在阿里做出来了取代商业数据库的oceanbase。
2013年 5月,阿里集团最后一台 ibm小机在支付宝下线。2013年 7月,淘宝广告系统使用的 oracle数据库下线,也是整个淘宝最后一个 oracle数据库。2014年,oceanbase替换了支付宝交易系统中的 oracle数据库。2015年,oceanbase替换了支付宝支付系统中的 oracle数据库。2016年,oceanbase替换了支付宝最核心的账务系统中的 oracle数据库。2017年,蚂蚁金服全面去 ioe。
从 2011年开始参战双十一到 2016年双十一支付宝支付峰值 12万笔/秒的世界纪录,再到 2017年双十一支付峰值达到 25.6万笔/秒,再次刷新 2016年创下的峰值纪录,这背后,是一个由 oceanbase研发和运维组成的几十人的团队。2016年的世界互联网大会,oceanbase入选世界互联网领先科技成果,其它获奖公司还包括特斯拉、ibm、微软、卡巴斯基等。
在 6000多名蚂蚁员工中,这几十个人辨识度很高,因为只有他们的工牌带是“土豪金”,而其他所有人的工牌带都是清一色蚂蚁蓝。“土豪金”工牌带是蚂蚁金服内部最高荣誉——ceo大奖。2016年 5月,蚂蚁金服董事长彭蕾亲自为这几十位技术明星戴上了“土豪金”工牌带,理由是这个小团队自主研发的 oceanbase数据库,以远低于传统数据库的成本,更高的可用性,扛住了支付宝一次又一次自我刷新的支付峰值世界纪录,打破了 it核心技术长期被西方垄断的格局。
从 2017年开始,oceanbase跟随整个蚂蚁金服的金融科技开放,开始了向传统金融赋能的实践过程。2017年年底,oceanbase在南京银行正式上线,oceanbase数据库为南京银行“鑫云+”互金开放平台提供金融级分布式关系数据库服务。oceanbase还出口到了印度和美国等地,为当地的支付业务提供数据库服务。作为蚂蚁金服自研的分布式关系型数据库,oceanbase从一开始的目标就是传统商业数据库的升级换代产品,并坚持走通用关系数据库产品之路。
经历了 7年坎坷、成立的头三年一直被边缘化、多次面临解散的 oceanbase团队,如今虽然集体戴上了“土豪金”,可是他们都知道 oceanbase这样的中国技术奇迹,是阿里巴巴/蚂蚁金服举全集团之力所创造出来的成果,这个过程本身也堪称“奇迹”。2018年 2月初,oceanbase团队的主干成员阳振坤、冯柯、陈萌萌、蒋志勇、杨传辉等与笔者展开了深入的交流,介绍了 oceanbase的来龙去脉。
▌oceanbase:划时代的数据库
▲oceanbase团队 sql开发方向负责人陈萌萌
为什么 oceanbase能够入选世界互联网领先科技成果,能够进入 ibm、微软等世界科技巨头行列?首先,简要回顾一下基础软件历史。自 1975年微软公司创立、1977年甲骨文公司创立后,逐渐出现了商用操作系统和商用关系型数据库产品。再加上 1995年创立的 bea公司及其代表的商用中间件产品,传统基础软件的核心技术:操作系统、中间件和数据库,就此诞生。
除了 bea公司于 2008年被甲骨文公司收购外,为什么后来全球再也没有企业能够超越微软和甲骨文公司的操作系统与数据库及中间件产品呢?这其中的原因很多,除了最早投入、培养了最多的相关技术研发人才和技术积累外,更重要的原因在于作为全球化的商用软件产品,无论是微软的操作系统还是甲骨文的数据库,都是伴随着全球用户集体使用、集体反馈、集体推动技术进步而打磨出来的。
实际上,无论是操作系统、数据库还是中间件,本质上都是软件和硬件集成在一起的优化技术,其目的就是通过软硬件集成调优来达到计算效率最大化、成本最优、用户体验最佳、兼容性最广、安全与稳定性最高等结果。以甲骨文公司的 oracle数据库为例,其广泛支持并行机、大型主机、小型计算机、工作站、个人电脑等多种计算设备,允许用户在不同计算设备上使用并迁移 oracle数据库,1994年的时候 oracle关系型数据库支持超过 100种硬件和操作系统环境,兼容多项国际及国家的数据库相关标准。
令 oracle数据库成名的,是 oltp联机交易处理也称为面向交易的处理过程,其基本特征是前台接收的用户数据,可以立即传送到计算中心进行处理并在很短的时间内给出处理结果,针对诸如银行、证券、民航订票系统等需要实时响应的关键性业务系统等。oracle数据库在全球的金融、电信、民航等各类系统和业务场景中得到了广泛的应用,在应用过程中不断改进技术,最终出现了一个“强者恒强”的结果。
正因为 oracle数据库在关键性的 oltp交易处理中占据了牢不可破的市场地位,这让后来的数据库厂商很难有机会再重复一遍 oracle数据库曾经走过的这样一个反复实践、反复打磨、反复修正的过程。原因很简单,不会有企业愿意把自己的核心业务拿出来,给新进技术厂商当实验田。所以在以 ioe为代表的传统 it环境中,除了已经建立起市场地位的主流技术厂商外,其它的后起技术厂商包括开源技术开发商,只能在企业的边缘业务或当地政府扶持的业务场景下,才有少量的机会。
这种情况一直持续到近十年的云计算变革。云计算实际上是由大型互联网公司发起和主导的技术变革,在最近几年逐渐从互联网公司向传统企业蔓延。云计算的初衷是大型互联网公司为了降低自己的 it支出,而从 ioe架构向基于廉价 pc服务器为主的 it架构进行演变的过程。云计算最早起源于 2006年亚马逊推出的 amazonwebservice网络服务,简称 aws。而到了 2008年王坚成为阿里的首席架构师,负责集团每年的 it规划与预算,这个时候王坚就意识到了 ioe架构对于阿里长期运营成本的影响以及对未来业务发展的制约。
在 2008年的时候,阿里的数据库就已经是全亚洲最大的数据库,也是 oracle最大的用户之一,那年阿里还没有启动双十一。从 2009年开始的双十一,每年产生和处理的数据量都在爆发式增长,如果一直采用 oracle数据库的话,运营成本将是天价。而在另一方面,为传统 it环境而设计的 oracle数据库,并没有考虑到互联网的大规模、高并发、实时在线、大型网络优化等新兴需求。2008年的时候,oracle数据库就已经难以处理阿里的大规模数据量了。
本质上理解,oceanbase与 oracle数据库一样都是关系型数据库,但不同的是 oceanbase是面向超大规模互联网公司的分布式计算环境而重新开发的关系型数据库,oracle数据库则相应可以理解为针对传统企业的计算环境而形成的“单机”数据库。
所谓“单机”数据库,首先指 oracle数据库所基于的硬件环境是 ibm小型机和 emc企业级存储所构成的高度稳定共享存储环境,ibm与 emc的企业级硬件本质上就提供了高度稳定的共享硬件环境。其次,oracle数据库以共享存储为理念,所有的数据库看到的是同一个数据磁盘、共享数据访问,因而可以确保所有的数据都可被访问到,而且底层硬件本身也稳定可靠,所以是“单机”视角。
陈萌萌目前在蚂蚁金服基础数据部(oceanbase团队)负责 sql相关方向的开发工作。2006年毕业于清华大学、2006年到 2008年在欧洲核子研究中心(cern)负责网格计算调度器的开发工作、2009年 5月在美国威斯康辛大学麦迪逊分校获得计算机硕士学位,陈萌萌先后在 oracle、华为美国研究所从事数据库的开发和研究,他于 2014年 6月加入 oceanbase团队。
陈萌萌对于“单机”的视角有一个形象的比喻:就像今天使用 pc服务器,要担心如果突然某台 pc服务器挂掉了、甚至机房本身遭遇地震、火灾等极端情况,如何保障数据访问的稳定性。由于是完全基于 pc服务器架构,oceanbase在处理数据访问的时候,相当于把一台原来的小型机或存储设备从纵向“切片”成很多机器,再把数据分布到这些分散在不同的机器上,数据需要通过网络才能够被访问到。“以前是一个磁盘,现在看到的是几十个甚至几百个分布在不同地方的磁盘,怎么做查询优化?这个访问模式会非常不一样。”
过去的传统 it环境是集中在一个地点的高稳定、高可靠、高可用高端企业级设备,现在的云计算环境是分散在不同地点甚至跨国家区域地理位置的廉价 pc服务器机群。oceanbase与 oracle数据库是基于同样的数据库原理,但底层的基础计算环境发生了根本性的变化,这对于像亚马逊、阿里巴巴/蚂蚁金服和谷歌这样的互联网公司来说,有三条出路:一是与甲骨文公司合作,全面开放自己的业务和数据;二是采用mysql等开源数据库技术进行改良;三是从头开始重新设计一个完全自主知识产权的数据库产品。显然,亚马逊、阿里巴巴/蚂蚁金服、谷歌都不约而同地走上了自研的道路。
这个原因其实很简单,如果与甲骨文公司合作,需要全面开放自己的业务和数据不说,更重要的是互联网公司的快节奏、快响应、快研发、与业务运维并肩开发等特点,已经超越了甲骨文公司等上一代 it公司的企业文化和公司机制。而对于开源技术来说,不同的开源数据库只适用于特定的业务场景,由不同的开源社区“各自为战”式主导各自的技术方向,互联网公司需要针对不同的业务场景拼接不同的开源数据库到一个大系统中,这无疑也不利于长期发展。而走全面自研的方向,是一种最辛苦、看似最不可能却最具长期投资价值的选择。
马云曾经针对阿里自研云计算等新一代 it技术说:“网上很多人批评说我被王坚忽悠了,这个云计算要把 5000台计算机合在一起,是根本不可能实现的……腾讯、百度没搞下去,重要的原因是他们的领导知道这个搞不下去。”相反,不懂技术的马云,却最坚定地支持自研云计算等新技术。“想也没想,从预算、人头、资金,我们一路投,最后我们走了出来。”
王坚从 2009年开始在阿里搞云计算,阳振坤从 2010年加入阿里后开始搞 oceanbase,两条线几乎是同时并进。阳振坤回忆,整个 oceanbase其实并没有一个产品经理,根本的原因是 oceanbase作为商用关系型数据库的升级换代产品,在 oceanbase立项伊始就参照商用关系数据库列了一个长达千页的产品功能列表,随后的 oceanbase开发过程就是根据这个列表,但却从分布式计算的角度重新实现每一个功能。“直到 2018年初,oceanbase还只是实现了这个列表中的部分核心功能,但足以支撑整个蚂蚁金服的业务”,阳振坤表示。从 2017年开始,三年之内,oceanbase要实现商用关系数据库的绝大部分功能。
能够与 oceanbase类比、可以称为分布式数据库的产品,目前只有谷歌于 2017年 2月发布的 spanner数据库云服务。陈萌萌认为,spanner是谷歌从头开始全部自研的分布式数据库,也是针对谷歌的交易业务场景,但总体来说并没有阿里巴巴及蚂蚁金服的交易业务规模大,而 aws推出的 aurora数据库则更接近于 oracle数据库的共享磁盘设计。“真正用分布式架构解决像蚂蚁金服这么大规模事务性需求的分布式数据库,目前我们只看到 oceanbase这一家”,陈萌萌表示。
从第一行代码起步到今天的百万行代码级产品、支撑双十一的十万笔级每秒支付峰值以及蚂蚁金服的全面业务,oceanbase可以说创造了一个划时代的数据库产品。oceanbase是中国第一个具有自主知识产权的分布式关系数据库,也是全球首个应用在金融核心业务的分布式关系数据库。业内人士认为,oceanbase的出现,在高端金融领域打破了传统商业数据库的垄断,为金融科技的国产化进程迈出了重要一步。
▌oceanbase:划时代的中国技术
▲oceanbase团队架构师冯柯
现任蚂蚁金服基础数据部(oceanbase团队)架构师的冯柯,于 2014年加入蚂蚁金服,目前的技术领域为分布式关系数据库、数据存储、性能诊断和优化。冯柯在入职蚂蚁金服前,曾在国内数据库厂商天津神舟通用数据技术有限公司(以下简称:神舟通用)任 cto,是浙江大学计算机应用专业博士,具有 15年的数据库研发和产业化经验。
作为国内最早一批从事国产数据库开发者之一,冯柯表示国内早期从事国产数据库开发的人们,基本都成为先驱了。以前做国产数据库,更多体现的是国家科研的意志,而不是企业的市场化行为。更为重要的是,自主研发数据库需要的是行业背景和企业实践。“数据库产品是用出来的,不只是被研制出来的。”冯柯强调。专注于国产数据库的国内的数据库专业公司,到后来往往发展的不好,就是因为没有行业属性、没有真正能够找到成熟应用的市场。
“我当时加入蚂蚁金服的时候,觉得蚂蚁金服自主研发 oceanbase这件事其实很另类,觉得非常不可思议。而且阿里巴巴原来是开源文化,为什么会完全从头开始做一个数据库�...