【阿里在线技术峰会】郭东白:基于大数据的全球电商系统性能优化

本文根据郭东白在首届阿里巴巴在线技术峰会上的分享整理而成。他首先介绍了AliExpress电商系统的理论基础,通过页面间跳出率的计算引出了全栈优化的思路。然后,他介绍了AliExpress平台的设计思路和性能优化过程。紧接着,他分享了AliExpress使用过的几个有效的优化策略:动态加速、静态化+ESI、元素合并请求、CDN调度优化等。最后,他用实例展示了性能优化带来的结果,并对架构设计的过程提出了几点思考和总结。

直播视频:点此进入

PDF下载:点此进入

以下为整理内容。


整个系统的理论基础

这张图代表流量分布和跳出率的关系。一个用户放弃使用一个网站或者APP的行为叫做跳出。上图中,横轴代表延迟区间,纵轴代表流量分布。绿色的曲线代表顾客来网站或者APP的流量分布,可以发现大部分流量分布在几百到一千毫秒,随着时间延迟的增加,跳出率变高。整个系统计算时,使用转化率公式:转化率=1-跳出率。在发生性能故障的时候,比如有少部分机器出现延迟大大增加的情况,我们会发现高速性能的流量会变少,有很长延时的流量会增加,跳去率也很快地爬升上去。这个过程表明,如果延迟越大,那么延迟跳出率会变得越来越高,即转化率变得越来越低。我们可以把虚线看作是优化前,实现看作是优化后,其中的部分就是优化得到的新的转化率。

我们做更深一步的讨论。上图中,红色代表转化率,蓝色代表性能区间的分布。假设我们把性能从a秒压缩到3秒时,转化率的回报是图中绿色的部分。这些回报是怎么得到的?随着延迟越大,转化率越低,由于回报是单调减的函数,所以压缩之后得到的回报就是图中绿色的部分。如果我们知道压缩的时间,我们就可以预测出单个页面上得到的回报,这个回报称为Performance Loss。

接下来,我们进行从A页面到B页面的理论跳出率的计算。如上图所示,A是一个页面,0、1、2、3是它的前序页面,end代表跳出页面。我们发现,出口的跳出率=经过补偿后的所有跳出率-自然跳出率。其中,自然跳出率是指自己因为对商品内容不满意、评价不满意而产生的自然跳出。

在此基础上,我们可以将其推广到所有页面。一个大的网站可能有数百个页面,比如上图中的两条链路:搜索——详情——订单;商铺——商铺详情——订单。在这种关系下,如果我们把每条链路的跳出率算出来,其实我们就得到了每条链路的理论最大流量,这样我们就知道了最终页面的最大流量。这其实就是一个全栈性能损耗的过程,我们可以知道每个细小的过程对全局的贡献。这对于优化方案的制定非常重要。在做优化方案的时候,我们可以选择一个页面做尝试,准确度量一个页面的回报,这样就可以明确知道一种优化方案对整个系统的贡献,即本次优化对电商系统的订单回报量。

平台设计

平台是独立于业务领域的。针对不同的业务领域,有不同的优化方案,显示在图中左下部分。平台的功能是:把当前的性能变得可视化;实时度量目前的性能水平;对全链路做一个性能的监控;所有的领域都可以接到这个平台上;做一个全量的度量。平台其实就是将性能优化的回报变成一个可度量的、非常容易看到的结果。在整个试验的过程中,数据是不断积累的,数据会带来准确的度量结果,度量结果则决定是否将优化在全栈进行推广。

性能优化过程

首先,应该有很多业务模块来收集用户的行为数据(请求时间、建联时间等),然后数据经过采集系统进行处理。处理完的数据有两种分析方式:离线分析、实时分析,区别在于离线的处理量比较大一些。分析的结果都会存在一个业务数据库中,最终会送到cache layer中做追溯和同比。后端会支持很多不同的应用场景,比如报警、监控、报表。

优化实施

其实,世界上在DNS层、网络层、CDN层、业内沉淀有很多优化方案。这些优化方案什么最有效呢?下面列举几个使用过的有效的优化方案:

动态加速

优化前,用户的动态请求都在源站,请求链路是:用户——运营商——源站。全世界都要去源站拿数据,这样的请求链路会非常长,过程相当耗时。

