弹性计算架构、容量性能数据库优化,让双11有惊无险

全面赋能,双11电商解决方案上新,全新75折:https://www.aliyun.com/solution/ecommerce/act/huhang1111


9月23日由阿里云主办的第六期《电商大咖直播:备战双11最佳实践》线上分享圆满结束,来自袋鼠云的联合创始人CTO宁海元分享了天猫双11的技术保障,阿里云弹性计算的架构,袋鼠云进行容量规划、性能压测、数据库优化的经验。

本次视频直播的整理文章整理完毕,如下内容。


袋鼠云简介

袋鼠云由多名前阿里云资深技术专家创立,核心员工来自阿里巴巴、神州数码、数梦工场等,作为阿里云重要的合作伙伴,专注于为企业客户提供云计算和大数据技术服务及产品。袋鼠云是阿里云数加平台首个金牌合作伙伴,也是阿里云认证的区域服务商和云市场供应商。

天猫:“双十一”的技术保障

弹性计算架构、容量性能数据库优化,让双11有惊无险

天猫的技术保障分为三层:后勤保障、组织保障、系统保障,每个环节都是非常重要的。

弹性计算架构、容量性能数据库优化,让双11有惊无险

天猫的技术也经历了不断的演进。最初面对的最大问题是流量问题,CDN成为了第一个瓶颈,进行了CDN扩容。之后,逐渐经历了全链路压测、单元化、同城双活、异地多活、弹性混合云。在技术上,越来越游刃有余的支撑天猫的大促,同时也会把这些沉淀下来的技术变成产品给阿里云的客户提供服务。

阿里云:弹性计算与大促

弹性计算架构、容量性能数据库优化,让双11有惊无险

弹性是云计算的最大优势,大促是最典型的弹性场景。从官网上看,阿里云包括四大产品线:云计算基础产品线、大数据产品线、云安全产品线、运维和虚拟组件产品线。经常用到的产品如上图所示,比较常见的有负载均衡、云服务器、云数据库等。比较少见的,比如性能测试PTS在做大促的时候是一个非常重要的工具,因为它可以通过分布式的压测工具去以最大的能力压测我们能达到的最大压力。在安全方面,DDos高防IP可以防几十G以上的流量的DDos攻击。当一台数据库达到上限的时候,分布式数据库DRDS可以使压力线性扩展。

弹性计算架构、容量性能数据库优化,让双11有惊无险

上图是阿里云弹性系统的一个典型架构。从用户的角度,他会把流量打到负载均衡上,通过DDos高防IP使得只有正常的流量可以进入负载均衡。在负载均衡后面后一个可以弹性伸缩的ECS应用服务器,其中要注意的一点是所有数据要设置成无状态。云数据库Redis版可以缓存一些不需要更新的数据,云数据库的RDS可以即开即用,如果压力过大时可以改为分布式数据库DRDS,同时可以做一些读写分离。

弹性计算架构、容量性能数据库优化,让双11有惊无险

安全也是阿里云一个非常重要的能力。高防IP可以提供20G以上防护带宽,防DDos攻击、cc攻击、Web攻击,防网页篡改。

袋鼠云:大促活动护航服务

弹性计算架构、容量性能数据库优化,让双11有惊无险

前期架构改造时会做一些架构咨询。从早期的容量规划到性能压测、应用优化、数据库优化,再到扩容、应急预案准备、大促当天在线应急保障。

容量规划

弹性计算架构、容量性能数据库优化,让双11有惊无险

我们首先要看的是整个的业务目标,业务目标里面是否有一些特殊的场景,比如秒杀的场景。有了业务的目标之后,我们就能定出技术目标,比如QPS和TPS的目标,秒杀应该用什么样的方案,在线应该重点关注哪几个场景。

性能压测

弹性计算架构、容量性能数据库优化,让双11有惊无险

确定了容量规划的指标之后,我们就可以做压测了。阿里云PTS是全球领先的SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。经过几次的压测之后,就会对上线之后的性能表现有了预估。

数据库优化

弹性计算架构、容量性能数据库优化,让双11有惊无险

优化思路:数据库里80%的场景可能因为SQL语句写的不好,比如索引没有用上,表结构存在问题,所以应该对SQL进行优化。RDS是存在配置问题,所以应该对RDS进行配置升级。如果有数据分析的需求,最好在当天开一个只读识别,一个RDS可以开5个只读识别,进行读写分离保证主库的交易更加顺畅。垂直拆分和水平拆分在大促之前通过压力测试决定是否去做。

总结来说,大促会遇到以下几个常见问题:

  • 最典型的是容量预估不足,系统直接崩掉;
  • 临时出问题,临时改代码,结果出大问题;
  • 秒杀导致数据库挂,系统挂;
  • 缺乏应急方案,缺乏应急流程和具体的执行步骤;
  • 缺监控平台,缺实时的应用/数据库指标监控,不知道系统大促的整体情况;
  • 数据库是关键点,出问题需要快速决策和执行。

应急预案实例

弹性计算架构、容量性能数据库优化,让双11有惊无险

在双11的的前一个月,需要把面对各种情况的预案写下来,发给相关的责任人。

客户案例

某社区电商大促

弹性计算架构、容量性能数据库优化,让双11有惊无险

提前一周开始做紧张的压测,效果不错。

7:00:当天大促的活动慢慢开始,流量开始上涨。

9:00:第一波秒杀开始,出现大量connection timeout,连接数全部爆满,客服接到大量投诉电话,投诉秒杀是个骗局。系统表现上,应用压力非常高,数据库大量锁等待,数据库跑不动。

9:30:应用扩容,数据库优化。

10:00:第二波秒杀继续,数据库还是大量的锁等待,系统挂掉。

持续的修改代码,数据库优化,商品调整。。。

13:00:秒杀稳住了,系统平稳。

该案例中主要做了数据库优化、SQL的优化,扩容。

某跨境电商大促

2016年3月大促,蜂拥而来的流量造成系统宕机,每秒订单量到达峰值。袋鼠云进行了如下优化:云架构优化,帮助客户减少不必要的云资源支出,节省了大量成本;数据库SQL与索引优化,解决了宕机的根本性问题,轻松应对大促;重新设计的可扩展架构,确保在未来的业务增长过程中,技术不再成为瓶颈;数据库专家包年服务,7*24监控数据库性能状况,及时响应和优化,大大降低了客户的DBA运维成本,又确保了数据库的稳定。


相关系列文章: