专访阿里专家强琦:揭秘阿里双11高并发负载背后的核心技术
大家好,我是主持人皮皮,欢迎做客IT名人堂栏目。今年的淘宝双11交易额达到了惊人的571亿,特别在零点以后,支撑每秒7万笔的瞬时订单,相比于去年花6个小时完成100亿的战绩,今年只用了38分钟,我相信这是一个世界纪录。这疯狂的数字背后,无疑马云乐开了花,更让我们对阿里的技术团队佩服得五体投地,双11的实时大屏用到了哪种新技术?阿里是如何做到海量数据的高并发负载?在大数据、云计算领域,到底哪些核心产品和技术为阿里双十一发挥了保驾护航的作用呢?第112期名人堂我们重邀阿里专家强琦(社区ID:lamport_qi)坐镇,为我们揭秘双11背后的技术故事。
皮皮(Q1):您好!非常感谢您参与我们IT名人堂的采访,请简单介绍下自己。
和仲(A1):我叫强琦。花名和仲。之前的研究方向是机器学习基础理论,毕业后一直从事搜索技术的研发,08年进入阿里后也一直在搜索和广告技术领域,之后来到阿里巴巴集团数据平台事业部致力于打造大数据的基础设施。对机器学习,分布式计算,搜索广告技术都有浓厚的兴趣。希望为阿里的大数据基础设施建设贡献自己的力量,见证阿里大数据改变世界的那一天,有机会让全球用户分享与共建阿里数据以及阿里数据基础设施。
皮皮(Q2):阿里刚上市不久,今年的淘宝双11交易额达到了惊人的571亿,可喜可贺。特别在零点以后,支撑每秒7万笔的瞬时订单,我相信这是一个世界纪录。那在这些光鲜数据的背后,其实也是对淘宝数据库的极大考验。请问从技术上,阿里是如何做到承受如此庞大的数据库并发负载?
和仲(A2):总体而言,对阿里而言,双十一面临着两方面压力,一个是对数据库的压力,这部分压力大家相对比较清楚。另一个就是对数据处理平台的挑战,这块大家不是很清楚。双11不仅会出现大量的瞬时压力,还会伴随着大量的数据倾斜,这对分布式系统来说挑战很大。对于实时计算来说挑战更大,一方面因为它对用户的计算承诺是秒级别,一旦出现问题和延时会马上表现出来,这样留给系统调控的空间就非常小。大家都知道,分布式计算任务的速度受限于慢的结点,而大量的数据倾斜不仅会拖慢任务的时效性,严重的情况下甚至会导致结点超时,在带宽吃紧的情况下可以引发系统性雪崩。那我们采取了哪些应急方案呢?一方面我们通过任务改写来尽量平摊数据倾斜对计算结点的压力;其二,系统通过主动申请延时加长的方法,避免“误伤”超时;后通过计算旁路的方法来减少流量的影响。其实,分布式计算除了常规的扩展性,failover等技术处理之外,突发热点,长尾和计算倾斜都是非常大的挑战。另外,我们大家之前讲到更多是功能层面,但其实业务数据质量方面也是生死攸关的问题,阿里有丰富经验的数据质量团队,包括在离线数据质量,实时数据质量等方面都有丰富的沉淀与产出。
皮皮(Q3):双十一阿里38分钟交易额破百亿,近半数为手机支付,阿里就已经开始了客户端容器移动化的改造,逐步完成从集中式研发到大规模并行开发、灵活集成模式的转换,能不能和我们分享下阿里的双十一移动端在大数据、云计算领域都用到了哪些核心的产品和技术?
和仲(A3):其实,无论是pc端还是移动端,对后台而言,在技术的要求上基本类似。如果要说移动端对数据处理有哪些特殊的影响的话,那么实时在线的特性肯定会使得数据量激增,从目前的情况来看,我们移动端产生的数据已经远超PC端了;由于移动端App同时存在多版本的情况,这也使得数据处理在兼容多版本方面需要做很多考虑;同时移动端的欺诈检测,反作弊也有自己的特点。移动端基本上会与PC端共享云计算和大数据的核心技术,但与此同时会有一些独特的技术和产品体系。
皮皮(Q4):据说天猫、淘宝、支付宝的大数据处理,都是基于阿里云计算的大数据处理平台ODPS完成,为天猫双十一的商品个性化推荐提供了技术支持。而谈到阿里云ODPS,有这么一组数字,ODPS可在6小时内处理100PB数据,相当于1亿部高清电影。能否从ODPS的架构角度,结合阿里双十一为我们谈谈它的具体应用?
和仲(A4):ODPS现在基本上已经统一了全阿里的数据处理以及应用场景。从传统的数据仓库、BI、数据应用、数据挖掘乃至机器学习等都在基于ODPS。另外,在实时计算方面也不断涌现出了新的计算体系,包括Galaxy和Ads等,其应用也在不断加强。集群规模现在也在不断扩大,其处理能力每秒也突破千亿级别。比如大家比较熟悉的双11大屏,这些指标是能够影响市场的,容不得半点数据问题和延时。我们会考虑到数据链路的所有环节,必须做到完全的容错和容灾。有些计算指标是多流join,这对性能和容错挑战是非常大的。大家看到大屏幕上数字不断跳跃,其背后是大量的资源和技术智力的积累。再比如ads,它的创新技术可以使得原来分析数百亿甚至数千亿数据的时间从小时,分钟直接到秒,毫秒。这块已经对外开放使用,欢迎大家试用。
皮皮(Q5):此次双十一备战,阿里可谓是卯足了劲。阿里推出的实时数据计算平台Galaxy据说目前每秒可运算数据超过500万条,那它究竟是如何做到的呢?在双十一中这款计算平台究竟发挥了哪些作用?
和仲(A5):Galaxy是一个增量计算平台,它建立了一个通用的增量计算框架(MapReduceMerge,后简称MRM),流计算只是一种增量的计算形式,在此之上构建了算子层和sql层,这就使得业务能够快速开发实时任务。值得一提的是,增量计算和批量计算根本的区别在于它是有状态的计算,那么问题来了!
有状态计算如果引入全局强一致存储,会带来极大的性能问题。Galaxy-MRM引入内存snapshot来解决性能问题,同时利用checkpoint来保证容错的问题。其实,实时计算复杂的还是在处理多流join的问题,当在非常多key来做join并且出现数据倾斜的情况下,会对性能产生非常大的挑战。这就需要引入前面所述的一些技术来避免性能和雪崩。有趣的是在增量计算框架下实现的机器学习和MPP会具备实时的交互式的体验,这一点是spark也不具备的本质能力。除了双11所有媒体看到的实时大屏之外,内部运营,业务所涉及到的实时计算指标有400多个job。这些job每秒中都在不断更新新的数据计算。
相关文章