发布时间:2022-12-16 13:14:12 文章来源:互联网
微博 微信 QQ空间

解决方案:蚂蚁金服高级总监韩宏元:企业级数据库平台的延续与创新

解决方案:蚂蚁金服高级总监韩宏元:企业级数据库平台的延续与创新

2019年11月19日,蚂蚁金服在北京举办了“巅峰洞察 聚焦金融新科技”发布会,介绍了支付宝在2019年双十一背后的技术,并发布了新版OceanBase 2.2。欢迎继续关注~

蚂蚁金服研究员韩宏元在发布会上分享了《企业级数据库平台的延续与创新》。以下为演讲实录:

在当今的企业级市场,数据库是基础支撑能力之一。传统的数据库技术面临着各种新的挑战。面对这些挑战时,每个人都在寻找一些新的解决方案。这些新解决方案从何而来?当我要更换一个非常成熟的平台,被大家广泛使用的时候,如何才能让客户放心更换呢?在企业级数据库的基础平台上,后续可能会有什么样的发展方向?这就是我今天想和大家探讨的。

关系数据库已经发展了很多年。今天,所有企业的大部分业务系统和支撑核心业务系统都运行在关系数据库上。事实证明,传统企业的业务系统接入终端数量非常有限。无论是自己内部的业务系统,还是客户前台柜台的业务系统,终端的数量都是非常有限的。基本上,系统的可扩展性可以通过数据库服务器的垂直扩展来满足要求。

随着移动互联网的发展,如今的业务系统,无论是银行、政府等,已经广泛接触到大部分移动接入客户。当这种情况出现时,就会发现很大的变化,传统的系统垂直扩展是不可能解决这个问题的。那么如何解决呢?这导致许多不同的解决方案。除了传统的关系型数据库持久化数据处理方式外,还演化出了很多新的数据处理方式,比如所谓的多态数据持久化方式不断涌现。

当这一切都来了,大家发现,回过头来看真正的业务逻辑,关系型数据库有其突出的优势。它可以帮助客户以数学上完美的方式有效地构建业务系统。当你对这些能力关系放宽了严格的要求后,很多东西就很难满足了。包括客户已有的业务系统,如何继续运营?如何保证客户已有的严谨的业务逻辑能够继续运行?所以它带来了很多新的挑战。

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

上图底部是一个横轴,2013年到2019年Top数据库的活跃度非常稳定。今天,最活跃的前三名数据库仍然是关系数据库。关系型数据库在今天仍然是整个企业数据管理平台的主流。它们不仅是主流,而且支持所有主要的业务系统。

主流的关系型数据库比较稳定,这些数据库受到很多开源的影响。对于绝大多数企业来说,不是为了开发和软件,而是为了平台的能力。你需要高可靠、高可用,并且能够帮助用户持续开发。只要产品可靠好用,客户可以自己对接运维,就不需要阅读源码。我们今天讲企业层面,可能更多的是看如何支持客户有效运营自己的业务。

上图是数据库的发展史。最早的是层次数据库、网络数据库等。当关系型数据库出现时,由于其突出的特性,基本上主要的业务系统都迁移到了关系型数据库的开发模式上。从我个人的角度来看,我经历了20多年的历史。关系型数据库是所有数据库中被判死刑最多的技术。至今,它不仅没有死去,反而还在不断的焕发新生。

如何体现RDBMS的真正价值?在我看来,首先,数据库中强调的ACID有助于应用开发,简化了应用开发的复杂度;业务人员都能看懂,好处是大家交流起来很方便,而且写出来的代码可读性和可维护性都很强,所以很难摆脱这些技术。但是关系数据库不是静态的东西。从集中式到分布式是一个很大的发展方向。很多时候,这些东西都是为了突破原来的局限和技术瓶颈而设计的。

互联网和互联网公司带来的变化是用户访问量的变化,还有很多新技术的探索和创新。在最早的互联网公司中,有不少互联网公司做的业务与传统的企业业务有很大的不同。你做这些业务的时候,有的业务有标准答案,有的业务没有标准答案。当你在网上做搜索的时候,你在搜索之前一定不知道搜索的结果是什么?当您转账时,您必须在转账前知道转账结果。这两个东西对数据库平台的支持能力有着完全不同的要求。互联网公司承受巨大压力后,他们需要系统有很强的可维护性要求。很多东西都是自动维护和自动高可用管理。这是一场伟大的技术变革的起点。例如,高可用性。传统企业基本靠半人工半机器的方式来实现高可用。他们基本上不会完全信任机器,而是靠自己来完善高可用性。

