腾讯的广告数据平台架构

个人简介 李锐,2008年毕业于北京大学电子系,然后进入微软STC工作,参与开发了分布式存储系统KirinStore,以及其上的分布式计算引擎Kida。2011年加入腾讯从事后台分布式文件系统xfs的开发,对分布式系统的认识和理解比较深。2012年开始做广告后台播放系统的开发,目前致力于在Hadoop上面构建广告日志数据处理平台。

全球架构师峰会(International Architect Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。

   

1. 各位infoQ的网友大家好,我们现在是在ArchSummit的北京2014大会的现场,我们邀请到来自腾讯的李锐。李锐你好,跟我们的网友打个招呼吧。

李锐:大家好,我叫李锐,来自于腾讯的效果广告平台部,简称就是广点通,我们是一个做广告的平台。主要是为了广告组做效果的优化,并且为腾讯里面各种各样丰富的流量,与他们需要推广的商品,做一个资源最优化配置的方案。

   

2. 可不可以跟我们网友介绍一下你的工作经历和目前工作的主要内容?

李锐:我毕业之后第一份工作应该是在微软。在那边是做bing的基础架构的储存方面的事情。当时是做分布式的一个KV系统,是为了线上的搜索构建索引,提供这样的一个支持。这系统应该现在还在线上运行着,后来腾讯这边也在做搜索了,就跳到腾讯这边来,然后也是做下层的基础架构,做了一个分布式系统架构台风,做了其中的一个分布式文件系统,叫XFS,模仿谷歌GFS做的一个解决方案。因为谷歌里面搜索的结构在不停的演化,为了跟紧它演化的步伐,就做了一个类似于GFS和BigTable的以及上面的这样的计算引擎的一个系统。后来换了一下方向,改到了广告平台部,做了一段时间后端的服务,广告的解锁服务。现在是在做广告的后台的大数据处理,正好把以前在大数据平台方面的知识运用上,现在就是在构建这种广告的数据平台。

   

3. 与搜索的基础架构比广告的平台实时性反馈要求更高,这部分你们是怎么做的?

李锐:对,广告这一点,它优化之后是直接跟钱有关系的,所以这方面的要求,会对可靠性稳定性以及实时性要求更加高。这部分的话我们的平台,最开始的是通过MapReduce或者是hive或者pig来进行离线计算,一般是以天或者小时为单位,但这样是远远不够的。后来我们基本就架构在storm以及spark上面。基本上我们的模型训练是用spark这样的方式,而报表的统计是用storm来进行。spark算出来的数据,还要依靠过后一段时间的MapReduce的计算去做离线覆盖,就是这样一个解决方案。

   

4. 谈谈你们整个广告平台演进的过程吧,包括未来你们打算做那些优化和功能。

李锐:如果说到下一步的话,就要说到现在可能还存在的问题。在storm的话,是没有保证transaction和数据储存的系统,数据是很有可能丢失的,所以必然需要离线的计算再来做覆盖和验证。现在用像spark stream这样的mini-batch方式来做统计是能够更加有效保证数据存储的,现在正在考虑这种方式。并且报表的储存以及模型的训练的话也可以在HBase上进行。当在HBase上把的新的问题解决得比较好了之后,就可以来用HBase去实现这样的方式,尽可能来一条就处理一条,或者尽可能少的出现延迟。另外一个目标就是数据一定要正确,对于关键的数据不能重复,也不能丢掉,必须要保证transaction的机制,就是有extensive once的这样的语义保证。

   

5. 这次在架构师峰会上,你分享的这个话题也正好是跟HBase密切相关的,能不能介绍一下这个议题的情况?

李锐:我要分享的话题是关于我们要去收集各种各样的数据拿来给后端的storm或者spark这些作为这些模型训练的事情。这些数据是有要求信息的完整性的,而信息的传输在广告的系统里面是一个比较困难的事情,我们的解决方案是做了一个数据流的join,就是stream join这样的方式。关于我们为什么要选用HBase来做这件事情,以及做这件事情的时候具体的解决方案,等一会我会做更加详细的介绍。

   

6. 能不能介绍一下,在广告平台、广告主、用户三方上,你们是怎么平衡三方的利益,让广告平台能够不断地壮大,良性地循环?

李锐:这个问题问的很好,其实我们整个广告平台的话不仅仅是赚广告费这样一个目标,我们其实是作为腾讯的生态链中的一环。腾讯有很多各种各样的流量,比如说像QQ,像微信,像QQ空间,它们可以带动其他的新产品,做一些推广。比如说游戏,或者电商,可以做这样的推广。那么怎么在做这样一个推广的过程中让资源的配置最大化,这是我们广告平台所要考虑的。因此我们的目的不仅仅只是为了我这边尽可能的挣钱最多,而是让大家都能够得到好处。比如说我们的广告组,客户肯定会关心广告效果,尤其是客户在腾讯的开放平台上面投放一个很有价值的广告,但时间比较少,那么我们会针对这样的一个广告,着重效果的优化,而使他能够更加精准地定位到目标用户,在用户不管是下载还是激活,还是付费的情况下,比例的转换能够达到很好。在我们的开放平台,数据的回收方面是比较方便的,这样就解决了很大一部分广告所面临的问题,对于这样的效果数据,其他平台会难以追踪,而我们在这一点上就很方便,这要感谢腾讯在整个业界建立了这么多的同盟。同样我们对于流量方以及用户方的利益也是能够保证得很好。对一些不适用的广告,我们会有很强制的措施,比如说不能向18岁以下的用户推广酒类,类似这种是我们对流量方以及用户方的保护。

InfoQ:谢谢李锐,谢谢你接受我们的采访,也祝你待会的演讲能够顺利成功,谢谢。

你可能感兴趣的:(腾讯的广告数据平台架构)