优化后,尽量把动态数据推到边缘节点,这些边缘节点不需要去源站进行请求,只需直接在边缘节点做请求。另外一个优化:请求既可以是同步的,也可以是异步的,可以同时并行请求多个页面内的元素。整体的动态回源的过程是对内容的动态加速。另外一个动态加速的做法是,如果需要回源的话,把这个回源网络的最优化路径交给CDN来决定,CDN会帮助找到目前一条最优的链路来回源。动态加速其实是一系列的优化方案,比如包括内容压缩等。整个过程中也有不少的技术挑战:电商需要知道用户的真实IP;源站防止攻击要做请求拦截等等。

静态化+ESI

用户把内容放到边缘节点上,到了机房内其实也是做一个缓存:如果是动态内容则直接回源到数据库,如果是静态的不命中的内容则通过业务逻辑回源到数据库。请求链路一般是“读链路”,“写链路”会变更db,db被变更消息的消费者消费之后通过业务逻辑更新存入缓存,是缓存内的信息总是最新的。这样的过程相当于用户如果能直接hit到边缘节点就返回(大多数最优的情况),不是最优的情况会hit到缓存层再返回。

元素请求合并

一个页面中会有很多的子元素,如果单独去请求,则每个请求都是回源的调用,那么每个请求都会占用很多时间(包括TCP建联时间等)。元素请求合并就是指把所有的请求合并成一个,统一提供到服务方,然后服务端再将这些请求分发,然后再统一合并再返回。

CDN调度优化

AliExpress在全球的各个国家都有相当多的用户,在巴西是第二大的电商网站,巴西用户可以请求美国的边缘节点,也可以请求巴西的边缘节点。经过测试,巴西用户请求巴西的边缘节点的相对耗时要少一些,可以认为是4个单位,请求美国节点耗时5个单位,但是请求地理位置离巴西近的阿根廷节点需要耗时7个节点。所以得出结论:不能单纯从地理位置来估计请求节点的耗时,以此为基础可以优化CDN调度。

业务结果

上述理论的分析,平台的搭建,业务的优化,带来了:整套系统的分析能力提升;过去的优化直接为整个网站带来5.07%的订单;性能损耗明显下降;购买力增强。

架构思考总结

  • 这套系统给大家带来的最大价值是:在做这套架构设计的过程中是不是能有新的创新?通过这个创新能否带来业务价值?
  • 把技术变民主,每个有想法的人都可以去尝试优化,每个人都可以做贡献。
  • 所有做的事情能不能量化?能不能做比较?不同的人对性能优化的贡献都应该能准确度量,这样可以把一个人的力量放大到整个团队的力量。
  • 怎么一步一步赢得这个团队的信任?
时间: 2024-08-01 09:51:34

【阿里在线技术峰会】郭东白:基于大数据的全球电商系统性能优化的相关文章

阿里资深技术总监:基于大数据的全球电商系统性能优化

本文首先介绍AliExpress电商系统的理论基础,通过页面间跳出率的计算引出全栈优化的思路.然后,介绍AliExpress平台的设计思路和性能优化过程,以及AliExpress使用过的几个有效的优化策略:动态加速.静态化+ESI.元素合并请求.CDN调度优化等.最后,用实例展示了性能优化带来的结果,并对架构设计的过程提出了几点思考和总结. 1整个系统的理论基础 这张图代表流量分布和跳出率的关系.一个用户放弃使用一个网站或者APP的行为叫做跳出.上图中,横轴代表延迟区间,纵轴代表流量分布.绿色的

资料来啦(含视频+PDF)!首届阿里巴巴在线技术峰会,9位大V演讲整理!

感谢参加阿里巴巴在线技术峰会.7月19日的3场专家分享:Blink.Docker.电商互动:7月20日的云数据库十大经典案例.基于Java容器的多应用部署.基于大数据的全球电商系统架构:7月21日的AliSQL性能优化与功能突破的演进之路.企业大数据平台仓库架构建设思路.阿里聚安全在互联网业务中的创新实践,9位专家的PDF和文章均已发布,欢迎分享.到今天,视频也已经出炉! 资料链接如下,欢迎分享. 大会专题链接:https://yq.aliyun.com/activity/97 7月19日 Bl

锋芒初露 大数据如何驱动电商大机遇?

今日之电商诸侯争霸,可谓火药味甚浓,更推进着产业前进步伐.古语有云:长袖善舞,多钱善贾,意指有所依靠,事情容易成功.随着大数据所爆发出的巨大潜力,在如今的互联网经济时代,玩电商的"有才有财"企业,正在用大数据思维与技术影响着企业业务决策和商业推广思路.可以预测的是,互联网平台大数据分析,正如利剑出鞘.铠甲上身,必将在未来为电商企业精准营销带来融合性影响. 数据支撑营销 电商战线新阵法 在电商各类火爆的购物节背后,我们可否看到基于互联网的电商企业,呈几何数增长的庞大数据量?面对数据量的快

