【IT168 评论】在2018云栖大会上海峰会中,来自阿里巴巴数据库的高级技术专家王林平为现场的听众带来了题为《互联网架构转型中的数据库实践》的精彩分享。在本次分享中,他重点介绍了互联网发展经历的痛点,数据传输DTS,阿里巴巴数据管理,混合云数据库管理,数据库备份,基于HDM、DBS、DTS的容灾解决方案等。
互联网数据库发展经历的痛点
互联网数据库发展过程中,我们在做IT建设的时候都会碰到一些痛点。在这个过程中,如何解决这些痛点非常重要。第一,许多企业都会面临的数据和业务都会从简单到复杂,数据量由小到大的过程,在这个过程中,数据可能会出现在单一的数据库无法存储的情况,那么这个时候我们如何提升扩展性呢?第二,我们的业务发展了,数据也发展了,但是人有没有跟上业务发展的节奏呢?第三,我们的企业在从小到大的过程中多多少少都会有一些核心的数据,比如客户的用户信息,包括一些基础性配置信息。这些信息很多时候是企业里很多部门都能用到的,那么核心数据如何共享呢? 同时,企业在用不同的数据库的过程中,这些数据库之间的数据怎么进行数据交互也是我们面临的一个痛点。第四,我们的研发人员和控制人员也会随着业务规模的增长不断增加,我们怎样在人员多的时候保证数据的安全和规范性,同时又不影响开发和测试的效率呢?最后,数据是企业的核心资产,如何提高数据库的容灾能力,保证我们的数据不会因为天灾人祸等丢失?下面以阿里巴巴整个改造过程中碰到的痛点来介绍一下我们的产品。
上图为阿里巴巴分布式数据库的发展历程。目前阿里巴巴通过分布式数据库解决问题。DRDS产品支持多维度的拆分,比如说我们可以按照交易的ID、客户的ID、按照时间来做拆分。
上图为分布式数据库DRDS的一个典型客户案例,一个电信运营商的案例。它在业务发展的过程中有增速快、扩展性存在瓶颈的痛点。同时,如果客户用传统的方法拆分数据库就面临着应用改造成本高的问题。DRDS提升了存储扩展能力和计算能力,访问应用透明、平滑扩容、透明生配、透明读写分离解决了客户应用改造成本高的问题。
阿里巴巴数据传输
产品有三个核心能力:支持传输同步,支持数据库迁移,支持数据的订阅。可以将数据变化转换成消息发送给下游,下游可以根据这个消息进行应用的电话的消费。
上图为数据传输DTS的架构。在下层我们支持云数据库,包括ECS自建数据库,用户IDC数据库以及集团、蚂蚁。通过产品可以把数据迁移到不同的目标端,同时也支持数据同步订阅。我们可以把数据库的数据转换成文件。
上图为数据传输DTS客户案例。客户面临的主要问题有:本地的Oracle数据库是客户业务的性能瓶颈,活动时,Oracle上的存储过程占用了实例将近80%的CPU。并且要求在系统持续运行、不停机的情况下将Oracle上业务迁移到阿里云DRDS。解决方案为:通过DTS搭建Oracle到DRDS实例间的实时同步链路,保证DRDS与Oracle数据实时同步。在DRDS和Oracle实例间的数据保持实时同步后,业务选择任一时刻,将部分流量切换到阿里云上的DRDS。通过DTS,将DTS上产生的业务流量流回Oracle,Oracle和DRDS在业务完成割接期间互为灾备,保证业务连续性。阿里巴巴数据管理的前世今生。通过信息化统一管理数据库,同时通过非运维操作的规则化,自动化,规则加流畅的自助变更,目前DMS已经在公有云端正式商业化了,同时也支持私有化输出。
混合云数据库管理HDM
上图为混合云数据库管理HDM架构与能力,我们日常运维的工作基本上可以由HDM来解决。HDM的核心能力包括:打通混合云数据库架构,多环境统一管理,自动化运维低成本,容灾切换,快速弹性扩容,一键切换,稳定、容灾、弹性。
上图所示为基于HDM、DBS、DTS的容灾解决方案。最低级的方式就是我们把本地的备份直接的通过拉文件的方式扔到OSS上,当然这样比较低级。第二个就是我们可以通过DBS实时备份上云,备份后也可以通过DBS还原到本地或者RDS上。第三我们通过DTS将云下的数据库同步到云上的RDS。我们云上的RDS跟云下形成一个灾备,也就是说一旦我们本地的IDC无法访问的时候,我们就可以访问云上的RDS来保证业务的持续性。这场景是说我们云下和云上可以实现双向同步。这个双向同步其实可以实现异地多活,就是说我们在A机房有一套数据库,B机房有一套数据库,进行双向同步,这两个双向同步可以支撑IDC访问,云上也可以访问。只要应用端建设的足够好,那么这个双活是可以实现的。同时基于我们的HDM可以打通我们的用户IDC和云上云下,实现数据库的容灾一键切换。
企业级数据库产品架构
刚才跟大家一起分享了几个产品,下面我们来回顾一下这几个产品的一些能力。首先是分布性数据库DRDS。我们可以理解它是一个存储层,来满足数据库的扩展能力。第二个就是我们的数据传输。数据传输实现了数据迁移、同步和订阅的能力,它可以把云外的数据库和云上的数据库打通。同时它不仅限于这些功能,包括我们自己内部。第三是我们的数据管理,可以理解它是一个数据库层面的DevOps,让我们企业的开发人员和测试人员不用进行太多的互动就可以完成数据管理这件事。还有就是我们的数据库备份DBS,来以较低的成本满足企业备份数据的需求。最后就是我们的混合云数据管理HDM,可以打通云上云下的数据库,实现一键容灾切换。
企业级数据库解决方案
除了产品之外,我们还会输出一些解决方案,解决方案是依赖于产品的,给我们广大企业提供一些方案。像研发效率保障和数据安全方案,这个是基于DMS。也就是说我们在输出的时候,我们会帮企业把我们的产品用起来,同时给我们的企业一些建议,比如说我们怎么去做到更高效、更安全、更合规的数据管理体系。第二是DTS。DTS本身具有数据迁移、同步的功能,同时也有订阅功能,那我们会协助企业一起把DTS用起来,能够把数据搬到云上。再就是我们基于HDM、DBS和DTS,会给我们企业输出多层级的容灾解决方案。