分享架构实践,搞移动互联网数据分析不得不看!

标签: 友盟 | 发表时间:2014-12-30 18:48 | 作者:友盟
出处:http://segmentfault.com/blogs

在日前的 nfoQ ArchSummit(全球架构师峰会)上,友盟高级技术总监叶谦分享了一些友盟数据平台的整体架构实践经验,很多伙伴要演讲速记。刚巧,友盟君发现【chinastor】阿明同学已经梳理了一份详文,借花献佛了。

友盟早在 2010 年就专注移动开发者平台,在叶谦看来,数据是移动互联网的主旋律。从友盟 24 小时采样数据绘成的全球移动互联网用户活跃度的图像中,可以看出,中国居于全球最为突出的区域。

图片描述

作为开发者服务平台的先入者,友盟覆盖的终端设备已经遍布世界各地。四年多以来,围绕数据,友盟都做了什么呢?

来看友盟统计分析产品包括的多个系统:

图片描述

友盟数据平台已经累积了超过 5PB 的移动互联网历史数据,并且这些数据正以每天 5TB 的速度快速增长。伴随着数据量增长而来的,是来自 SDK 、服务系统等等方面的经验和教训。

  • SDK 方面的教训——控制再控制,首先要控制好 SDK 大小,SDK
    模块化设计,不同功能可以自行组合,针对游戏、云用户、移动用户等提供模块化和社会化分享服务,开发者可以自行选择控制数据包大小,这是移动互联网比较普世的经验,也是友盟的实践之道。

图片描述

  • 其次,控制数据包大小,使用二进制数据包格式 thrift 方式传输。

  • 再控制方面,控制与服务端交互策略。采用多种发送模式,来满足实际业务需求;此外,对数据包去重,进行多重校验;其次,SDK端按规则调整的同时加上了服务端动态控制。

国外某大数据专家 Nathan Marz and James Warren 的书里,提到的大数据架构包括了:批量处理层、服务层、速度实施层三层架构的精髓。批量处理层是运行在一段时间真正的循环,从头开始不断重新计算批量视图 ;服务层是一个可扩展的数据库,对于用户来说,查询是两个方面同时查;速度层只处理新的数据,因为任何老数据都被服务层所占有,被批量处理层所吸引住。

但有一个问题,对于移动互联网的用户来说,如何快速迭代?快速迭代往往意味着取舍选择!有几个核心问题:

快速网络接入,对于 BGP 8线 或者 BGP双线如何选择?

快速系统搭建,对于传统 SQL 数据库或者新兴 NoSQL 数据库如何选择?友盟使用了 Twitter 系的开源软件。

快速 Scale up,对于软件架构升级还是硬件升级如何选择?友盟采用了 SSD 存储技术解决了问题。

其实,需求驱动是最合适的演进方向。

存储空间不够怎么办?友盟统计平台每天数据增长很快,由此友盟对压缩算法做了改进,LZO to LZMA。

图片描述

容量大且能支持小量在线访问的数据库?采用容量大并且能支持小量在线访问的数据库 HBASE+KVProxy,目前友盟有 20 万的开发者,但在线不高,因此采用了这样的系统,将大量数据放在 HBASE 里面,最大一个表有几十 TB 的规模。

如何支持自定义的任务调度需求?友盟自行研发了任务调度系统。从任务调度的需求来看,依赖比较复杂,有常规周期时间点调度,a 任务依赖 b 任务,有了 b 任务才能进行的调度等等,友盟调度系统可以提供适合的方式。

对于需求驱动来看,如何更有效率地按 App 组织数据?友盟自定义索引格式 App index,根据 LZO 方式做了该格式,逻辑方式和 LZO 相似。

对于需求驱动更有意思的方面,如何才能得到更准确的设备标识?实际上,设备标识问题多,如安卓山寨多,各种 ROM,各种安卓系统的设备泛滥;苹果系统封闭,可用的设备标识一直在变。

图片描述
图片描述

对于这些实际情况,友盟改进设备标识方案,两个思路基于较为简单的规则,兼容老的标识体系;基于图的分析方法,不兼容老的标识体系。
图片描述
现在,友盟的应用统计分析、游戏统计分析、社会化分享组件、消息推送四大类产品线早已推出,目前广泛服务于移动开发者。

感兴趣可以登录友盟官网 www.umeng.com 进行了解,了解本文更多详细内容,请 点击查看!

相关 [分享 架构 实践] 推荐:

分享架构实践,搞移动互联网数据分析不得不看!

