【复盘】从肩挑背扛到99%聚石塔订单,AliCloudDB四年双11技术突破!

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

2015年天猫双11购物狂欢节已经完美落下帷幕,高峰期间订单创建每秒达到了14万笔(达每秒14万笔),总订单量达到了4.78亿,技术指标再次刷新世界纪录。其中99%的订单通过聚石塔订单推送,并在阿里云云数据库服务(AliCloudDB,曾称RDS)中完成存储和处理。在持续高压力冲击下,整个双11期间AliCloudDB表现坚如磐石:

 

高峰期间集群的总QPS达到了近300W每秒;

单个商家最高处理订单的能力超过400万单;

百万商家在AliCloudDB上稳定运行,全网实现了0故障,0丢单。

 

华丽数字的背后,作为整个天猫商家后台数据库的基石,AliCloudDB是如何保障在零点洪峰来临时候稳定、安全和顺畅?如此庞大规模的数据库实例集群又是怎样一步步成长起来的?“云栖社区”特别邀请连续4年支持天猫双11的AliCloudDB团队核心专家玄惭,深入分享这4年双11背后的AliCloudDB是如何实现技术突破的。

 

下为玄惭的分享:


57e99b745a3908dd81049d73b5206cdbe4c935b3

图:天猫双11背后的“护航侠”——阿里云数据库

 

2012,肩挑背扛和逐个优化

 

2012年是阿里云数据库支撑双11天猫商家后台核心数据库的第一年。其承担了天猫20%的订单量。如果用一个关键词来形容2012年的双11,那就是肩挑背扛。阿里云数据库从9月份开始对外提供服务之后,有很商家就选择将本地数据库迁移上云。但是在迁移过程中,其遇到了一个非常大的问题。当时阿里云数据库支持MySQL和SQLSERVER两类引擎。这两类数据库的上云迁移都不支持在线,以致用户的业务停机时间(会)非常长。同时迁移过程很容易受网络影响而出现中断。该问题在SQLSERVER上尤为突出。记得有一个用户由于数据量特别大,为了加快迁移速度,其甚至把硬盘邮寄给了我们。所以帮助用户迁移数据库上云的工作就落到了DBA身上。那个时候,阿里云数据库短短一个月内帮助用户手工迁移了数百规模的数据库实例到云上。

 

现在这个问题已经不再存在。数据库迁移已经通过DTS在线迁移工具来完成数据库上云的迁移工作,以最大程度地降低业务停机时间。除了数据迁移,DTS目前还支持数据订阅及数据实时同步。底层使用数据流基础设施为阿里双11异地双活基础架构,为数千下游应用提供实时数据流,已在线上稳定运行达3年之久。使用DTS可以轻松帮助云用户构建安全、可扩展、高可用的数据架构。

 

而谈到2012年双11备战,记忆犹新。双11的前一个月,阿里云数据库团队白天要准备资源和双11所有工作,夜里还需要协助用户将数据库迁移上云。弹性升级需要对实例逐个进行升级,商家的数据库也需要逐个进行优化,并为商家提出优化建议。天猫双11能否扛过零点高峰?我的心里是打鼓的,但结果让我们深受鼓舞。完全OK。而后几年,我们不断打磨产品,沉淀出了众多的产品需求:例如上云迁移,资源自动扩容,收容和离散,性能诊断自动化等。在我们看来,只有把双11的经验和能力产品化,才是真正长远发展之计。

 

2013,指数增长和数据链路改造迁移

 

2013年是阿里云数据库支撑双11商家后台核心数据库的第二年。其承担了天猫50%的订单量。如果用一个关键词来形容2013年的双11,那就是变化。第一年双11实例规模量不是很大,然而2013年的双11实例数规模则是成指数级别增长。原来的数据访问链路层的容量已经不能再支持如此规模的用户量。所以我们开始对数据链路访问层进行改造迁移。改造迁移过程的时间点与双11的备战时间点重合,由此触发了非常多的变化,给双11的备战工作造成了很大的压力。一路拼搏,终于在双11之前把链路架构稳定下来。双11当天,记忆尤深的是下午6点左右出现的惊心动魄的场面。由于一个用户发送了超大长度的SQL到阿里云数据库,同时由于Proxy本身问题,所以整个proxy集群出现异常。虽然问题很快得到了处理,影响可控,但给我们敲响了警钟——2014年要重点把数据链路中间层稳定下来。这一年中,我们挑战很大,经验也得到很多:

 

