蚂蚁金服资深总监韩鸿源:企业级数据库平台的持续与创新

2019年11月19日,蚂蚁金服在北京举办“巅峰洞见·聚焦金融新技术”发布会,介绍2019双11支付宝背后的技术,并重磅发布全新OceanBase 2.2版本和SOFAStack双模微服务平台。咱们将系列演讲整理并发布在  “蚂蚁金服科技” 公众号上,欢迎关注。

蚂蚁金服研究员韩鸿源在发布会分享了《企业级数据库平台的持续与创新》,如下为演讲实录:前端

e5281166-4f41-4caa-929c-44d709e12874.jpeg

在今天企业级的市场里,数据库是根本的基础支持能力之一,传统数据库技术正在面临各类各样全新的挑战,面对这些挑战的时候你们都在寻找一些新的解决方案。这些新的解决方案从什么地方来呢?当我想要替换很是成熟的被你们普遍使用的平台的时候,怎样让客户放心的去替换?在企业级数据库基础平台上,后续可能会是什么样的发展方向?这也是我今天想和你们探讨的内容。数据库

e1e238f6-2b1d-403c-a6d4-62ab4b41d775.jpeg

关系数据库已经发展不少年,今天全部企业里面的业务系统,支撑核心的业务系统大部分都跑在关系数据库上面。原来传统企业里的业务系统接入终端数量颇有限,无论是本身内部业务系统,仍是对客户前端柜台作业务系统,终端数量都很是有限。基本上,系统的扩展能力能够经过数据库服务器的垂直扩展均可以知足要求。安全

随着移动互联网发展,今天的业务系统无论是银行、政府等,已经普遍暴露在大部分移动接入的客户面前。当这种状况出现时发现很大的变化,传统的系统垂直扩展是不可能解决这个问题。那么如何解决呢?这就衍生出不少不一样的解决办法。除了传统的关系数据库持久化处理数据方式以外,演化出很是多的新的数据方式,所谓多态数据持久化等方式不断冒出来。服务器

666b16e5-4ca5-42b0-b0cb-2bb4fb86e187.jpeg

当全部这些东西来了以后,你们发现回到真正的业务逻辑上去看,关系数据库有它很突出的长处,它能够以一个数学上完善的方式帮助客户有效的构建业务系统,这些能力当你去放松对关系的严格要求以后,不少东西很难知足。包括客户已经有的业务系统,怎么样持续运营下去?怎么样保证客户已经有的这些严谨业务逻辑持续运营下去?因此带来不少新的挑战。架构

传统的企业客户不仅是商业企业,泛指企事业单位和党政军范围,通常指具备必定规模且有重要性的实体。那么,对企业级系统和平台的要求也包括不少:1)高安全;2)高性能;3)高可靠性;4)高可用性;5)高开发效率,低维护成本;6)高可扩展性。这些对企业来说都是很核心的东西。并发

be276202-8900-420b-9741-b715f4da3b6f.png

上图底下是一个横轴线,从2013年-2019年排在最前面几个数据库的活跃程度很是稳定。今天去看前三个最活跃的数据库依然仍是关系数据库,关系数据库仍是今天整个企业数据管理平台的主流,不可是主流,并且支持全部主要的业务系统。oracle

主流关系数据库相对稳定,这些数据库受到不少的开源的冲击。对于绝大部分企业来说不是作开发和软件的,须要是平台具有的这些能力,你要高可靠、高可用,可以帮助用户持续发展。只要这个产品足够可靠好用的状况下,客户能够本身把运维接起来的状况下,是没有必要看源代码的。今天咱们谈企业级的时候,可能看的更多的是怎么样支持客户有效运营本身的业务。app

d1f5b08c-02ea-429c-8c26-f076a08ff928.png

上图是数据库的发展历史。最先有层次数据库、网状数据库等,当关系数据库出现以后,因为它们突出的特色,基本上主要的业务系统都迁移到关系数据库开发模式中去。从我我的来看,我经历大概20多年的历史,关系数据库是全部数据库里被判死刑次数最多的一个技术,到今天为止不但没有死,并且还在不停的焕发新活力。运维

