OceanBase迁移服务:向分布式架构升级的直接路径

2019年1月4日,OceanBase迁移服务解决方案在ATEC城市峰会中正式发布。蚂蚁金服资深技术专家师文汇和技术专家韩谷悦共同分享了OceanBase迁移服务的重要特性和业务实践。数据库

蚂蚁数据库架构的三代升级史

在过去的十多年时间里,蚂蚁在整个基础数据库架构上一共经历了三代升级。第一代数据架构是构建在IOE的基础之上——IBM的小型机、Oracle的商业数据库,还有EMC的共享存储。基于第一代IOE架构的运维成本是很是高的,同时稳定性的挑战也是很是大的。随着业务的快速发展,这套架构已经彻底没有办法适应业务发展的增速。网络

图片描述

随之诞生的是第二代架构,第二代架构的主体是OE——也就是Oracle和EMC,加上蚂蚁自身的分布式中间件,解决了业务的水平和垂直的弹性能力。这一代架构其实伴随着蚂蚁走了不少年。架构

随着4G、5G时代的到来和金融的普及化,人们的生活愈来愈离不开移动支付,业务井喷式的发展给底层的数据库提出了更高的要求。这些要求包括更高的稳定性,快速恢复能力和极致的弹性能力等。运维

因而最终演进到了咱们现在的第三代架构。第三代架构是由OceanBase为表明的金融级云数据库和分布式中间件所构成。分布式

数据库架构升级的挑战

伴随着整个蚂蚁的发展,整个数据库的架构也仅仅演进了三代。这其中一个很重要的缘由就是对于任何企业而言,整个数据库的架构升级都是一件很是有挑战的事情。模块化

蚂蚁金服资深技术专家师文汇说道,“用一个咱们内部常常说的比喻,就是数据库的架构升级就好像是在给一个高速运行的飞机更换引擎。”工具

更换引擎的目的是为了拥有更好的动力,作更多技术上的创新。可是横亘在眼前的问题是,如何才能作到稳妥创新,保证驾驶中的飞机平稳顺利的运行,这实际上是有很是大的挑战。性能

图片描述

在过去三代架构的演进中咱们能够看到,本质上每一代架构的迭代基本上都是以两到三年为周期,这其中会有很是高的人力投入和成本开销测试

第二个挑战就是从传统的商业数据库迁移到OceanBase数据库之上,咱们如何保证迁移过程当中以及迁移之后的稳定性优化

另一个很是大的挑战就是数据质量,在金融企业里,数据承载的不只只是钱,更承载了数以亿计用户的信任。因此数据一条不能丢,一条不能错,这是咱们作数据库的底线。

固然,包括兼容性问题和性能风险也给数据库的架构升级带来重重挑战。

OceanBase迁移服务:向分布式架构升级的直接路径

基于上述问题和挑战,同时通过蚂蚁十年数据库架构升级的先进经验,蚂蚁金服为客户打造了这款一站式数据迁移解决方案——OceanBase迁移服务(OceanBaseMigration Service,简称OMS)。

OMS的发展演进

图片描述

OMS的演进是以业务为驱动,而且与OceanBase的架构升级和不断发展密不可分。

早在2014-2015年期间,蚂蚁主站上的一些核心业务,包括你们熟知的交易业务,支付业务和会员业务等,须要从Oracle迁移到OceanBase上。当时的OMS仍是以一个工具类、模块化的形态支撑着这些项目。

因此在2015年咱们开始对OMS的方案进行全面的调研,力求沉淀出通用的系统化的解决方案。

在2016年,OMS已经有了平台化的架构,引入了大规模编排的思想,将整个迁移特别是切换过程当中繁琐易错的环节所有集成到平台。这一时期,OceanBase也完成了从0.5版本到1.0版本的架构升级,这一年OMS还支撑了网商银行、印度PayTM以及主站的核心业务升级到OceanBase 1.0版本。

到了2018年的时候,不管在基础功能层面仍是任务编排层面,OMS都已经被打磨得日趋完善。今年OMS已经支持了蚂蚁森林,蚂蚁商户平台以及众多大量核心及非核心的业务从MySQL迁移到OceanBase之上。与此同时,在外部业务包括不少已经上线OceanBase的商业银行,也已经验证了使用OMS一键迁移到OceanBase的能力。

OMS的方案优点

图片描述

OceanBase迁移服务其实主要解决了五个重要的问题。

1.负载回放验证:其中第一个核心的问题就是负载回放验证,经过采集源端数据库的SQL流量,在目标库OceanBase上回放,能够验证其在OceanBase上的功能是否兼容、性能是否出现问题等。同时基于蚂蚁DBA十多年的经验沉淀,OMS会为客户提供性能等方面的调优建议。

2.秒级数据校验:第二点就是数据校验,OMS有三层数据校验,能够作到秒级的延迟。举一个例子,好比说咱们想把传统商业数据库替换成OceanBase,若是在迁移过程当中任何一条数据出现了错误,在一秒钟内就能够快速发现。校验的延迟能够彻底保证在一秒之内,根据蚂蚁线上的经验,大概在100-200毫秒之间。

3.分钟级即时回滚:第三点也是最重要的一点,就是OMS有随时回滚的能力,并且回滚是无损的。这也是咱们前面所强调的稳妥创新的基石。

4.多种数据库类型支持:目前OMS支持源端数据库类型有Oracle、MySQL、OceanBase等等,支持全量迁移和增量数据同步。

