今天从数据库使用者和决策者的角度,以及数据库服务提供商的角度,分享一下分布式数据库oceanbase在过去十多年如何助力企业进行数字化转型。
“十四五”期间,国家明确提出,要加强数字化政府的转型。idc报告也指出,2020年在中国top1000企业里,70%的企业把数字化转型作为未来的核心规划,其中50%以上的企业已经完成一部分数字化转型的准备工作,10%~20%的企业已经开始基于之前建设的数字化的基础设施,去指导企业一些运营和决策管理等方面。
蚂蚁集团数据库产品负责人、oceanbase凯发在线的解决方案和产品总经理师文汇
传统数据库面临挑战
从企业和cio角度来看,在企业数字化转型过程中,数据库作为数据存储的纽带,需要兼顾成本、性能、稳定、效率、安全等很多方面因素;企业对数据和数据库越来越依赖,也会遇到很多问题。比如,企业一般会建设自己的数据中台、营销中台等,还有很多制造企业会把生产制造系统数据化,并带到数据平台上,也产生巨大的数据量,对整个数据库的可扩展能力具有非常高的要求。制造企业对数据库的要求可能会更高,因为数据库出现问题,意味着整个生产都会受到比较大的影响;因此行业企业的数字化转型使数据库面临巨大的挑战。
从全球数据发展趋势来看,过去十年,每年数据以30%左右的速度在积累,我在阿里巴巴集团和蚂蚁集团的感触更深刻,因为每年我们积累的数据量要比30%高一些,尤其是当前社会下,数据库对于存储的可扩展性、复杂能力的支持、算力的支持和要求比以前多很多。在这种场景下,很多传统数据库/存储面临非常大的挑战。现在行业企业所用的大部分数据库诞生于上个世纪80~90年代,且建立在存储和高端硬件上,很多金融企业和政企的核心业务系统还在使用这些传统数据库,很大程度上,无论是从性能还是从可扩展性方面,这些数据库对企业业务会有很大制约。
举例来说,蚂蚁金服有一家规模较大的银行客户,其业务系统配置在传统大型机上,每周五该银行做“红色星期五”活动的时候,经常会因为大型机出现问题而导致业务系统抖动。还有做跨境电商的、视频的客户,因为他们的一款商品、一件热定单品每秒钟需要处理几万甚至十万以上的请求量,这对后台数据库的挑战更大。基于这些挑战,一些分布式数据库的凯发在线的解决方案不断涌现。
目前业界正在发生的趋势是,包括蚂蚁金服合作的很多企业最开始有80%的业务跑在传统数据库和存储上,现在已经逐步切换到分布式数据库上。
抉择
为了应对未来业务的发展,cio到底要帮助企业选择一个什么样的数据库,既能够实现自主可控又能够帮助企业走得更远?这是一个讨论很久的话题,建议从两个角度来思考这一问题。
第一,数据库要确实能够帮助业务的发展,为业务提供价值。这个价值可能是多方面的,包括具有更高的稳定性、更好的数据质量、更好的数据安全,数据不会丢失,也不会错误,有更好的扩展性,因为小业务会变大、大业务会变小,企业不希望因为业务变化而在数据库上面花费特别多的精力。cio要考虑整个企业的运行效率、运行成本,因为数据库在整个it成本中的占比蛮高,所以数据库要为企业提供持续的、低成本的服务。
第二,现在很多企业已经有自己的数据库体系,以及基于数据库的研发和运维体系,新选型的数据库要用最小的成本融入到这个体系里面,可能也有一些业务如规模较大的银行,现在遇到了容量问题,需要迁移到新选型的数据库上,新型数据库的迁移成本要足够低。
面对这些情况,蚂蚁集团和阿里巴巴集团决定研发出oceanbase这款数据库,这也是我们过去十年建设数据中台和数据库等基础设施过程中,孕育出的具有最佳实践的数据库。
oceanbase十年磨一剑
2010年蚂蚁金服和阿里集团开始建设oceanbase数据库。其第一个业务应用是淘宝的收藏夹业务,当时传统的数据库已经无法支撑,所以才迁移到oceanbase上。2013、2014年,整个集团开始推行自主可控的战略决策,即希望在未来数据化建设过程中,数据库底盘和基础设施能够实现自主可控,彻底摆脱对商业数据库的依赖,于是发起了蚂蚁集团“去商业数据库”的行动。这对oceanbase的发展至关重要,相当于把整个业务的发展和“去商业数据库”以及“自主可控”融入到了oceanbase产品里。
在oceanbase发展的第三阶段,在阿里巴巴积累了这些数字化转型以及数据库基础设施的经验之后,我们希望赋能给行业伙伴,让他们也能享受到我们积累的宝贵经验。从2017年开始,我们和很多行业伙伴做了很多探索和共创,合作了一些项目。从2017年到2019年,我们清楚认识到,业界有很多企业还在使用传统数据库如mysql、oracle等,希望帮助他们从传统数据库转换到使用比较简单的oceanbase上。
当时,我们还把oceanbase数据库的基础架构做了很大的重构和改造。2019年重构之后的oceanbase在数据库的benchmark测试中已经超越了oracle,现在oceanbase4.0已达到世界第一。
2020年oceanbase作为一家独立的公司开始商业化运营,并从金融行业走向政企行业以及各行各业。在满足用户需求的过程中,包括大用户、小用户,核心场景、非核心场景等,以及支持这些用户的过程中,我们开始逐步认识到了“如何帮助用户去释放数据价值”这件事情的重要性。数据一直都在数据库里,怎么样帮助用户把数据的价值最大、最快地发挥出来,这是我们和客户需要一起去解决的问题。oceanbase4.0是分布式、一体化版本,能够很好地支持在线交易业务和离线分析业务融合在一起,以支撑业务发展,进一步降低业务成本。
现在oceanbase支持公有云、私有云,也支持混合云部署,还支持海外的多云部署,支持市面上大部分硬件,如arm、x86、华为鲲鹏。企业甚至可以把oceanbase装在一个很小的pad里。我们希望客户能够简单使用,所以一个oceanbase的集群既可以支持mysql语义,还可以支持oracle语义,还支持一些实时数据库的分析。
oceanbase不仅支持传统的关系数据库、kv数据库,还支持图数据库和时序数据库。这两款数据库的诞生也是源于蚂蚁和阿里巴巴在某些业务领域的最佳实践,比如图数据库广泛应用在蚂蚁集团风险防控领域里,我们用这个数据库把风险防控漏洞过率从十万分之一做到了百万分之一。
现在蚂蚁集团每天大概有接近上千个业务迭代、上千次业务发布,,因为要修改数据、修改模型,而蚂蚁集团有2万多个研发任务,支持这些工作的只有1~2个人,所有工作基本都是自动化完成的。我们有些伙伴也基于这些体系做研发和运维流程。
在企业任何一个发展阶段中,数据的安全、数据库的稳定性是都非常重要的事情。我们把数据库安全稳定防护划分了6级4层(见下图),而且一直坚持所有数据都要经过充分校验。
oceanbase数据库安全的6级4层图
第二层校验发生在oceanbase集群内部,oceanbase支持多副本、强一致同步,我们客户可能会把副本放在同一个城市的不同机房里,这些机房可能相距30、50公里,还有一些客户会把oceanbase不同副本放在不同城市,比如网商银行放在相距1200公里的两个不同城市。这些数据副本是强一致、实时同步的,任何一个副本出现问题时,30秒就可以切到另一个副本。
第三层校验主备库,所有副本之间强一致同步是相关联的事件,如果出现bug或异常,所有副本可能出现同样的问题,但是主备库是相互独立的事件,两个同时出问题的概率非常小,所以蚂蚁集团所有的数据其实是被放了5份,既有强一致同步,也有主备库的同步。
在过去的实践中,最上一层防护帮蚂蚁集团挡住或发现了很多问题,这一层校验就是备份恢复。现在蚂蚁有几千个pb的数据,可以让业务回溯到线上14天内任意一个时间点;如果业务把数据写错了,可以回滚到线上业务的任何一个时间点,这些能力可以帮助用户恢复数据。
oceanbase怎么保障数据安全和数据正确?
2018年一家企业的“ssd静默错误”导致整个企业的数据全部丢失。因为硬件厂商常常遭遇一些批次性故障,从而导致“静默数据丢失”或“ssd掉盘”问题。蚂蚁和阿里集团每年大概要采购几十万片到上百万片ssd,因此也会出现和发生这些问题。去年,我亲身经历了这种事情。当时我们采购了大概十几万片ssd, 80%的概率会出现磁盘“静默错误”。去年8、9月份时,这些磁盘基本上会在同一时刻、非常密集地出现这类问题。因为我们前面做了很多底层的校验,因此在业务上能够及时发现并重新定向正确的副本上。这种情况非常危险。因为这个原因,oceanbase架构每天都会把所有数据进行校验。
我们能够从软件层面保证数据是正确的,因为数据库是状态级的产品,会对状态变迁做校验,对主表数据、索引数据、视图数据、主表数据做校验,会保证任何一刻或任何一个时间点出现错误,都能够第一时间发现。
如何建设数据中台?通常典型的场景是所有业务的数据分布在不同的数据库里,通过cdc、etl把所有数据回流到计算集群里,在上面构建业务数仓、业务原型进行分析。数据会存储两份,计算也会有两份,有很大成本。
举例来说,海底捞最开始也是这样的,在线数据要同步到离线数据,再做运算。后来,他们让在线数据和离线数据一起运算?因为数据本身就在那里,数仓是否可以基于实时在线模型去做一些运算?思考很久之后,我们认为可以做,oceanbase4.0也是朝着这个架构去研发的。我们所有数据会放在oceanbase不同的租户里,在线请求和离线请求同时在这份数据上做计算,中间会有一些隔离措施,以保证在线请求不会被离线请求所影响。
为了更好支持htap在线的数据计算 (hybrid transaction and analytical process, 混合事务和分析处理能力),我们做了行列混存,在学术里叫pax。这能带来非常大的好处,我们的数据能够以原来1/10的成本存储在磁盘上。蚂蚁集团所有的业务,包括支付宝、花呗、借呗、农场小鸡等所有数据都存放在oceanbase上,原来都是放在mysql的,数据迁移过来之后,节省了2/3的成本,这个数据对一家企业来说是非常可观的。
企业在数字化转型过程中或在生长发展中一定遇到很多问题,也会有很多创新的想法,这个想法开始可能只是简单的原型,未来可能会发展壮大。过去几十年,我看到很多这样的业务,也有因为业务发展原因或战略原因而逐步收缩的。我们在过去的实践中花费非常大的精力用技术实现业务创新,这个投入非常大。2015、2016年之前,蚂蚁和阿里巴巴大部分技术团队都在做这个事情,希望我们在自身积累的这些经验能够平滑地迁移到各行各业。
oceanbase是支持副本的。当企业需要新引进一种硬件,硬件遭遇一大堆问题,或者企业想更换操作系统却不知道新系统对数据库的稳定性有多大影响时,我们可以帮助大家灰度验证新硬件、操作系统,验证以后再做大批量推广、覆盖,而且能够让他的业务不受任何影响,甚至是在没有任何感知的情况下,就能完成验证。
经过几年的打磨,有两个数据可以分享。1.现在 oceanbase最大的节点规模大概是1000台。2.现在 oceanbase最大的集群应该有15pb,也是在做数据中台的业务,上面有非常多的计算。
我们非常注重生态和伙伴建设,特别想说两点:
1.在行业伙伴方面,我们和政企、金融行业top40家企业实现了产品层面的深度融合,就是在数据库里帮他们定制很特色功能,帮助他们解决以前在传统商业数据库或者单体数据库里很难解决的问题。
2.oceanbase这家公司一直在做相关人才建设,现在有1万多注册工程师,每年大概会投入几千万元和校企联合培养大学生。
目前,oceanbase已经有400多家客户,跑在oceanbase数据库上的都是核心系统,如银行的贷记核心、借记核心系统、运营商领域的crm和bos核心系统等。
过去三年多,oceanbase已经完成华丽转身,不只是运行在蚂蚁集团或工商银行、建设银行、交通银行等规模较大的金融场景里,也运行在规模较小的业务场景里,如小区门口小的闸机等。
在oceanbase的发展过程中, 我自身也有一个非常深刻的体验:技术出身的人,常常觉得这个技术不太行,需要升级一下。现在我有一个非常大的转变——不管什么技术,首先要适应业务发展的需要。
案例分享
案例1:中石化在全中国有2亿张加油卡,每天有3000万笔交易量,由于历史原因,在中石化的it架构中,有22个省的业务系统基于sybase数据库而建,其他省的基于oracle数据库而建。需要把二三十个不同的数据库迁移到sybaseiq上进行数据分析。有些地方的业务量大、有些业务量小,会导致巨大的资源浪费;而且it架构分散,不同省市采用不同版本的业务系统,导致业务逻辑复杂。尤其是每天3000万笔交易量,一旦系统出现问题,对用户的影响比较大。中石化一直想做业务异地容灾,以降低风险,但异地灾备的成本非常高,难以实现。
oceanbase团队和中石化相关技术部门充分交流和讨论之后,决定把蚂蚁和阿里集团的一些实践经验引入到中石化的异地灾备和单元化多活方案中。最终方案比较简单:分别在北京、南京设置一个数据中心,每个数据中心承担一部分省市的业务数据,这两个数据中心是多活的,每个数据中心配置一个oceanbase数据库,数据在这两个中心通过oceanbase进行实时同步。当一个数据中心出现故障,业务系统可以快速切换到另一个中心。除此之外,oceanbase具有当前业界推崇的htap能力。
案例2:山东是电信运营商业务中排名第二的人口大省,每天大概要处理130亿条数据,数据量巨大。随着5g和iot的发展,在用户增长比较快的地方以及新的业务场景上,运营商遇到了新的技术瓶颈。因为其业务系统建造得比较早,且基于oracle数据库,因此他们面临两个选择,一是基于新的数据库系统,重构所有的运营商业务,再一次;二是找一个能够水平可转的数据库解决当下的问题。
运营商业务非常复杂,有很多复杂的查询,还有很多oracle的高阶特性,这对任一数据库的挑战都很大。我们与运营商充分沟通之后,双方都想尝试一下,从oracle数据库平滑迁移到oceanbase,以解决业务遇到的容量问题。经过几个月的努力,仅花一个小时就完成了整个业务的切换。最终bos详单的查询效率提升了30%,存储成本降低了90%,仅为原来的1/10。此项目获得了工信部2002年网络安全技术示范奖。
案例3:现在跨境电商比较火爆,致欧家居现在是亚马逊亚洲区最大的电商伙伴,已进入了50多个国家,其业务部署在私有云、公有云,包括阿里云和aws上;但因为他的很多业务系统是采购第三方的,所以他想对业务系统进行任何微小的调整都很困难。最后,他们利用oceanbase混合云和多租户架构,把所有数据都汇聚到香港阿里云的oceanbase上,把他们在欧洲、北美所有aws数据库迁移到oceanbase,我们帮他们建设了一个一体化数仓,化解了困境。
案例4:汽车行业的mes系统对稳定性的要求非常高。理想汽车的l9mes系统是基于oceanbase而搭建的。
关于企业网d1net(www.d1net.com):
国内主流的to b it门户,同时运营国内最大的甲方cio专家库和智力输出及社交平台-信众智(www.cioall.com);同时运营18个it行业公众号(微信搜索d1net即可关注)。