RDBMS 真正的价值如何体现?我以为,首先数据库里面强调的ACID帮助应用开发,简化了应用开发复杂性;第二点,SQL这个写法很关键,接近于天然语义的写法,最大优势作业务开发的人写出来的代码可让作业务人看得懂,带来的好处是你们沟通很方便,写出来的代码可读性可维护性很是强,因此摆脱这些技术是很困难的。可是关系数据库不是一成不变的东西,从集中式到分布式是一个大的发展方向,不少时候这些东西为了突破原来的限制和技术瓶颈。分布式

互联网与互联网公司带来的变化是,用户访问量变化,以及不少新技术的探索和创新。最先互联网公司里有至关多互联网公司作的业务跟传统企业业务有很是大的差别。当你作这些业务的时候,有些业务是有标准答案,有些业务没有标准答案。当你在网上作搜索的时候,你搜以前确定不知道搜索结果是什么?当你转一笔账的时候,你转以前必定知道转账结果是什么。这两件事对于数据库平台的支撑能力有彻底不同的要求。互联网公司面临压力大了以后,须要系统有很是强的可维护性的要求,不少东西是自动的维护和自动高可用的管理,这一块是一个很大技术变化的出发点。好比说高可用,传统企业的高可用基本靠半人工、半机器方式去作,基本不会彻底相信机器,本身把高可用作的很完善。

举例来说,很是多的金融机构都作了容灾系统,容灾系统切换这种决策没有人敢让机器作自主决策。当你的规模很是大的时候,这种管理很难去作到,触发怎么样实现自动高可用,真正让系统具有完整的判断能力。

当互联网发展到金融这个领域时,刚才我说的问题就很麻烦,不少用户有不少的并发请求,作查询不知道准确结果,作金融必定要知道准确结果,作错任何一点用户直接都会找你算账。这个里面须要很完备的基础设施的支持,才能帮你支撑这么好的金融业务。

85ec037d-8d35-44ca-bdb6-c4c17110ebfe.jpeg

下面,咱们但愿跟你们探讨一下,后续企业里的数据库技术会有什么样的发展趋势?

首先,分布式已是不可避免的潮流,这个里面有几方面的缘由。单一的大服务器加存储的方式扩展能力有限,没法支持企业的持续向前发展。在今天的云环境里面,你们能够看一下市场上无论是哪一家主流的云供应商,如今已经没有任何一家云供应商会让你把服务器连到高端、高性能的存储上去支持数据库来运行。若是你想在云环境里运行数据库,必然要选择其余的实现方式。因此你看在测试的时候,包括系统架构设计方面,其实是跟云的大趋势是一致的。今天,硬件发生了不少大的变化。像你们质疑咱们的TPC-C测试结果同样,9年之前跟如今的硬件有很大差别。

若是我今天给你200台服务器,装一个数据库上去,你根本装不上去,更不要说运行结果出来,这不是那么简单的一件事,能有效地把这些新的硬件用起来对软件是一个很是大的考验。若是你们看还在使用中的绝大部分主流关系数据库,它们有一个很大的特色,它们都设计在30年之前。30年之前设计数据库的时候有两个假设,全部硬件内存都是很小的,全部的存储访问速度都是很是慢的,全部的数据库基本今天用的主要数据库都是从那个年代发展起来的,这两个限制条件给它加了不少枷锁。

若是你们尝试过可能会发现,我有一个oracle数据库今天装256个内存,明天扩512G,性能能提高多少?能提高一倍吗?事实上能提高1%就不错。什么缘由?它的软件架构设计决定它不能有效使用新的硬件能力,当今天不停的有新硬件技术出现的时候,须要新的方式把硬件能力用起来,带给用户更好的系统,带给用户更好的回报和更简单的管理。

从云发展趋势来说,其实数据库是最适合于云化的服务。怎么样可以以云化的方式有效的支撑客户去使用数据库也是一个很大的挑战。

