ITPub博客

专访丨七个尖锐的问题,听OceanBase如何回应

原创 国内数据库 作者:老鱼笔记 时间:2018-05-17 10:16:36 0 删除 编辑

导语:阳振坤的恩师,北大王选院士一句话让他铭记至今:“高科技产业应实现‘顶天立地’模式。‘顶天’就是不断追求技术上的新突破;‘立地’就是把技术商品化,并大量推广应用。”

数据显示,1998年,中国软件企业5000家,市场规模325亿;到了2017年底,中国软件企业3.6万家,收入规模达到5.5万亿元,营收增长了169.23倍,仅次于美国。可在最核心的CPU操作系统和数据库这基础设施三大件上,过去我们却并未取得商用意义上的重大突破。

不过,相比CPU操作系统,数据库领域的局面要略微乐观一些,在DTCC大会上,我们看到,在国内,除了传统的数据库厂商,数据服务商外,互联网巨头、云计算厂商、硬件厂商、新兴的创业公司都在不断参与进来,并且在逐渐加大对数据库的投入。以大数据、分布式、新硬件等为切入点,不仅基于开源技术的各种版本数据库时有发布,就是从零开始,完全自主研发的数据库产品也不少。

这其中的“当红炸子鸡”,非蚂蚁金服自主研发的OceanBase莫属,不仅是因为OceanBase内核100多万行代码都是蚂蚁完全自主编写,更因为,OceanBase成功支撑了去年双十一,并创记录地平稳处理了4200万次请求数,能将数据库用在如此大规模的金融核心系统,这个本身非常有说服力。

事实上,很多人并不清楚,跟阿里系其他产品不同,受到恩师的影响,蚂蚁金服高级研究员、OceanBase创始人阳振坤所带领的技术团队在设计OceanBase架构之时,一开始瞄准的目标,就是要把它做成一个通用的关系数据库产品,而不是一个仅仅在公司内部使用的产品。

最近这段时间,OceanBase的研发故事广为流传,不过,作为一个已经开始商业化的数据库产品,光靠故事就想让用户买单显然是不够的,在内部场景的成功应用并不意味着在外部传统企业的业务落地就会更容易。但这方面用户关注的问题,媒体却鲜有提及。笔者根据ITPUB社区网友反馈,总结出以下7大敏感甚至略有挑战性的问题:

七个挑战的问题:

  1、 有人说OceanBase宣传来的太晚错失了良机,OceanBase将如何开拓市场?

  2、 闭源后的这几年,OceanBase体系架构和代码都有了哪些变化?

  3、 OceanBase 2.0 设计目标及发布时间表?

  4、 OceanBase从阿里云的数据库服务列表中消失?是否内部竞争? 还是其他原因?

  5、 一直强调性能优势的OceanBase,为何不发布更有说服力的Benchmark数据?

  6、 自研数据库是大型互联网公司唯一出路吗?

  7、蚂蚁金服怎么看待自研?基于开源软件的自研与完全独立自主研发有何优劣?

5月10日,国内规模最大的数据库及大数据领域技术盛会,中国数据库技术大会(DTCC2018)在北京国际会议中心召开,蚂蚁金服派出了史上最豪华的技术团队出席了本次大会,包括蚂蚁金服高级研究员、OceanBase创始人阳振坤;蚂蚁金服资深总监、OceanBase首席架构师冯柯,蚂蚁金服资深技术专家陈萌萌、蚂蚁金服资深技术专家尹博学,蚂蚁金服资深技术专家付志嵩,蚂蚁金服高级技术专家张荣华等核心技术骨干。

七个尖锐的问题,听OceanBase如何回应
▲蚂蚁金服资深总监、OceanBase首席架构师冯柯

借此机会,笔者找到了蚂蚁金服资深总监、OceanBase首席架构师冯柯,并就以上极有挑战甚至有些尖锐的问题进行了详细沟通,让笔者略感意外的是,冯柯并没有拒绝这次采访,甚至并没有删除笔者任何一条尖锐的问题,并一一做了答复。这里必须要点个赞,这种开放的态度在行业内还是比较罕见的。

为了让读者更全面细致地了解这场对话,以下附上笔者与蚂蚁金服资深总监、OceanBase首席架构师冯柯的对话实录:

最近,OceanBase的宣传攻势很猛,但有人说,蚂蚁对OceanBase的宣传来得太晚了,如今被后起之秀TiDB吸引了大量的目光,社区、文档、生态要比OceanBase好很多,OceanBase有些错失良机。您怎么看?

