手机站 广告联系

十五人行新闻网—梳理天下事

彭冬:微博商业基础大数据平台(D+)的架构演进

来源: 作者: 人气: 发布时间:2017-11-28
摘要:热点事件经常出现在微博上面,也体现了微博非常强的社交属性及其传播特性,热门事件发生时,用户活跃度剧增,沉睡的用户也会被唤醒,流量会在短时间内出现成倍的增长,会对我们整个系统带来极大的挑战。
日前我们采访了微博广告技术专家彭冬,以下为正文:

彭冬,微博广告技术专家,目前主要带领基础架构团队,负责商业基础大数据平台(D+)及数据可视化平台(Hubble)、智能运维体系等广告基础设施建设,关注于大数据、人工智能、智能运维等方向。

问:请向大家介绍一下自己你和目前所从事的工作,以及关注哪些技术领域?

彭冬:我2011年加入微博广告团队,先后负责了品牌广告和竞价粉丝通广告等多个微博商业化产品的架构设计和核心功能开发。目前主要带领基础架构团队,负责商业基础大数据平台(D+)、数据可视化平台(Hubble)、智能运维体系等广告基础设施建设,关注于大数据、人工智能、智能运维等方向。

问:最近几个月以来,微博热点事件出现一些新的特点,一方面热点更频繁,吃瓜群众络绎不绝,另一方面影响的业务范围越来越广。同时我们也知道,微博也是的社交场景也极其复杂,随着数据量日益增长的情况下,微博的大数据平台正面临着怎样的技术挑战?

彭冬:热点事件经常出现在微博上面,也体现了微博非常强的社交属性及其传播特性,热门事件发生时,用户活跃度剧增,沉睡的用户也会被唤醒,流量会在短时间内出现成倍的增长,会对我们整个系统带来极大的挑战。对于我们大数据平台而言,合乐888www.69zw.la/jieshaoinfo/20/20470.html,数据存储部分主要是数据规模的突增以及网络IO的突增对集群的考验,计算部分尤其是实时计算部分需要更多的资源,此时我们通常会通过一定智能调度策略优先保证核心计算资源。从数据分析层面,因为主要使用离线计算,对实时性要求不高,可以适当避开高峰对资源的争抢。

问:目前微博的商业基础大数据平台(D+)的架构是怎样的?

彭冬:这里也简单讲一下微博商业基础大数据平台(D+)的定位和设计目标。微博从2011年开始进行商业化尝试,逐渐形成了非常完善的广告产品生态,如果说商业化第一阶段主要以新产品形态的开拓为目标的话,微博商业化的第二个阶段应该是商业产品的精细化。精细化尤其是依托大数据平台来构建商业数据分析的上层决策会显得至关重要。D+定位于建立商业化数据(与商业化有关的一切数据)的完整生态,他包含数据采集、存储、数据仓库和数据建模、计算(离线和实时)、数据可视化和数据APIs平台的整个体系。其设计目标是作为最基础最底层的基础平台,支撑任何业务方对商业数据的分析需求。D+的架构技术栈如下图所示。

 

图片描述

 

图1 D+整体架构技术栈

简单来说,D+分为数据层、计算层、中间层和应用层。D+通过APIs可以与上层更多的应用进行组合,比如监控系统和实验平台等。

问:可否简单分享D+的架构演进过程?

彭冬: D+经历了大致三个阶段的发展:

0.1版本 (2011-2015)

这个版本主要是将各种异构数据进行整合与搜集,通过scribe搜集所有的广告业务数据、日志数据到数据中心,为监控平台提供了数据分析能力,同时建立了简单的数据报表功能。

1.0版本(2016-2017)

我们发现scribe作为数据搜集工具经常会有严重的日志堆积问题,在1.0的版本我们引入了ELK套件,我们对filebeat进行了二次开发,同时发布了微博广告版本的日志采集工具farmer,另一方面,我们将scribe替换成了Kafka,引入了多种数据聚合与关联技术。对于时序数据我们引入了Druid作为引擎,为监控平台、实验平台、查询引擎提供实时的数据存取架构。同时,我们对日志搜索这块使用了ES,对全量数据构建索引。广告主报表引擎则基于OLS(微博内部实时流计算引擎)来构建。

2.0版本(2017-)

在2.0版本中,我们对D+做了重新定位,D+作为底层基础数据平台,为各个业务方提供数据存取、数据分析、数据挖掘等基础数据支撑。我们构建了分层的数据仓库系统,建立了基于业务需求的数据集市。同时在实时计算部分引入了flink。为了提供高效的数据分析能力,我们构建了OLAP平台,在D+上支持ad-hoc查询。

问:同时,微博微博广告系统Hubble也是具有着极其强大的,是一个秒级大规模分布式智能监控平台,Hubble在目前的核心功能是什么?解决了哪些核心问题?

彭冬:我们知道Hubble是比较著名的太空望远镜,微博广告Hubble平台就如同这颗先进的望远镜能窥探浩瀚宇宙(大数据)的价值。我们是希望Hubble能够作为一个开发的数据可视化平台,为商业数据分析、数据计算等提供可视化的功能。Hubble 1.0最初是构建在从数据采集到实时处理再到可视化的一个智能监控平台,随着Hubble的不断发展,Hubble 2.0目前已经超越了当时仅仅支撑了智能监控平台的定位,目前专注于数据可视化,而底层数据部分托管于D+平台。我们智能监控平台也在不断发展演进,不仅在大规模时序数据实时监控上,也在动态阈值、故障预测、异常点监测等智能运维(AIOps)方向有一定的实践和尝试。

问:它的整体架构是?

彭冬: Hubble 1.0(监控平台部分)底层计算部分的整体架构如图2所示

 

图片描述

 

图2 Hubble 1.0(监控平台部分)底层计算部分的整体架构图

问:不管是大数据平台(D+)还是Hubble,都有着哪些机器学习的应用?

彭冬:说到大数据,不可避免就要说到数据挖掘和用户画像。D+以其强大的数据平台工程体系,在存储上和计算上可以支撑广告的用户画像和数据挖掘的能力,当然我们也依赖于公司构建的集群基础设施如Spark、Tensorflow等。在AIOps上我们使用LSTM尝试使用动态阈值来进行监控报警。由于LSTM(长短时记忆网络,RNN变体)能很好抓住时间序列上下文可能存在的联系的特性,因此模型训练方面,我们选择了LSTM模型,Python中有不少包可以直接调用来构建LSTM模型,比如Keras,Tensorflow,Theano等,我们选用Keras作为本文模型定义与算法实现的机器学习框架,选择backend为TensorFlow,同时使用均方误差(mean squared error)作为误差的计算方式,并采用RMSprop算法作为权重参数的迭代更新方案。

 

图片描述

 

图3基于机器学习的趋势预测架构图

问:其实您做了非常多的架构工作,可否谈下您对架构的理解?

责任编辑:

十五人行新闻独家出品

新闻由机器选取每5分钟自动更新

手机:122222222222 邮箱:11223344@qq.com
地址:北京市河南岸国商大厦B-6-B