最后,管理的规模也很大,系统也很复杂,怎么样把更多的人工智能带来的优势体如今系统里面去,帮助系统自动去运行,更好的自动去调优。这件事情今天提及来容易,最大挑战是要有足够大、足够普遍的使用环境和使用场景,才能帮你积累到数据,才能算出你想要的模型来。

1a363ce4-0453-42b1-864f-577a3730ad1b.jpeg

那么,新的企业级数据库须要具有什么能力呢?

首先,数据库最好对硬件不要有特定的依赖,这样会阻止往云方向去发展和作优化。其次,今天全部的企业面临一个发展方向,都是怎么样从传统企业架构转到云原生架构,数据库怎么样支持用户转换前和转换后的平滑过渡。而后,在今天的企业环境里面,不少负载的变化是突发的。你须要可以在保障数据的状况下,在不一样的运行环境实现灵活迁移。最后一点,数据库是很是适合云计算提供的服务,怎么样可以去真正把底层硬件能力发挥出来,好比在设计之初就要考虑多租户的环境,怎么样在多租户环境有效使用资源,支撑全部混合负载的能力。这些加在一块儿其实是构建下一代数据库平台一些必须考虑的因素。

OceanBase对新技术的探索

回到OceanBase,咱们在这些方面作了不少探索。

cf5089df-08b4-4e6d-be48-a87001fde850.jpeg

首先是高可用性。在今天来说六级的高可用性已是很是高的可用性,绝大部分机构实现不了这个级别,可是咱们今天能实现远远超过这个级别,可以在30秒内实现自动恢复。这些靠的是在技术上怎么样把新技术有效用起来,好比说Paxos。在传统数据库里不会有人去用它,在新的分布式场景下来说,利用这些新的技术其实它还能帮你实现全自动的高可用。Paxos这种自动投票的机制带来的优势是系统在不须要在外部干预状况下,把失效的东西替换掉以后持续去运行,在今天大规模运行环境里面是不可或缺的一个东西。

9bfa9988-4d59-4249-96b8-0e1cdc6c1693.jpeg

刚才讲到,今天的互联网带来的压力对于业务系统压力变大很是多,靠一个数据库一个系统支撑全部业务,必定不可能。在咱们系统运行环境里,通过这么多的实际环境输入以后,今天能够给用户一个很灵活的选择,可让用户去选择数据库的部署粒度,你能够选择分库分表,也能够选择单库。把选择权给到用户,用户能够根据本身的须要从不一样的方式之间作过渡的融合,均可以帮助用户持续往前发展。

78778d64-45ef-4145-9162-7eede464b3c3.jpeg

为何要走向分布式数据库?传统都是最左边集中部署方式,它的优势是ACID不用担忧,缺点是想扩的时候扩不上去。为了解决扩展的问题,你们才来作分库分表。分库分表绝大多数状况用中间件的方式来实现。这打破了数据库的边界,又同时引入了不少新问题。最大的问题是对应用不透明,若是你原来是一个复杂的业务应用,想适应分库分表的时候,对应用的改造工做量很是大。

为了解决这个问题,咱们作了原生的分布式数据库。最简单的描述,你能够把一个分布式部署和运行的数据库彻底当成一个集中的数据库来用,对你来说不会有任何的差别。就像阳老师讲的,TPC-C测的是一个系统的业务处理能力,对外表现来说TPC-C全部的检查标准时,它跟单一的数据库对外表现是同样的。这在今天的分布式数据库里是最难实现的一点,怎么样可以把一个分布式的东西,表现给用户用的时候是看成集中式来用,能力有提高,可是使用上不增长复杂性。

daa42584-43d0-44e6-902b-b4f443cce942.jpeg

咱们去看传统数据库的时候,每每强调是ACID属性。若是只为了知足ACID,能够很简单的作到。由于数据库能够停。为了保证ACID,咱们能够在有异常状况出现的时候,把整个系统停掉以后保证ACID不会出问题,可是用户用不了系统。在今天,保证系统高可用的同时,高可用反过来能够帮助ACID。

