2020双11,阿里巴巴集团数万数据库系统全面上云揭秘

2020年天猫双十一成交额突破4982亿,在双十一走过12个年头之际,咱们的订单建立峰值达到58.3万笔/秒,再次刷新全球在线交易系统的记录。历年双十一都是对技术人的一次大考,峰值的丝般润滑体验是你们一致的追求,而数据库可谓关键。多年双十一大促“磨练”出阿里巴巴DBA一整套技能来应对大考,比方说全链路压测、容灾预案、实时限流等,同时阿里的数据库产品能力也大幅提高,如智能化的企业级MySQL内核AliSQL,自研PolarDB引擎等,这些硬核能力是阿里巴巴集团数据库团队应对大考的底气。数据库

在数据库引擎技术能力不断攀登高峰的同时,长期以来咱们“彷佛忽略”一个很是重要的因素,而该因素倒是中大型企业上云的必须考量点。若是将时钟指针拨回到半年前,这个重要因素就摆在眼前,是阿里巴巴集团全部的数据库系统全面上云及云原生化过不去的“坎”,它是什么呢?服务器

1、阿里集团数据库全面上云的挑战

当DBA维护的系统上百套甚至上万套之后,系统管理的复杂度就会急剧上升,加上资源利用效率、业务高峰支持(如大促活动评估)、流量管理等上级或业务方“强加给”DBA的工做后,整个系统复杂度就会居高不下,这种复杂度“熵”就会指数级增加,而且没法经过扩充DBA人数来有效解决问题,DBA自身也会陷入到繁杂的平常支持和“灭火”中,自身价值难以体现,这就是深坎。网络

阿里巴巴集团就是这样一个巨型的、系统复杂度“熵”奇高的大型企业。今年阿里双十一要求全部系统全面上云,相比单纯提高系统吞吐扩展能力的技术要求,这个任务更加难完成。简述下当初面临的严峻挑战:架构

1.如何保证大量数据库短期内快速上云?
这不只仅是数据的搬迁过程,还要在此期间支持业务需求,比方说如何作到对业务“无感知”的迁移数据上云。如何在阿里的巨型体量下,保障全部系统全面上云的丝般顺滑度?框架

2.如何高效支持DBA知足双十一期间的数据库业务需求?
DBA对业务系统是熟悉,多系统之间有的相互依赖有的相互排斥,如何有效的将它们编排好,从而总体利用好数据库资源,这是很是大的挑战。分布式

3.全面上云之后,要支持DBA依旧对数据库的强管理能力,比方说可以及时登陆操做系统排查数据库问题等。性能

2、全面上云的新打法,以专属集群RDS构建超高效数据库管理体系

在全面上云这个残酷指标下,必须找到全新的方法来解决上述三个重点问题,构建一个高复杂度的但“混乱熵值”很低的超高效的数据库管理体系。这就是全面采用专属集群RDS的根本前提。测试

那么咱们是如何极短期内全面上云而且可以丝般顺滑,如何充分发挥DBA的业务把控能力从而实现对RDS标准化服务的超高效能的管理,以及如何利用专属集群的源生内核能力构建全球最大的异地多活电商系统呢?优化

2.1 丝般顺滑上云阿里云

要实现丝般顺滑上云,须要充分规划和精细的执行。因为阿里集团是隔离于公有云的网络环境,底层对数据库资源的网络配置上云后都会涉及变化,数据库还要特别注意避免双写,要和业务作联动的流量管理。

上图是咱们实现丝般顺滑上云的基础框架图:

1.将数据传输路径尽可能缩短,节省大量时间:因为阿里集团超高业务量,几乎每一个数据库系统的数据量都是巨大的,少则TB多则PB为单位,咱们采用最原始有效的方法,将备份文件拷贝到云上环境,而后执行快速恢复。

2.有效快速恢复是另外一省时环节。阿里集团数据库广泛有两种存储类型,分别是本地SSD盘和ESSD云盘,二者的备份方案是不一样的,本地SSD盘相似于Xtrabackup执行物理的备份,ESSD云盘采用存储级快照备份。对应的二者快速恢复的方法也不一样,本地SSD盘在备份时采用库表级备份,而恢复的则采用并行表级恢复,大幅度的提高恢复速度,ESSD云盘则经过秒级快照恢复实现。也就是说从阿里集团网的全量备份、到数据两套环境的传输、到云上环境的快速恢复是一个联动的连续过程,从而大大节省恢复时间。

3.利用MySQL源生复制实时追加增量数据,确保业务对数据的搬迁无感知。在复制技术方面,AliSQL 针对高延迟网络作了大量的协议优化尝试和测试,经过合理的Batching和Pipelining,设计并实现了一整套自适应的针对高延迟高吞吐和低延迟高吞吐网络的通讯模式,极大的提高了日志传输的性能。另外为了节省带宽,对binlog全面压缩,同时在压缩率和解压速率上采个较好的平衡值。