比如很多金融机构都建设了灾备系统,没有人敢让机器自主决定灾备系统的切换。当你的规模很大的时候,这种管理是很难做到的。如何触发自动高可用,真正让系统具备完整的判断能力。

当互联网发展到金融领域时,我刚才提到的问题就很麻烦了。很多用户有很多并发请求,查询时并不知道准确的结果。做金融,一定要知道准确的结果。如果你犯了错误,用户会直接找到你。结算。这就需要有非常完备的基础设施的支持,才能帮助你支持这么好的金融业务。

接下来,我们希望与大家共同探讨,数据库技术在后续企业中会有怎样的发展趋势?

首先,分销已经是必然趋势,这有几个原因。单一的大型服务器加存储,扩展性有限,无法支撑企业的持续发展。在当今的云环境中,您可以查看市场上任何一家主流云提供商。现在没有云提供商可以让你把服务器连接到高端、高性能的存储来支持数据库运行。如果要在云环境中运行数据库,则必须选择其他实现方式。所以大家可以看到在测试的时候,包括系统架构设计,其实是符合云化的大趋势的。今天,硬件已经发生了许多重大变化。就像大家质疑我们的TPC-C测试结果一样,

如果我今天给你200台服务器,在上面安装一个数据库,你根本就装不上,更别说得到运行结果了。非常大的考验。如果你看看目前还在使用的主流关系型数据库,它们有一个很大的特点,它们都是30年前设计的。30 年前设计数据库时,有两个假设。所有硬件内存都非常小,所有存储访问速度都很慢。今天基本使用的所有数据库都是从那个时代发展而来的。这两个约束给它戴上了很多枷锁。

你试试看,你可能会发现我今天装了一个256内存的oracle数据库,明天扩容到512G。性能能提高多少?可以加倍吗?其实1%的涨幅也不错。什么理由?它的软件架构设计决定了它无法有效利用新的硬件能力。在新的硬件技术不断出现的今天,需要有新的方式来利用硬件的能力,为用户带来更好的系统、更好的回报和更轻松的管理。

从云的发展趋势来看,数据库其实是最适合云化的服务。如何有效支持客户以云化方式使用数据库也是一大挑战。

最后,管理规模也很大,系统也很复杂。如何在系统中体现更多人工智能带来的优势,帮助系统自动运行,更好地自动调优。这件事放在今天说起来容易,但最大的挑战是要有一个足够大、足够广的使用环境和使用场景,帮助你积累数据,计算出你想要的模型。

那么,新的企业数据库需要具备哪些能力呢?

首先,数据库最好不要对硬件有特定的依赖,这样会阻碍向云方向的发展和优化。其次,今天所有的企业都面临一个发展方向,如何从传统的企业架构向云原生架构转变,如何在数据库中支持用户在转换前后的平滑过渡。然而,在当今的企业环境中,许多负载变化是突然的。您需要能够在保护数据的同时,在不同的操作环境中实现灵活的迁移。最后,数据库非常适合云计算提供的服务。如何才能真正使用底层硬件能力?例如,我们在设计之初就必须考虑多租户环境。混合负载的能力。

OceanBase对新技术的探索

回到OceanBase,我们在这些方面做了很多探索。

首先是高可用性。今天,Level 6 高可用性已经是非常高的可用性了。大多数组织达不到这个水平,但我们今天可以做到的远不止这个水平,可以做到30秒内自动恢复。这些都依赖于如何在技术上有效的使用新技术,比如Paxos。没有人会在传统数据库中使用它。在新的分布式场景下,使用这些新技术其实可以帮你实现全自动的高可用。Paxos 的自动投票机制的好处是,系统可以在没有外部干预的情况下更换失败的后继续运行支付宝数据库有多大,这在当今大规模运行环境中是不可或缺的。

刚才也提到了,今天的互联网带来的压力,大大增加了业务系统的压力。靠一个数据库,一个系统来支撑所有的业务,肯定是不可能的。在我们的系统运行环境中,经过这么多的实际环境输入,我们今天可以给用户一个非常灵活的选择,让用户选择数据库部署的粒度。可以选择分库分表,也可以选择单库。给用户选择的权利,用户可以根据自己的需要在不同的方法之间进行转换和融合,可以帮助用户持续发展。