原来传统系统里使用两阶段提交时,最大问题不是两阶段带来的系统消耗,是两阶段跨系统作交易的时候,一旦有一个参与者出现不可用,整个系统没有办法持续运行,状态不可知的时候,没有办法保证系统一致性。刚才讲的自动30s以内的RTO的恢复会发生很大的做用。当整个系统全部的交易参与者能够在很短的时间内恢复出来的时候,它是不会把业务挂起,能够确保业务持续运行下去,消灭了传统分布式系统里很是大的一个弱项。

今天整个市场上讲,关系数据库是一个全球范围内早已经划分完势力范围的市场。为何今天还有新产品出现,是由于不少因素加进来以后,促成了不少新的变化。蚂蚁内部有很是多的使用OceanBase的业务,这些业务经历过去7、八年的发展,在这个过程当中OceanBase加强自身的能力,消除不少问题,在一个大规模的复杂环境里面经历这么多年磨炼以后,从2017年咱们走出来服务于外部用户。

但愿之后有更多的用户给咱们机会去尝试OceanBase,咱们也但愿这个产品帮助你们解决不少现实中面临的问题,也欢迎更多的企业和组织加入进来。

b3834134-fcd0-4e15-9cf1-69dd355978fb.jpeg

关于TPC-C,我想说,首先,TPC-C是目前国际上惟一具备公信力的数据库功能与性能结合的公开检测标准。由于全部市场上主流的玩家,原来都在这个标准上发布过测试结果,即使这个测试模型源于20年前,可是全部结果都有意义。并且TPC-C的模型定义若是你们深刻研究的话,里面有不少科学的东西。

第二点,TPC-C测试你们每每看到不少误导性的信息,我在家里跑一个结果,单机TPC-C能够跑150万,200万,300万,这件事情没有意义,TPC-C测试里面除了跑的性能指标以外,它有前提条件。TPC-C测试过程当中的ACID的检查,对于分布式数据库是一个很是大的挑战,今天绝大部分的分布式数据库面临这个问题采起的是回避的作法,不是直接解决问题的作法。测出来的结果不少不是有效的结果。咱们之因此参与TPC-C审计,是为了证实咱们的分布式系统是能够像单机数据库同样一分钟处理6000万笔新的订单。

第三点也就是在TPC 认证过的 TPC-C 结果里面 OceanBase 取得的6千万 tpmC 排名第一。

第四点,测试是基于公有云通用机型实现的,使用的是和生产系统一致的基础环境。今天最大的变化是传统企业数据库往云环境搬的时候,最大的变化是没有可以匹配原来环境的那么强大的服务器可用。没有那么大的服务器和存储,怎么样解决这个问题?咱们给你们去作了这个证实,你能够用软件的能力实现一样的性能指标。

最后,我不认为TPC-C是证实数据库完备性的充分条件,可是它是一个必要条件。当你要接的是这些大型机构核心业务系统时,若是你的数据库没有这种能力,确定不可能帮助客户简单的把应用迁移过来。

d22bd68f-349b-47db-be07-0f8c41f4415b.jpeg

今天,有些时候你们每每关注数据库的一个点,可是整个对于企业来说走分布式转型这条路的时候,不可能只在数据库一个点上面走。我想说的是,企业整个的分布式转型是须要从上到下,结合中间件和开发过程管理和系统保障管理全部体系加在一块儿,才可以确保有效的走向分布式转型,真正可以支撑你的业务持续往前发展。

OceanBase 是彻底自主研发的分布式关系数据库,咱们掌握全部的源代码和系统的设计。在设计系统的时候没有预设限制性条件,没有对特定软件的依赖,没有对特定硬件的依赖,没有对特定系统架构的依赖,这个时候我能够很是普遍的去适配全部新出来的硬件系统和新的运行环境,能够帮助咱们去探索更多的系统组合使用的空间。我以为咱们最大的优势是不存在对外部特定软硬件系统及系统架构的锁定性依赖。谢谢你们!

相关文章
相关标签/搜索