4.统一的混合网络环境代理实现流量的按需切换,确保业务感受迁移的过程是顺滑的。联动于业务部署,先切换读流量到云上环境,后切换写流量。因为代理层实现透明切换能力,在分钟级级内会保持原有的数据库链接,保障切写过程当中业务是无感知的,在绝大数状况下效果很好。

2.2 灵活可控的标准化服务管理

双十一涉及数据库系统数万套,除交易、商品、用户、评价、优惠、店铺、积分等核心系统外,还有各类“中小型”业务系统,机会每一个业务都有一套或多套数据库,每一个业务之间有亲和性或排斥性需求,即必需要在专属集群中知足多样性的业务部署要求。

举例而言,咱们将购物车数据库和购物车应用自身部署在一块儿,确保购物车不受别的业务影响,同时购物车内部实现交叉部署,大体部署图以下所示,经过灵活的部署策略,业务方DBA能够制定一套复杂部署策略知足业务须要。

如上所述参与双十一的业务方特别多,而DBA人数有限,DBA对业务的掌控程度也是高低不一的。通常而言,上述的核心业务基本上比较清晰,这主要得益于双十一前的一次次全链路压测,交易核心链路业务模型比较清晰,对数据库容量的预估会很准确。可是这并非全部状况,比方说创新型业务,对业务流量评估会很是的不许确,可能百倍增加也有多是百分比增加,此状况下DBA预留数据库资源没有参考依据,如何在有限的资源中支持足够多的创新型业务绝对是一大挑战。再比方说原边缘型业务,会因为其余系统的新依赖、或者业务流量徒增致使流量预期不许,更常见的是被其余系统新依赖,还容易致使故障。

为了解决该不肯定性问题,咱们在专属集群上特别开发智能化DAS资源调度系统,DBA能够经过简单的设置实例的弹性策略,DAS会根据过去系统的表现状况以及突发状态,基本上以准实时的方式实现秒级资源弹性,分钟级资源调度。秒级资源弹性能力,是在整台主机范围内灵活的对实例资源进行调整,也能够人工干预保护一些实例资源不被争抢。分钟级的资源调度能力,这得益于存储计算分离架构,经过分布式存储的秒级快照能力,以分钟级在不一样主机之间从新平衡资源利用调度实例,因为高可用保障系统和代理透明切换能力,这个过程几乎是平滑的。经过专属集群,DBA只须要投入必定量的服务器资源,而后专一监控总体集群的资源水位,就能够保障大量的创新和小型业务的大促性能须要,可谓一夫当关万夫莫开。

2.3 构建源生异地多活

双十一零点高峰流量是巨大的,今年交易笔数达到58.3 万笔/秒,数据库集群的TPS超过千万级每秒,巨大的洪峰流量经过阿里的单元化数据库部署来分流,从而规避单个实例单个机房的流量风险。与往年相比,今年单元化数据库所有采用全球数据库模式支持多地域的读流量,另外在内核中实现源生多写能力,支持实例集群级别的异地多写多活,从而能够在不一样地域分担写流量。

如上图所示本次双十一阿里巴巴启用张北、深圳、南通3个地域,针对每一个Region是独立开服的,地域之间是低耦合的,经过一个桥梁把他们链接起来,它就是全球数据库网络,(GDN,Global database network)。部署于不一样地域的数据库,采用MySQL的源生复制技术,保证数据的一致性和实时性。

关于异地多活,第一次实现了在内核层的双向同步,在多个地域中都有各自主节点和备节点,在内核中实现双向复制,保障两个地域在数据总量上是一致的,同时写实现分地域分流。这里须要强调的一点,异地多活须要业务的改造,好比这个UID的数据只会在某一个地域写入避免性冲突,此外ID(PK键)也须要使用独立的Sequence,从而实现全局的一致性。业务和数据库在本套架构中实现完美结合,业务只须要关注逻辑的拆分,而数据库自身实现数据的同步组合,底层数据同步复杂性彻底由数据库自身实现。

3、展望

总结而言,本次双十一为了保障集团数万数据库的全面上云及云原生化,咱们基于专属集群作了不少定向改造和匹配,取得了很是好的效果。核心交易链路总共构建数千台机器集群,总共超过数万的数据库节点,而且全部数据库系统RPO等于0,主备延迟作到毫秒级,并保证总体人力效能数量级提高。灵活调度、源生复制等定制化能力,在专属集群内部实现产品化,通过双十一验证后,逐步开放,将会大幅度提高企业数据库管理生产力,敬请期待。

做者:阿里云高级技术专家 改天、阿里云高级产品专家 胜通

 

原文连接

本文为阿里云原创内容,未经容许不得转载。

相关文章
相关标签/搜索