冯柯:我们在2017年以前,实际上是在完善OceanBase这个产品,并在蚂蚁金服核心业务落地的过程。2017年后,随着蚂蚁金服的开放战略,OceanBase也开始了商业化的进程,大概是这样一个节奏。这个节奏是根据我们产品发展目标来决定的,在这其中,我们没有太多其他的考虑,对于其他的企业和产品我不方便评价,但就目前来讲,当前整个金融行业面临着集中式架构向分布式架构转型。所以,我们看到了分布式数据库的一些市场机会。这个阶段有更多的参与者加入进来,我觉得有利于这个市场确立,竞争不是我们在现在这个阶段需要考虑的主要问题。

OceanBase故事中一直在强调,能活下来,很大程度来自领导和内部业务部门的支持,否则不会有OceanBase,现在OceanBase开始商业化进程,虽然OceanBase确实比传统数据库更适合像双11,但这并不意味着在传统企业落地就会更容易,你们将如何开拓市场,有什么计划和策略?目前是否有最新案例分享?

冯柯:OceanBase的创始人,蚂蚁金服的阳振坤提过说,他的老师,北大的王选院士的一句话让人铭记至今:“高科技产业应实现‘顶天立地’模式。‘顶天’就是不断追求技术上的新突破;‘立地’就是把技术商品化,并大量推广应用。”这就是说,如果要做一个好的创新,不仅要技术上牛,更要真正应用到生产和生活的实际场景中去。就像CPU的国产自主研发,我们十几年前就能做出来“狗剩”(Godson),如今更有寒武纪,但都还没有机会得到大规模商用,这是让人扼腕叹息的事情。

所以,当我们2010年前后开始做分布式数据库,也就是设计OceanBase架构的时候,一开始瞄准的目标,就是要把它做成一个通用的关系数据库产品,而不是一个仅仅在公司内部使用的产品。

2017年,让我们团队最高兴的是,通过8年研发抗战,我们不仅做到了承担蚂蚁金服“双十一”全部核心业务的重压,还在6家商业银行落地,成为他们互联网金融类新业务系统的数据核心。

举个例子,我们的合作伙伴南京银行,通过与蚂蚁金服OceanBase、阿里云共建的“鑫云”+互联网金融开放平台,其互金核心系统扩展能力、处理能力、成本等方面都得到较大的提升。处理能力方面,交易处理从10万笔/日以下,增加到100万笔/日以上;成本方面,单账户的维护成本从30~50元/账户,降到4元/账户。此外,在平台建设期间和投产后,OceanBase做过多次在线水平扩展。

去年下半年,我们开始OceanBase在外部业务落地过程,这个落地过程当中,我认为我们团队本身成长了很多。今天,我们完全认识到了,内部业务的成功和外部业务是不同的,因为,内部业务实际上是所有人的成功,当然,我们也不用妄自菲薄,因为,能将数据库用在如此大规模的金融核心系统,这个本身非常有说服力。对于团队来说,需要我们去不断去适应和改进。从过去我们只关注深度,现在我们必须要深度和广度同时并重。

目前,OceanBase在整个外部市场目标非常明确,我们会依托于蚂蚁金服这个平台,做面向金融行业的全渠道技术的输出。

事实上,金融业更关注整个系统的可靠性、扩展性,OceanBase最重要的几个核心特性与金融行业的需求高度契合。其次,目前OceanBase具备的应用场景优势,是在蚂蚁金服内部积累的核心金融业务场景的经验,映射到金融行业显然是最容易被客户接受的,目前已经实施的几个银行客户案例也证明了这一逻辑。

整个金融业正在逐步形成一个共识——金融科技是未来,分布式架构是未来。

我们回到产品本身, OceanBase之前开过源,但是后来这个开源项目并没有继续维护下去。据说,OceanBase的体系架构和代码系统据说在这几年间又有了长足的进步。能否分享下,OceanBase这些年的具体进步?下一步的研发方向是?