5.一键完成迁移:整个数据迁移链路和回滚机制的搭建基本上都是经过一键操做完成,使用简便。

OMS的技术架构

OMS的核心方案其实很是简单,咱们把OceanBase变成Oracle/MySQL的一个备库。

图片描述

传统的商业数据库通常都是有主库和备库的:主库承担写的流量,若是主库出现问题,咱们会把数据切到备库,而后经过OMS提供的一整套虚拟主备库的解决方案完成切换。好比原来Oracle有一个主库一个备库,而后OceanBase其实变成了一个虚拟的备库。

整个数据库架构的升级也会变得异常简单,简单到只是作了一个主备切换。回滚也会变得很是简单,其实也是作了一次主备切换。

图片描述

从OMS的总体架构来看,其实一个很是关键的点就是,咱们在传统的商业数据库和OceanBase之间创建了一套虚拟的主备链路,整个OMS里用到的全部组件,其实都是在蚂蚁和阿里有不少年技术沉淀的,也都是基于真实场景所产生的。

OMS的迁移流程

图片描述

OceanBase迁移服务的总体迁移流程其实只有七步。

1.评估:首先第一步是经过负载回放工具作兼容性分析;

2.PoC:接下来OceanBase云平台能够帮助客户部署一套PoC集群;

3.预迁移:而后OMS把线上的Oracle的数据预迁移到一个测试库里;

4.验证:在这个测试库里用负载回放工具去回放这些SQL,而后找到SQL里不兼容,性能或者数据质量不知足预期的部分,并提供优化建议;

5.正式迁移:前四步作完了之后,业务须要调整或者须要优化的SQL已经完成优化,而后就能够正式迁移了。首先把原有的全量数据迁过来,而后再把增量变化的那部分数据实时同步过来;

6.校验:等到全部的数据准备好之后,而后咱们继续完成三级校验;

7.切换和回滚:等到全部的校验都完成之后,能够一键完成切换和回滚功能。

经过这七步就能够轻松完成从传统商业数据库到分布式数据库的完整迁移。

蚂蚁商户平台基于OMS的业务实践

蚂蚁商户平台承载着商户档案数据信息,订购关系、签约信息的数据和相应的服务能力。其中一部分业务使用的是MySQL数据库,还有一部分核心业务使用的是Oracle数据库。

随着商户的快速增加以及业务场景的不断丰富,商户平台数据增加迅速,数据规模至关庞大。尤为是MySQL的单表瓶颈日益明显,DDL变动、DML更新的性能与风险已经没法承担。

图片描述

蚂蚁金服技术专家韩谷悦介绍道,“OceanBase可以支持数据的无限扩展,知足商户业务的容量与性能需求。那么若是咱们换一种数据库底盘,其实所要面对的性能、稳定性和数据质量的风险一样不可避免。”

图片描述

从蚂蚁商户平台的业务实践来看,使用OMS迁移与传统迁移进行对比,咱们能够看到:

· 业务评估和改造

过去一般一个业务少则花费1-2个月的时间去作改造和适配;那么基于OMS自动化的SQL兼容性评估和负载回放的能力,蚂蚁商务平台业务的改造大概只用了一个星期的时间。

· 数据迁移和校验

客观来说,迁移的总时长主要取决于业务数据模型,数据量和网络环境。在提升迁移效率方面,OMS目前增量迁移的延迟仅为毫秒级,跨城状况下最长只须要3秒。而且针对校验出的数据差别提供补齐的SQL和订正方案,使得迁移和校验的总体效率有了大幅度的提高。

· 业务切换

其实在切换以前,每每须要制定严密的切流方案和Failover方案,整个切换过程当中须要检查与校验的细节很是繁琐,任何一步疏忽都有可能形成数据不一致的问题。那么OMS经过引入大规模编排的思想,把全部繁琐复杂的环节统统落到平台当中。因此从原来业务切换须要用时1-2周时间, 使用OMS后蚂蚁商户平台业务不管是切读仍是切写的过程当中都只用了几分钟的时间。

· 业务回滚

在过去,迁移以后的业务回滚要担负重大的决策风险,OMS使得业务回滚就像一次主备切换,能够瞬间完成而且不丢数据,因此让业务回滚再也不成为难题。商户业务总体迁移的过程当中也发生过业务抖动,使用OMS回滚的时候从登录系统到完成回滚也只用了几分钟的时间。

因此全程下来蚂蚁商户平台这个业务的迁移时间大概在三个多星期的时间完成,那么不管从人力成本仍是时间成本上,OMS都极大地提高了数据库的总体迁移效率。

最后,韩谷悦为你们展现了OMS一键迁移的demo演示。

图片描述

当前, 愈来愈多的企业已经认识到分布式架构在实现业务灵活扩展以及敏捷开发等方面的巨大价值。OceanBase不断经过产品端的革新,为传统企业输送“互联网基因”,帮助更多客户向分布式架构转型。

同时OceanBase也在不断提升服务客户的深度和广度。深度意味着在一样的业务场景下,随着业务的发展和体量的壮大,帮助更多企业承担起业务所带来的极致压力。广度则针对的是随着新型技术形态和业务场景的出现,帮助更多企业快速响应,经过技术创新而适应变化所带来的新的市场契机。

OceanBase致力于将蚂蚁自身业务多年沉淀下来的最浓缩,最经典和最普世的方法论输出给广大的企业客户,同时作到深度和广度并存,真正帮助客户实现稳妥创新

相关文章
相关标签/搜索