【阿里在线技术峰会】李金波:企业大数据平台仓库架构建设思路

本文根据阿里云高级技术专家李金波在首届阿里巴巴在线峰会的<企业大数据平台仓库架构建设思路>的分享整理而成.随着互联网规模不断的扩大,数据也在爆炸式地增长,各种结构化.半结构化.非结构化数据的产生,越来越多的企业开始在大数据平台下进行数据处理.分享中,李金波主要从总体思路.模型设计.数加架构.数据治理四个方面介绍了如何利用大数据平台的特性,构建更贴合大数据应用的数据仓库. 直播视频: (点击图片查看视频) 幻灯片下载:点此进入 以下为整理内容. 总体思路 随着互联网规模不断的扩大,数据也在爆炸式

【阿里在线技术峰会】郑恩阳:电商互动营销的技术实现

本文根据天猫技术部互动平台郑恩阳在首届阿里巴巴在线技术峰会上的分享整理而成.他主要通过全民疯坎和赛车竞速赢汽车案例分享了电商互动营销的整体架构.相应的技术.利用Tengine来分担服务器压力.防作弊策略实现.传统授权方法的优化以及利用Hilo引擎进行多渲染等. 直播视频:点此进入 PDF下载:点此进入 以下为整理内容. 互动营销案例 边看边买的互动 在做这个互动的时候,我们希望能够在顾客的购物路径上做一些改变和创新.当用户看到这个视频的时候,如果用户有需求,能够直接点击视频上的锚点,直接进行购物

【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路

本文根据阿里高级数据库专家何登成在首届阿里巴巴在线技术峰会上的分享整理而成.他主要介绍了AliSQL相对于MySQL进行的性能优化.通过大连接.高并发下的数据库稳定性保障和库存热点更新两个问题的解决方案介绍了高低水位限流和线程池的使用方法以及库存热点优化的三步改进,最后提出了AliSQL的完整生态体系. 直播视频:点此进入 PDF下载:点此进入 以下为整理内容. 背景:当使用官方的MySQL时,发现在我们的体量下会面临比较大的挑战,所以,2011年我们在MySQL的基础上做了一些功能增强和bug

背靠中台实现基于大数据驱动的国际化电商架构(一)

0.让大数据应用无处不在 计算机的伟大之处就是为人类带来了效率.而今天随着大数据技术的日益成熟,也促进了计算机技术的发展.我们可以利用大数据技术实现更加智能的计算,一方面使得效率极大进步:另一方面也智能化也让计算机的应用领域变宽,解决以前无法解决的问题.这两方面最终升化了计算机的计算效率. 如今阿里集团的大数据技术积累以及计算资源的极大丰富也为我们实现更多的大数据应用提供可能性. 天时地利,让我们充分学习,运用大数据技术,赋能各类场景. 本文目的是提供大数据应用在架构领域的一个例子,希望有用.

大数据时代,电商企业何去何从

在互联网和移动互联网时代发展起来以后,数据的规模和丰富度迅速增长,等达到一定程度以后,便有人提出了大数据的概念,大数据就是需要跨视角.跨媒介.跨行业的海量数据,也可以理解为数据的收集方法,那么,当电商们拥有大数据的时候,又会是怎样的状况呢? 谁拥有大数据? 拥有大数据的前提是数据的稳定性和丰富性,建立在这一前提下,绝对是淘宝.百度.腾讯这几家自有数据源的公司,但艾瑞咨询技术副总裁郝欣诚在同意这一说法的同时又认为一些淘宝店铺不能称为有稳定丰富数据源的公司. 因为一些淘宝店铺的眼光往往停留在自己本身

【阿里在线技术峰会】蒋晓伟:Blink计算引擎

本文根据阿里资深搜索专家蒋晓伟在首届阿里巴巴在线峰会上的分享整理而成. 此次分享的重点是Blink计算引擎,它是阿里巴巴搜索的流计算和批处理引擎.相比于Flink,在上层,Blink具有批和流一体化的完备Table API,使得其能够支撑各类业务需求:在底层,Blink重新开发了兼容Flink以及生态的Runtime,实现了流处理和批处理完美的统一. 直播视频: (点击图片查看视频) 幻灯片下载:点此进入 以下为整理内容. 搜索文档的创建和更新 要建立一个搜索系统,首先需要创建搜索文档,具体的创