- - SegmentFault 最新的文章
在日前的 nfoQ ArchSummit(全球架构师峰会)上,友盟高级技术总监叶谦分享了一些友盟数据平台的整体架构实践经验,很多伙伴要演讲速记. 刚巧,友盟君发现【chinastor】阿明同学已经梳理了一份详文,借花献佛了. 友盟早在 2010 年就专注移动开发者平台,在叶谦看来,数据是移动互联网的主旋律.

Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享

- - 企业架构 - ITeye博客
架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化、可移植性是CI/CD,DevOps,微服务的重要实现技术. 但目前技术还不够成熟,在生产实践中会遇到不少坑. 本期参与小组交流的是国内较早采用 Docker 实践的公司.

迁云架构实践

- - 博客园_知识库
  云计算作为信息技术领域的一种创新应用模式,自其诞生以来一直备受关注. 由于其具备低成本、弹性、易用、高可靠性、按需服务等特点,近年来被看作是新一代信息技术变革和商业模式变革的核心. 互联网、游戏、物联网等新兴行业纷纷积极拥抱云计算,对大部分企业用户来说,受限于传统IT技术架构的束缚,往往缺乏迁移到云计算的动力和技术实现参考.

优酷网架构分享

- beralee - 博客园-首页原创精华区
记得以前给大家介绍过视频网站龙头老大YouTube的技术架构,相信大家看了都会有不少的感触,互联网就是这么一个神奇的东西. 今天我突然想到,优酷网在国内也算是视频网站的老大了,不知道他的架构相对于YouTube是怎么样的,于是带着这个好奇心去网上找了优酷网架构的各方面资料,虽然谈得没有YouTube那么详细,但多少还是挖掘了一点,现在总结一下,希望对喜欢架构的朋友有所帮助.

一线架构师实践指南(一)

- - CSDN博客架构设计推荐文章
       从本质上,架构设计是需求驱动的,而不是模型驱动的. 但当很清楚需求却依然设计不出架构时,就说明“需求驱动的架构设计”的总结还“缺点什么”. 架构设计是一门艺术,不可能把“一桶需求”倒进某台神奇的机器,然后等着架构设计自己被“加工生成”完毕,因此“需求驱动的架构设计”的总结给架构师的启发不够.

一线架构师实践指南(二)

- - CSDN博客架构设计推荐文章
Conceptual Architecture阶段.        有经验的架构师不会一上来就关注如何定义“接口”,他们在大型系统架构设计的早期比较注重识别重大需求、特色需求、高风险需求,据此来设计概念架构. 概念架构是对系统设计最初构想,就是把最关键的设计要素和交互机制确定下来,然后考虑具体技术的运用,设计出实际架构.

微服务架构实践感悟

- - mindwind
从去年初开始接触微服务架构的一些理念,然后到今年开始实施系统第四个大版本的架构升级决定采用这套架构理念. 最近关于微服务架构的讨论还是多起来,因为国外一些著名互联网公司(如:Amazon、Netflix 等)从实践中摸索出了一套新的大型系统架构方法论,并取得了成功,树立了很好的示范,然后这套方法论渐渐就被一些技术理论派 人士命名为微服务架构(Microservices).

ActiveMQ架构设计与最佳实践

- - 深入一点,你会更加快乐
    ActiveMQ是最常用、特性最丰富的消息中间件,通常用于消息异步通信、调用解耦等多种场景,是JMS规范的实现者之一.     ActiveMQ提供两种可供实施的架构模型:“M-S”和“network bridge”;其中“M-S”是HA方案,“网络转发桥”用于实现“分布式队列”.     Master-Slave模型下,通常需要2+个ActiveMQ实例,任何时候只有一个实例为Master,向Client提供"生产"、“消费”服务,Slaves用于做backup或者等待Failover时角色接管.

Poppen.de的技术架构分享

- - 企业架构 - ITeye博客
网址:  http://www.javabloger.com/article/couchdb-erlang-rabbitmq-red5-linux-poppen-architecture.html. Poppen.de是一个德国的 交友/ 聊天/ 视频 的SNS网站, 部分内容. NSFW,网站采用了很多我们熟悉的技术,像Nginx ,MySQL,CouchDB,Erlang,Memcached的,RabbitMQ(消息服务器),采用了Graphite作为网站的系统监控,Red5作为视频服务,Tsung作为压力测试工具,选择的技术种类较多,还采用.

HBase简介与实践分享

- peigen - NoSQLFan
正面Slide来自淘宝技术嘉年华的iDataForum专场,是淘宝高级技术专家毕玄的一场火爆演讲和演讲搞,内容包括HBase介绍和HBase的一些应用经验分享. Hbase简介与实践分享 View more presentations from BlueDavy.