在“移动+大数据”的创业浪潮里,TalkingData 无疑是国内最引人关注的新锐企业之一。作为目前国内最大的独立第三方移动数据服务品牌,其产品及服务涵盖了移动应用数据统计、移动广告监测、移动游戏运营、公共数据查询、综合数据管理、数据咨询服务等多款极具针对性的产品及服务。InfoQ 以移动大数据团队架构为切入口,与 TalkingData CTO 肖文峰就近年来 TalkingData 移动大数据业务快速升级迭代中的技术更新和团队建设话题进行了交流,并围绕“移动,数据,价值”核心理念畅想了大数据应用的未来愿景。
InfoQ:请您就 TalkingData 的创业背景,和公司这几年的发展状况做一个简单介绍。
肖文峰:TalkingData 创建于 2011 年,它的核心团队来自于甲骨文、微软、IBM、BAT 还有 360,所以 TalkingData 的基因既有传统 IT 行业的严谨务实的风格,也有新型互联网公司的开放精神。TalkingData 在创立之初就赶上了移动互联网的浪潮,最开始是提供统计分析平台,2012 年研发了网络监测平台,从 2013 年开始,随着移动游戏的发展,TalkingData 提供了游戏运营分析平台。随后,TalkingData 决定不只做开发服务平台工具,而是面向数据提供更多的产品线,包括数据中心,移动观象台等数据产品。经过这几年的发展,TalkingData 已经提供了开发者服务平台、数据服务平台和数据商业化平台等产品,这三种平台集合成一个强大的数据生态系统。
InfoQ:移动大数据处理最近几年非常火爆,这方面的一些新的技术和应用点也是日新月异,TalkingData 平台是怎么看待和应用这些技术创新的?
肖文峰:TalkingData 是一个相对比较务实的团队,所以不会为了追新而盲目追求新技术。最开始做统计分析平台的时候,我们是用 Hadoop 加 Hive 的方式做离线分析,离线计算。有些用户因为需要一些实时的分析支持商业决策,所以我们就增加了实时计算的部分,同时支持实时计算和离线计算。这个和 Storm的作者 Nathan Marz 提出的 Lambda 架构非常类似。在 2013 年左右,移动数据量开始呈爆发性的增长,这时候平台的一些不足之处逐渐体现出来。以前用的 Hive 和 MR,随着数据量和数据复杂度和计算量指数级的增加,计算资源的消耗越来越多。以前 1 分钟出的结果后来就变得 1 小时才能出,以前 1 天出的结果可能最后就已经算不出来了。这时候我们必须要引入新技术去改变它,所以引入了 Spark 的架构,当时Spark是属于比较新的一个架构。
另外,我们在计算和算法方面也面临同样的挑战,以前我们用的是 ML-Learning 那个方式,但后来发现这个库对计算资源造成非常大的一个消耗,所以也对它进行了改进,把里面的一些算法重新改写,降低了迭代次数,把算法复杂度压了下来,数据计算结果才能很快出来。还有,我们之前用的是 Kestrel,但随着数据量的增长,它的平行扩展能力变得非常差,而且多消费者支持也不是特别灵活,这时候就引进 Kafka,当时 Kafka 也比较新的,也遇到和克服了很多坑,现在我们整个后台的数据中心都是架构在 Kafka 0.8.2 消息通道上面。
然后,在统计分析平台里面会大量的用到多维交叉计算。比如说我要知道三天之内小米手机本机用户在三天之内登陆过两次以上的数据有多少。这个时候就需要跨很多纬度的多维数据交叉计算。以前的交叉计算效率非常低,那我们必须引进 BitMap 的那种计算方式,自己写了计算引擎,指数级的改善了效率,相当于一百倍的提升。所以,TalkingData 是基于问题才考虑新的技术去解决它。这方面,其实对很多年轻人来说,他们也经常有误解,过分追求一门新工具或技术。这是非常错误的,大数据和新技术的关系是它必须基于特定的业务场景才有意义。
InfoQ:TalkingData 业务的发展变化是这么的快速,这种变化对团队架构有没有带来一些挑战和改变?
肖文峰:这个问题问的蛮好的。在公司整个发展过程中呢,研发团队架构确实经过受到业务的影响而产生的几个阶段的变化。最开始从 2011 到 2013 年,我们做得都是针对移动开发者和社区提供一些工具与平台,如项目统计分析,通用统计分析,像移动运营分析平台等。这些平台都是烟囱型的方式,以产品部门来垂直化运作。每一个产品线,它后面都跟随着一个垂直化的一个部门,从 BD 到产品,到研发部门,都是垂直性的比较全。对研发工程师来说,从前端JS,到Java逻辑,到后端的 Kafka 再到 Hadoop,到计算和运维人员,这有一套专门的人来配合。在前期做新业务的时候,它比较灵活,资源可以自由配置,很快就能出产品,能出效果,而且相对来说风险隔离在一个小的团队里面。但是,慢慢的随着公司发展,当 TalkingData 决定从以工具为核心转到以数据为核心这个变化过程中,我们发现各个产品线收集出来的数据都需要进行融合,所以这时候就专门开辟了一个团队叫数据中心,针对所有平台的数据进行统一规范化,统一的通道进来,然后统一清洗、加工和处理,然后放到格式统一的数据中心里边,就可以进行打标签和对用户分区。
随着我们数据加工处理能力的稳定提升,与传统行业结合的越来越多,量级在爆发式长,比如说广告行业有一个产品线,那接下来针对房地产、银行、保险公司、奢侈品行业、餐饮、汽车等,每个行业都要有相应的平台,而每个行业需求都不太一样。所以,TalkingData 团队急需要一个更加灵活的架构来应对这种挑战,相当于又把这些团队又重新打散,然后形成一些比如前端可视化团队,专门的运维团队,然后有统一的存储管理团队,还有计算,和数据挖掘团队。然后再把业务层,数据业务相关的东西薄薄的抽出来,每个业务单独的抽一个或者两个人去负责,其他的全部由公司统一来提供服务支持。基于现在的架构,未来我们依然是以数据为核心,但希望围绕 TalkingData 有更多的合作方,形成一种网状的结构,这个结构里的数据都可以自由流通,这个是我们对未来的一个期望。
InfoQ:TalkingData 大数据团队在打造团队文化和凝聚力这块,您可否做一些分享?
肖文峰:我个人的经历也比较复杂,之前在传统行业,在朗讯、甲骨文、微软都呆过,后来也自己创业,也在新型的互联网公司呆过,包括在 360 做无线安全方面的一些东西,包括清理大师和手机卫视的一些模块。在我看来,研发团队其实对不同公司和行业都是一样的,它都是为了提供交付服务而存在。具体到 TalkingData ,公司同时有传统行业的人,包括从甲骨文,IBM,微软过来的,也有新型的互联网公司,BAT,360等。这些人碰撞会发生什么样的问题?
其实有几点比较关键,第一个就是平等。TalkingData 职级非常扁平化,从上到下不会超过三级,所有员工都可参与月会知道整个公司的真实发展状况。不仅是公司级别的会议,也有研发团队的周会,对所有的员工敞开,大家在一个宽松的环境里可以提出各种置疑。因为 TalkingData 相信数据是平等的,数据和信息也必须能够在我们内部进行自由流通。甚至前一段时间一个刚入职的研发人员就对我提出一些疑问,这在我看来是非常好的!我对这个事情是比较自豪的,因为他只有感觉到平等,他才敢质疑。
第二点就是开放。TalkingData 觉得数据是开放的,我们公司的文化也具有非常强的开放性。内部鼓励各种分享,我们给大家提供各种“生育费”—— 学生教育费用。所有的人只要参与分享,那怕是一分钟,五分钟,我们都会给到相应的奖励。对外 TalkingData 也积极参加像 InfoQ 社区举办的交流活动,把自己的技术上的踩得一些坑,把它分享出来,避免更多的开发者遇到这样的问题。我们在产品上也要求必须具备很强的开放性,移动观象台就是基于开放数据的考虑而开发的产品,比如过去经常有人问说滴滴,或者快滴,他们的用户量,覆盖范围以及活跃度有什么不一样等。由于经常会遇到类似问题,TalkingData 就觉得需要把这些数据开放出来,给业界提供更多的一些参考,移动观象台就应运而生。它会把所有的应用排名,内部所有的相关数据公开出来,给业界提供一个比较公正,公平,公开的大数据环境。
第三就是聚焦。TalkingData 团队在产品研发过程中遇到很多次“诱惑”。比如,最开始做广告监测平台的时候,很多人就说,“TalkingData 接入了国内这么多家的 DSP 和 CSP,还有网盟,那为什么不去做广告业务?广告业务是非常大的一个行业,可以快速挣很多钱”。但我们当时就决定要以数据为核心的,我们对数据更有兴趣。虽然切入到某个行业,可能短期能挣钱,但是这跟团队初始目标和长期愿景是不相符的。我们还是决定基于大数据,把数据加工处理这件基础的事情给做好。类似的,TalkingData 做游戏分析平台以及银行业务数据平台的时候,也抵制住了做游戏上市公司和金融征信公司,去赚风口上快钱的诱惑,我们会非常的聚焦在自己的方向上面,这对我们团队建设也有很重要的影响。
InfoQ:TalkingData 大数据平台未来的进阶发展有哪些方向?你对这方面人才的需求有哪些考量?
肖文峰:TalkingData 是以数据为核心的,我们的企业愿景是,通过数据去改变企业做决定的方式,同时,要用数据去帮助人们了解周围的环境。所以对 TalkingData 来说呢,基础数据的加工处理是非常重要的一件事情。我觉得未来存在两个很重要的挑战也可以叫愿景。
第一,怎么更加丰富的去刻画人。比如现在手机本身就是一个传感器集合体,它可以搜集像湿度信息、温度信息、光感信息、声音信息,位置信息等,但还有很多信息我们现在都没有搜集或用到。就拿走路这个简单的事情来说,在不同的地方,不同的时段走路的场景是不一样的,你在公园走路可能是在健身,你在大街上走路可能是在上班的路上,你在会议室走路可能是在做演示。如果想做一个信息推送,那针对不同场景,推送的内容可能是不一样的。我们接下来想要做的一件事情就是更加精细化的去刻画人,更加实时和全面的刻画他当时的状态,把这个基础设施整理出来以后,就能够给开发者去使用。举个简单例子,一个桌面软件,在家和在公司它给你显示出来的应用和内容都是不一样的。
第二,TalkingData 有大量的数据资源和数据加工处理能力,那怎么把这些数据包装出来,能够让传统行业和新型的互联网企业,让合作伙伴能更加快速高效的利用这些数据是很重要的愿景。打个比方,我们把自己看作一个水库,水库的水源是来自于各个不同的合作方,各种不同的水源会聚到水库里面,TalkingData 会把这些水经过各种加工处理提供给各个行业去使用。比如对数据质量要求高的行业提供的是西藏银川5100,对普通行业来说,我们可以提供像娃哈哈,农夫山泉这种普通的水,也可以提供桶装水,生活用水。那这个过程中,需要解决很多技术问题,就是数据怎么去提纯、加工、清洗,怎么去合规、做交易,做股指,怎么去保证数据的安全等等。这些都是 TalkingData 要面临的技术挑战!我觉得能把这两点做好就已经是非常了不起。
至于对人才的要求,从我们这么多年来看,第一,要对数据有好奇心。对于理解数据的价值有很强的自驱力,这是非常重要的一点;第二,要有足够的热情和精力投入到数据的分析实战里面。有这两个就足够了,至于其他的技术知识,我真不觉得技术是个很高的门槛。所以只要符合这两点的年轻人,都可以来 TalkingData 试一试。
InfoQ:感谢肖总接受我们的采访,也祝愿 TalkingData 作为移动大数据处理的先行者和开拓者能够发展的越来越好,谢谢。
---
关于受访者
肖文峰,TalkingData CTO,1978 年生,清华大学硕士,曾就职于朗讯、BEA/甲骨文和微软,担任软件研发和研发管理工作。后经过一段时间创业,于 2013 年加入奇虎 360 负责无线端产品线。2014 年加入 TalkingData 任 CTO,负责全业务线的研发工作。