冯柯:好的,我们在OceanBase 0.4的时候开源了,目前,我们有两个非常重要的版本,一个是目前使用的OceanBase 1.0,虽然不开源了,在今天发布的OceanBase官网(https://oceanbase.alipay.com/)上有试用版下载。1.0主要是解决了三个问题。

第一、 解决了过去架构中单点写的问题,过去架构能够多点读,但只有单点写。1.0之后变成多点都可以读写,使得整个系统扩展性容灾能力,包括写的能力都有了大幅度提升。

第二、 解决了OceanBase如何大规模部署的问题,1.0我们全面兼容了开源数据库,同时还支持多租户这样的特性。

第三、 提升了副本能力,多副本能力是我们分布式数据库,区别于单机数据库的重要能力。这里面有三块工作:1、我们实现了三地五中心这样一个城市级无损容灾的解决方案并在蚂蚁金服的核心业务中进行落地。2、我们支持了像只读副本这样的技术,这使得我们不依赖于任何的第三方工具,通过数据库内核实现读写分离的扩展,包括弹性大促这些复杂的场景。3、我们支持像日志副本这样的技术,使得我们能够从三副本变为五副本,系统整体的可用率大幅提升同时存储成本不会明显增加。

目前,我们正在研发OceanBase 2.0,2.0预计在今年9月份投放外部市场。2.0的设计目标,是从内部业务开始转向外部业务。我们希望通过2.0的产品工作,来减少客户从集中式架构进化到分布式架构中所遇到的风险和成本,这里面主要是有三方面的工作:

一、 架构的透明。客户使用分布式数据库时,能不能像使用单机数据库一样?没有任何的限制和约束,为此,我们做了非常多的工作,包括像全局一致性快照、全局的索引、不停机的分区分裂等等,这些东西非常重要,因为客户一旦碰到这样的限制,他自己是很难规避的。

二、 场景的问题,我们怎样支持更加丰富应用场景,包括像HTAP这样混合复杂查询场景,我们希望通过在优化器包括分布式执行方面的工作,来提升这方面的能力。在我看来,这就是开源数据库和商业数据库存在的巨大差距,因为开源数据库,通常强调在某一个场景里面特别有优势。但是商业数据库通常强调在绝大多数场景里没有明显的劣势,后者的这种能力是我们需要去学习的。

三、 兼容性,我们希望通过兼容更多数据库,来真正降低客户业务改造迁移的成本,这是2.0我们想做的事情。

一直强调自己性能优势的OceanBase,为什么不发布Benchmark数据?在一个相对公平的环境,比如在TPC的标准下测一测,这或许对用户判断OceanBase更具参考价值。

冯柯:对,这是个非常好的问题。OceanBase一直都非常关注性能,很多人可能听说过这次的双十一大促,我们数据库处理峰值到了每秒4200万次。我们更关注的是,真实业务场景的性能。其实,在我们内部也讨论过这样的问题,2.0版本研发的工作完成之后,我们会有规划这方面的工作,明年可能会有一些结果公布给大家。

这一两年,人工智能、区块链、无服务器等技术都比较火,刚才您提到2.0版本的研发方向, 但并没有涉及这些,OceanBase未来研发过程中,是否把这些新技术纳入到自身研发体系中,对新技术这种选择,蚂蚁有着怎样的考虑?

冯柯:我们一直非常关注新技术的发展,今年,我们除了发布OceanBase2.0之外,我们还希望在三个方面有一个落地。

  第一、 软硬结合方面

  第二、 存储和计算分离方面

  第三、 自治数据库方面,怎样提高数据库自动化运维和故障免疫能力,在这个项目上,今年会有一个实际落地,包括像人工智能这样一个跟数据库结合非常广的领域,我们也会持续保持关注。

此前,阳老师提到过,到了今年初,OceanBase也不过只是实现了立项时计划列表中的部分核心功能,但是就是这样,已经足够支撑蚂蚁的业务了。不知道是否方便透露,这计划列表里大概包含哪些功能,目前实现计划功能百分之多少,预计哪年可以实现计划的所有功能?

冯柯:这个计划没有什么不可以透露的,计划有两部分,比较少的一部分是分布式系统独有的技术问题。更多的一部分,是我们当时对标商业数据库所给出一个功能列表。这部分工作后面更多的以兼容性形式体现出来。

今天,如果我们对标的是开源数据库,我觉得我们已经做到70%,那么,我们希望今年年底可以做到90%以上,但是,如果我们对标的是商业数据库,那么,今天我们实际上只做到了30%。我们希望用两年时间,做到70%以上,这是我们的一个目标。

我观察到,此前,在阿里云数据库服务上是有OceanBase服务的。但最近,我发现阿里云上OceanBase的服务消失了,这其中是否存在内部竞争?还是其他方面的原因?

冯柯:我们在阿里云公开测试,始于前年。之后,OceanBase确定了专注专有云的发展战略后,因此,这个测试就结束了。

目前普通公众通过阿里云的公开渠道是没有办法使用OceanBase的。但是,我们的专有云客户仍然可以继续使用公有云的资源。

关于内部竞争。我是这样理解,如果从业务视角上看,今天,我没有看到明显竞争,因为实际上专有云业务和公有云业务差异非常大。如果从技术层面竞争看,这个竞争其实一直存在,我刚才在主题演讲中也提到了,一种是基于开源技术的深度定制,一种是完全从头开始自主研发,这是不同技术路线的选择,技术路线选择本身没有绝对的对错,两种路线都有自己优劣。最后哪种技术路线能够发展更好,取决于市场的选择,将这两种技术路线同时发展,我觉得恰恰是我们阿里巴巴蚂蚁金服多样性包容化体现。这样一种技术竞争对所有团队并不是坏事。

此前,其他媒体对OceanBase的采访中有提到,自研是阿里巴巴、谷歌这样互联网企业的最佳出路,我是否可以理解成,自研是BAT这个级别所有互联网公司的最佳出路?这一级别没有自研的数据库的互联网公司将会有淘汰的风险?

冯柯:我觉得自研技术对于大型互联网企业来说,确实可以成为一个重要的竞争力。这种竞争力会使得他在某些业务场景里面会占据优势。

但是,中国有这么多互联网企业,不可能每家做自研数据库,这个不可能的,对于许多企业来说,基于开源的技术来快速搭建自己业务系统,不断迭代满足业务需求,还是一个比较合理的选择。做自研技术很多时候不是规划出来的,是业务发展一定阶段自然生长出来的。

您今天的演讲主要在谈蚂蚁的自研技术,之前中兴事件,引发了业界对开源和自研技术的广泛探讨。有部分观点认为,开源不等于可控。您对此怎么看?

冯柯:首先我想澄清一点,什么叫自研?其实包含两种的,基于开源技术的深度定制也是自研范畴,我并不是说一定是要从头开始干才叫自研,我觉得没有必要这样。

基于开源研发或完全自主研发,在技术选择上没有绝对的对或错,最终是看能不能真正去解决业务所面临的问题,蚂蚁金服基于这两种路线都有很好的成功实践。在数据库这个方向上,我们选择完全自主研发,很大的一个原因是我们做的这个分布式数据库,是全新的技术挑战,在现有的开源技术中能够借鉴复用的东西太少了;而更重要的原因实际上是理想主义使然。我们不想被现有的开源技术框架所束缚。所以我觉得基于开源做,从头来做这两个之间选择都是合理的。

过去这几年和同行、客户们交流的时候,很多人都会问,OceanBase为什么要这么发展,开源的MySQL价格便宜量又足,你们为什么不走寻常路?打个比方来说,基于开源做就像是开吉普车,灵活且方便,尤其擅长越野、户外,只要你驾驶技术好,想怎么开就怎么开,但对许多行业客户来说,他们更像是后排乘客,而不是老司机;做自研产品就像造高铁,基础技术门槛高,控制系统、供电系统、轨道、车厢、车轮都要从零开始,投入巨大,高铁的重量很大,起步过程会很长,可是一旦速度起来了,重量就变成了它的优势,速度越快就越势不可挡,而且还是全自动驾驶,司机轻松、乘客放心。这也是走完全自研路线的OceanBase,和行业里常见的走开源研发路线的差别。

自己造高铁,可以让我们拥有基础创新的源动力。二十年前我们还有自己的一些自研软件产品在发展,但早期被盗版商用软件掠夺了一把之后,在开源生态开始爆发之后,又再次被套路。如今的大多数基础类软件自研产品,几乎都是在开源基础之上研发。当然,开源是好事,让我们的技术水平能快速提升,但完全依赖开源的代价之一,就是让行业丧失了一些做基础原创性技术创新的动力,大家变成了在别人做出来的基础框架上进行小创新、微创新。这样的现象,在数据库、中间件、操作系统等各个关键领域,非常普遍。

请登录后发表评论 登录
全部评论
老鱼,混迹企业级10多年,采访过上百位CEO/CTO,你若有故事,欢迎联系!

注册时间:2007-12-05

  • 博文量
    95
  • 访问量
    263304