SQLSERVER支持备份文件FTP导入,解决了2012用户上云的问题;

实现了IO,CPU的资源隔离,解决了大部分实例间资源争抢问题;

全链路压测引入RDS双11,检验RDS各个组件容量,从中发现问题并解决。

 

2014,注入拦截保证安全和数据库优化

 

2014年的双11,阿里云数据库在经历了两年的成长期之后开始迎来成熟。汲取了2013年数据链路改造的惨痛教训,我们在双11前统一了所有集群的数据链路访问。在支持灵活数据链路访问模式,高安全链路访问模式下,实现了SQL注入的拦截功能,帮助用户更简单地防护数据库的安全,避免数据库被注入攻破。双11当天表现平稳。承担了天猫96%的订单量。集群QPS峰值达到142W。集群RDS实例数也达到了历史新高。

 

纵观2014年双11,虽然系统已经趋于稳定,但是人工参与度依然较高。团队投入了较多的人力资源来帮助商家的数据库进行优化。同时双11扩容的资源并没有完全下线,也造成了部分集群资源的空闲。所以这两个问题抛给了2015年双11。

 

2015,资源自动离散与收容和自动化诊断

 

2015年集群的规模越来越大,双11我们为集群预备了2-3倍容量资源供用户弹性升级使用。为了使新上线的机器得到资源最大化利用,以保障系统的稳定,需要将老机器上的实例离散到新机器上。同时双11活动完后我们需要把这一批扩容的主机下线,将其补充到其他业务集群进行售卖,以实现资源利用率最大化。针对上面的两个应用场景,RDS启动了移山项目。移山离散策略着力于对主机以及实例最近的性能数据进行计算,得出需要迁移离散的实例列表。移山收容策略则对集群和主机的性能数据进行计算,进而得出需要收容的主机实例列表。

 

双11期间,移山共完成了数千次的资源离散任务,极大程度上节约了人力成本,为双11的资源稳定奠定了坚实基础。双11后我们快速下线掉扩容的机器资源,补充到其他业务集群继续售卖。这实现了资源最大化利用,使资源真正地“流动”了起来。

 

在往年双11备战期间,云DBA团队需要投入大量的人力对商家的数据库进行优化。随着实例规模数的上涨,这种人工的支持方式显然是不可持续的。在2015年,我们不断将云DBA的诊断优化经验进行总结归纳,并开发完成了CloudDBA诊断引擎。该诊断工具在今年双11带来了极大的生产力解放。大量客户的性能问题通过CloudDBA的建议得到了很好的解决:

 

压测期间,用户共触发210次性能诊断任务,产生2546条优化建议;

双11期间,CloudDBA诊断引擎服务所有的RDS实例,共产生优化建议37713条;

经过多轮索引推荐算法优化,并引入代价模型,语句重写等技术后,MySQL索引推荐准确率超过90%;

 

目前CloudDBA诊断引擎支持索引推荐、空间诊断、只读实例延迟诊断等功能。RDS的用户可以在阿里云控制台、DMS上获取诊断信息。目前已经有不少云用户学会了如何通过诊断引擎进行自动优化,使SQL诊断不再成为难事。

 

除此以外,还有异地灾备的产品化也非常值得分享。2015年RDS为天猫的商家后台数据库提供了异地灾备的功能。当主机房出现较大的负载压力、断网、断电等极端情况,RDS可将商家的后台系统在30分钟内切换至灾备机房继续运行,以保障总体可靠性,进一步确保平台大型品牌商家双11期间后台系统安全、稳定。今年双11当天出现了一个小插曲恰好用到了这些。一家大型商家的数据库出现了性能抖动,原因是后台的订单报表系统极其复杂的SQL拖垮了主库的性能。SQL出现堆积,CPU达到100%。此时优化SQL的效果非常有限。我们想到了异地灾备节点。灾备节点的数据同步和主库基本是实时的。所以当时我们就建议用户将这个订单报表系统切换到灾备实例上去查询数据,以此来减小主库的压力。这个方法很成功。

 

未来,走出去传承最佳实践和保障经验

 

还记得2012年一家天猫服务商和我说:“今年遇到了一群靠谱的人,在加上靠谱的技术,才能够一起做靠谱的事情。”这句话一直激励着我。我们也相信,能够真正地帮到商家,是对这次参与双11所有人的最大回报。

 