为什么转向分布式数据库?传统上,采用最左的集中部署方式。它的优点是不用担心ACID,缺点是想扩的时候扩不了。为了解决扩容的问题,大家都来做分库分表。大多数情况下,分库分表都是通过中间件的方式实现的。这打破了数据库的界限,同时也引入了很多新的问题。最大的问题是它对应用程序是不透明的。如果你原本有一个复杂的业务应用,想要适配分库分表,应用改造的工作量是非常大的。

为了解决这个问题,我们做了一个原生的分布式数据库。最简单的描述,你可以把一个分布式部署和运行的数据库当成一个中心化的数据库,对你来说没有区别。正如杨总所言,TPC-C衡量的是一个系统的业务处理能力。在外部性能方面,所有TPC-C检测标准都与单一数据库相同。这是当今分布式数据库最难做到的一点。一个分布式的东西如何作为一个中心化的东西呈现给用户?能力提升了,但使用起来并没有增加复杂度。.

当我们看传统数据库时,我们往往强调 ACID 属性。如果只是为了满足ACID,可以做到很简单。因为数据库可以停止。为了保证ACID,我们可以把整个系统停掉,保证出现异常情况的时候ACID不会出问题,但是用户不能使用系统。今天,在保证系统高可用的同时,高可用又可以反过来帮助ACID。

原来在传统系统中使用两阶段提交时,最大的问题不是两阶段带来的系统消耗,而是两阶段跨系统事务。一旦某个参与者不可用,整个系统就无法继续运行,状态未知,无法保证系统的一致性。刚才提到的RTO在30s内自动恢复会有很大的作用。当整个系统的所有交易参与方都能在短时间内恢复正常时,不会暂停业务,可以保证业务的持续运行,消除了传统分布式系统的一个非常大的弱点。

说到今天的整个市场,关系型数据库是一个在全球范围内已经划分了势力范围的市场。之所以今天还有新的产品出现,是因为很多因素的加成带来了很多新的变化。蚂蚁有很多业务使用OceanBase。这些业务在过去七八年里经历了发展。在这个过程中,OceanBase提升了自身的能力,解决了很多问题。经过这么多年大规模复杂环境的磨练,从2017年开始,我们走出去服务外部用户。

希望以后有更多的用户给我们尝试OceanBase的机会。我们也希望这款产品能够帮助您解决很多现实问题,欢迎更多的公司和组织加入我们。

关于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获得的6000万tpmC排名第一。

第四点,测试是基于公有云的通用模型实现的,使用与生产系统相同的基础环境。今天最大的变化是传统的企业数据库迁移到云环境。最大的变化是没有了能与原有环境匹敌的强大服务器。没有这么大的服务器和存储,怎么解决这个问题?我们这样做是为了给大家证明你可以用软件的能力达到同样的性能指标。

最后,我认为TPC-C不是证明数据库完备性的充分条件,而是必要条件。当你要对接这些大型组织的核心业务系统时,如果你的数据库不具备这个能力支付宝数据库有多大,当然不可能帮助客户轻松迁移应用。

在今天,有时候人们往往会专注于数据库的一点,但是对于整个企业的分布式改造,不可能只在数据库的一点上进行。我想说的是,企业整个分布式改造需要自上而下结合起来,结合中间件、开发过程管理、系统保障管理等所有系统,确保分布式改造有效,真正支持你。业务持续增长。

OceanBase是一个完全自主研发的分布式关系型数据库,我们拥有所有的源代码和系统设计。系统设计时,没有预设的限制条件,不依赖特定的软件,不依赖特定的硬件,不依赖特定的系统架构。这时候,我可以非常广泛地适应所有新的硬件系统。而全新的运行环境可以帮助我们探索更多的系统组合空间。我觉得我们最大的优势就是没有对外部特定软硬件系统和系统架构的锁定依赖。谢谢你们!

《OceanBase企业级分布式关系数据库白皮书》发布!!!

面向所有企业客户、数据库一线开发运维,内容涵盖五章内容,从趋势、观点,到产品介绍、重要客户案例。

以下是目录概览:

另一视角

换一换