从上云肩挑背扛到在线迁移,让上云不再成为难事;

从资源手工离散和下线到自动化扩容和收容,让资源真正流动起来;

将诊断经验沉淀为自动化诊断工具,让诊断不再成为难事。

 

一幕又一幕,我们始终坚信只有把双11的经验和能力产品化和工具化,利用双11这样极具挑战的项目不断锤炼我们的产品,才是真正长远发展之计。历经4年发展,AliCloudDB在稳定性以及产品功能的丰富上不断进步。未来,我们希望能够出去多走一走,接近云用户,多多倾听他们的声音,将最佳实践和保障经验传承给用户,帮助他们一起把系统稳定性保障起来,是我们最大的心愿。

 

—————————————————————————————————————

任何数据库技术问题,都找云栖社区数据库团队,大牛都在这里!

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
存储 监控 供应链
一文讲透阿里商旅账单系统架构设计实践
阿里商旅作为飞猪旅行旗下面向企业客户的数字化差旅解决方案产品,依托飞猪旅行机票、酒店供应链为企业客户提供一站式的机票、酒店、火车票、用车等预订管控及结算票据服务。阿里商旅不仅是集团欢行的供应商,而且近几年在商业化差旅市场上崭露头角,服务了2万+中大型客户,43万+小微企业。
546 0
《在业务量暴增中痛并快乐——数据交易平台的成长记事》电子版地址
在业务量暴增中痛并快乐——数据交易平台的成长记事
47 0
《在业务量暴增中痛并快乐——数据交易平台的成长记事》电子版地址
|
监控 容灾 NoSQL
【TICA大咖】大促场景下,如何保障未来玩法的功能确定性
阿里QA导读:TICA2022如期报到,将于2022年12月15日正式举办,第四次跟大家见面,我们诚意满满,期望给大家带来更多干货。从本周末开始,小编将开启【TICA大咖】频道,每周六跟大家分享TICA各会场出品人的精彩文章,本周文章来自工程效能分会场出品人-太禅老师,讲述如何通过创建隔离环境并修改系统时间,让亿级买家、千万级商品提前过双11,并观察核心交易链路上的功能可用性。
648 0
【TICA大咖】大促场景下,如何保障未来玩法的功能确定性
|
移动开发 安全 小程序
顶象特别策划 | 2022双十一业务安全保卫战即日启动
各位白帽黑客们,来一场酣畅淋漓的正义守卫战吗?
105 0
顶象特别策划 | 2022双十一业务安全保卫战即日启动
|
缓存 监控 NoSQL
618大促来袭,浅谈如何做好大促备战
2021年天猫双十一落下帷幕,支撑数千亿交易的阿里中间件也全面升级到公有云架构。如何有效利用云产品做好我们的业务大促备战,这是一个大家都比较关心的问题。今天趁着618大促来袭前,谈一谈我们所积累的最佳实践。
618大促来袭,浅谈如何做好大促备战
|
缓存 监控 NoSQL
618 大促来袭,浅谈如何做好大促备战
如何有效利用云产品做好我们的业务大促备战,这是一个大家都比较关心的问题。今天趁着 618 大促来袭前,谈一谈我们所积累的最佳实践。
618 大促来袭,浅谈如何做好大促备战
|
人工智能 自然语言处理 供应链
618的亿级流量大考,京东云靠什么交上满分答卷?
要走近并深入认识京东云,刚刚过去的「618 大考」可能是最好的观察机会。
137 0
618的亿级流量大考,京东云靠什么交上满分答卷?
|
双11 iOS开发 智能硬件
2021双十一邀请大狂欢最强攻略,5重权益月入十万不是梦!
11.1-11.30,邀新佣金加码2%,最高可获36%返佣。
2021双十一邀请大狂欢最强攻略,5重权益月入十万不是梦!
|
弹性计算 搜索推荐 安全
2020年阿里云年中大促【福利】【选品】全攻略
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 2020年阿里云年中大促活动于6月1日正式上线啦! 活动时间为:2020年6月1日至2020年6月30日 主会场链接:https://www.aliyun.com/activity/618 这篇攻略旨在盘点本次大促的福利,并给大家整理了一份选品指南,方便大家快速、低成本上云。
3893 0
2020年阿里云年中大促【福利】【选品】全攻略