首次揭秘|为6.4亿人次出行提供无线网络的技术架构

简介: 借助“互联网+大数据+机场”三轮驱动,掌慧纵盈每年为6.4亿人次出行提供无线网络连接服务。 随着业务的拓展,随之后来的挑战是数据量的暴增。 2016年,掌慧纵盈(股票代码:835736)通过阿里云产品,率先构建了业界领先的大数据平台。 本文阐述了一家物联网企业的业务架构和数据架构,以及技术选型

最近掌慧纵盈 大数据平台的架构师,分享了一篇文章很不错,转载到这里原文

借助“互联网+大数据+机场”三轮驱动,掌慧纵盈每年为6.4亿人次出行提供无线网络连接服务。
随着业务的拓展,随之后来的挑战是数据量的暴增。
2016年,掌慧纵盈(股票代码:835736)通过阿里云产品,率先构建了业界领先的大数据平台。
本文阐述了一家物联网企业的业务架构和数据架构,以及技术选型的思考过程,和与业务需求相匹配的最终技术架构。

业务架构

screenshot

掌慧纵盈的业务架构如图所示。我们的业务模式主要就是通过自有设备对数据进行收集,对数据的价值进行挖掘,最后对这些数据应用。
数据收集层,我们创立了国内机场官方Wi-Fi第一品牌“Airport-Free-WiFi”,网络遍布全国25个枢纽机场和39个枢纽高铁站,每年为6.4亿人次出行提供无线网络连接服务;我们拥有全国最大的驾校Wi-Fi网络,到17年底将覆盖1500+所驾校;我们也是中国四大车展(北京、上海、广州、成都)Wi-Fi服务商,为超过120万人次提供了网络服务;此外,我们还运营了全国2000+个加油站和600+个汽车4S经销店的Wi-Fi网络。
数据应用层,我们打通了线上和线下行为数据,用于用户画像,为包括SSP,DSP,DMP,RTB在内的广告业务提供更高效的精准触达;并和公安部合作,排查公共网络安全威胁。
掌慧纵盈的大数据平台和广告投放平台还为企业输出技术能力,帮助企业建立自己的大数据平台,用丰富的量化数据提升企业的运营管理效率。

数据架构

screenshot

基于我们的业务架构,我们抽象除了我们的数据架构,其中包含了许多主题,其主题视图如图所示。图中本体可以简单的理解为人,客体可以简单的理解为物;本体与客体以各种形式进行连接,这种连接是一种时间维度和空间维度上的交汇,这种连接通过计算机网络和电信网络完成。本体在连接网络中有自己的像,可以简单的理解为虚拟身份(Avatars);客体在连接网络中也有自己的像,例如维基百科对某一事物的描述,再比如某一事物商业化后形成产品或服务,再经过广告包装成其广告形象,这些都是其客像。本体与客体的交互实际上就是本像和客像的交互,这种交互在时间和空间的维度上都会留下轨迹。
本体的个体特征和群体特征,客体的个体特征和群体特征,本客交互的所有轨迹,所有这些主题形成的大数据,经过深度挖掘和学习,可以得出强大的洞察力,这种洞察力具有不可估量的商业价值。
掌慧纵盈目前在本体域和交互域的数据体量:
screenshot

技术选型

接下来说一下我们技术选型的思路。我认为,没有最好的技术架构,只有最合适的架构。成功的IT规划就是从业务架构出发,针对其每一个业务场景,给出最合适的技术架构。

功能需求

首先来看我们的功能需求。以我们的广告业务为例,目标是日消息处理量达到100亿条。其对大数据能力的要求如下:
screenshot

假设记录大小是2KB,容纳这些数据我们需要70PB的物理容量。对查询范围的要求,推导出,离线计算的处理时长24小时,在线计算10分钟。

非功能需求

  • 希望通过云平台将基础设施安装运维外包。
  • 大数据技术日新月异,希组件版本能够及时更新。
  • 外部商业环境迅速变化,希望计算资源可以动态增减,以节约成本。
  • 希望以较低的成本获取相对专业的安全服务。
  • 尽量使用开源组件,方便整体输出。

产品选择

综合考察国内的云服务提供商,我们选择了阿里云,尤其是其E-MapReduce产品,购买之后,集群马上就创建好了,Hive, Spark, HBase等开源大数据组件即刻可用。
首先我们选择数据存储引擎。
screenshot

我们以存储25TB的数据为基准,考察各个选项的性能和价格。从图中可以看出,针对离线分析来说,如果想用开源组件,可以考虑Hive on OSS的模式,来存储近一年的数据。针对在线分析的场景,使用HBase存储近三个月的数据,可以获得很高的性价比,这个方案可以多表联查,但是SQL的响应对场景敏感,不同复杂度的SQL响应时间是不一样的。如果希望响应时间恒定,可以考虑基于索引的方案,即日志服务,缺点就是不能多表联查;如果想使用开源组件,可以自行在ECS上搭建ELK。
接下来我们选择查询引擎。我们使用一个基准SQL,方便对其响应时间进行横向对比,基准SQL如下图所示:
screenshot

结论是,使用Phoenix基于HBase进行交互式查询,可以获得很满意的响应周期。
选型部分告一段,接下来给出大数据平台的技术架构。

技术架构

screenshot

大数据平台的技术架构概览如图所示,图中几乎所有的服务和功能都是通过阿里云产品来实现的,其中开发测试环境也是基于阿里云的ECS搭建的。从图中可以看出,我们并不需要关心机房的电源、网络、虚拟化、硬盘更换等一系列基础设施问题,直接基于云平台,专注于我们自己的业务。

产品使用中有一些心得,总结如下:

E-MapReduce

阿里云的E-MapReduce是我们大数据平台的核心产品,其涵盖了Hive, Spark, HBase, Storm等大数据领域核心的开源组件,还有Phoenix, Presto等业界前沿的查询引擎,其Zeppelin, Hue等交互组件也是开箱即用。
E-MapReduce不断有新的版本发布,其中的组件版本也是不断更新,但是已经购买的E-MapReduce是无法方便的升级的,为了及时升级组件版本,我们采取包月而不是包年模式。包月到期,想要升级,直接买新的,旧的不续费,自行销毁。阿里的E-MapReduce只能增加节点不能减少节点,通过上述的滚动模式,还可以随时调整集群规模和各种配置。
上述的这种滚动模式,对于计算集群来说没问题,数据存储怎么办呢?E-MapReduce所用的机器配置都很高,用来存储数据就可惜了,数据可以存储在OSS上,使用Hive加载即可。不过要使用HBase还是要把数据存到E-MapReduce上,一但放到E-MapReduce上,这个集群就不能随意销毁了。所以,我们实践当中将数据集群和计算集群分开,计算集群可以随时销毁和升级,数据集群需要长期稳定提供服务。这两种的集群配置也是不一样的,计算集群用SSD,主攻“快”,数据集群(HBase)用高效云盘,主攻“大”。
那按量付费呢,什么场景下使用?我们计算过,如果计算时长超过7天,那么还是直接购买包月的集群比较划算。按量付费的集群可以用于临时突发的计算任务。

工单管理

使用阿里的云服务,最吸引人的就是工单服务。由于我们的运维团队会经常遇到复杂且需要紧迫解决的问题,团队成员可以直接通过工单请求阿里的工程师协助解决。沟通问题的过程也是我们学习的过程,我们向阿里云服务的工程师们学到了不少的东西。

软件视图

基于技术概览,我们技术架构中的软件视图如下所示:

screenshot

一些使用心得总结如下:

SLB
原来,为了管理方便,我们好多ECS都开通了外网,但是实际使用率不高,外网带宽的成本占用ECS成本很大的一部分,现在我们所有ECS都去掉了外网带宽,统一走SLB,共享SLB的外网带宽,包括SSH等所有应用的端口都是用SLB转发。SLB带宽不受限制,速度上来了,成本下来了,算是我们对SLB的一个活用。

ECS
由于我们的业务环境变化很快,有些机器可能今天还有用,明天就没用了,所以我们采用包月加自动续费的模式,随时增减机器,随时增配减配。

ONS
也即阿里的日志服务,阿里内部叫MQ,其响应时间很快,吞吐量很大,可以应用于实时性非常高的场景,例如实时竞价。

Log Service
其包含Logtail,LogStore, LogHub,LogShipper和LogSearch服务,其中日志投递(LogShipper)功能很有用,可以自动将采集的日志投递到OSS,这样就可以直接使用Hive加载了,不过目前只支持json格式。在我们的建议下,日志服务团队将会支持CSV,SequenceFile和Parquet格式,预计于2017年1月上线。

Spark
其官方给出的例子和阿里帮助文档里的例子都是基于Scala的,不过我们还是选择了用Java进行Spark应用的开发,这样我们开发团队的组建会更加便利。如果能使用Java 8,那么从函数式编程方式尤其是lambda表达式的角度就十分接近Scala的表现能力了。在我们的建议下,目前阿里云新版本的E-MapReduce已经支持了Java 8。
需要提一句,数据在ODPS(现名称MaxCompute),那也没关系。E-MapReduce 提供 SparkSQL服务,可以无缝访问ODPS数据。使用ODPS的用户也可以加入到Spark生态体系中。

Storm
目前E-MapReduce已经提供了Storm组件,想要使用此组件,有两个选择:从日志服务消费;或者通过引导操作在E-MapReduce上安装Kafka,支持增加节点。

OSS
OSS主要用于存储,与E-MapReduce结合,实现了计算与存储的分离。

Zeppelin
这真的是一个好东西,业务人员通过它,可以通过Web的形式使用HiveQL, SparkSQL, Phoenix, Presto等对数据进行探索式和交互式的查询,而无需编程和登录SSH,并且可以保存过往的查询,还可以形成简单的柱状图饼图。我们的DMP工程师再也不用为了某一个统计数字通宵写代码了,业务人员自己就可以搞定。

Phoenix
HBase本身是NoSQL数据库,结构化查询是其弱项,我们就是有很多OLAP的需求,希望交互式出结果,原来的做法是自己创建HBase的二级索引,对非主键字段进行跳转查询。后来发现,E-MapReduce上,Phoenix已经为我们搭建好了啊,其索引机制生成的HBase索引表,不就是我们原来手工创建的索引表吗。于是全部转向使用Phoenix进行交互式查询。E-MapReduce老版本的Phoenix的默认查询超时是1分钟,对我们来说太短了,改参数又要重启。在我们的建议下,目前E-MapReduce新版本的Phoenix的默认超时时长已经设置为半个小时了。

场景举例

批量计算,LogTail + LogHub + LogShipper + OSS + Hive + SparkSQL
批量计算重在采集,使用LogTail配置好采集规则,通过LogShipper自动投递到OSS,使用Hive直接加载形成数据仓库,在Zeppelin界面上通过SparkSQL直接查询Hive中的数据,整个ETL的过程十分流畅,几乎不用写任何代码。

交互式计算,LogTail + LogHub + Storm + HBase + Phoenix
对于响应时间要求更严格的OLAP业务,可以以HBase为中心构建OLAP数据库,为了缩短数据可用的周期,可以单独一条通道。使用LogTail采集,并将LogHub中的数据对接到Storm上,使用Storm进行转换并写入HBase,然后在Zeppelin的界面上使用Phoenix进行查询。

实时计算,Servlet + ONS + Spark Streaming + Redis
对于实时竞价等实时计算业务,可以充分利用ONS的超快响应(1ms以内),超大并发的特性,通过Spark Streaming进行计算,最后存储到Redis中。

展望未来

Spark 2.0 发布了Release,Hadoop 3.0发布了Alpha,HBase 2.0 发布了SNAPSHOT,这些组件中的好多新特性都是我们十分期待的,我们会密切关注阿里云E-MapReduce新产品的发布,希望早日用上新版本的开源组件。

作者,艾佳,毕业于清华大学软件工程专业,曾就职埃森哲和IBM,现担任掌慧纵盈科技股份有限公司大数据平台架构师,邮箱xiaofeng0092@foxmail.com,欢迎交流。

相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
6天前
|
安全 网络协议 网络安全
网络安全笔记整理,你花了多久弄明白架构设计
网络安全笔记整理,你花了多久弄明白架构设计
|
8天前
|
机器学习/深度学习 安全 网络安全
数字堡垒的构筑者:网络安全与信息安全的深层剖析构建高效微服务架构:后端开发的新趋势
【4月更文挑战第30天】在信息技术高速发展的今天,构建坚不可摧的数字堡垒已成为个人、企业乃至国家安全的重要组成部分。本文深入探讨网络安全漏洞的本质、加密技术的进展以及提升安全意识的必要性,旨在为读者提供全面的网络安全与信息安全知识框架。通过对网络攻防技术的解析和案例研究,我们揭示了防御策略的关键点,并强调了持续教育在塑造安全文化中的作用。
|
8天前
|
运维 监控 安全
|
8天前
|
人工智能 安全 大数据
SDN(软件定义网络)——重塑网络架构的新视角
SDN(软件定义网络)是网络架构革新的关键,通过分离控制与数据平面,实现网络的灵活、高效管理。未来,SDN将更广泛应用于各行业,与云计算、大数据、AI融合,推动数字化转型。开放与标准化的趋势将促进SDN生态发展,提供以业务需求为导向、智能化自动化管理及增强网络安全的新视角。SDN将在更多领域扮演重要角色,支持网络技术的创新与进步。
|
8天前
|
机器学习/深度学习 自然语言处理 网络架构
经典神经网络架构参考 v1.0(4)
经典神经网络架构参考 v1.0
24 0
|
8天前
|
网络架构
经典神经网络架构参考 v1.0(3)
经典神经网络架构参考 v1.0
19 0
|
8天前
|
网络架构
经典神经网络架构参考 v1.0(2)
经典神经网络架构参考 v1.0
16 0
|
8天前
|
机器学习/深度学习 网络架构
经典神经网络架构参考 v1.0(1)
经典神经网络架构参考 v1.0
23 0
|
8天前
|
机器学习/深度学习 存储 人工智能
一阶优化算法启发,北大林宙辰团队提出具有万有逼近性质的神经网络架构的设计方法
【4月更文挑战第19天】北京大学林宙辰团队在深度学习领域取得突破,提出基于一阶优化算法的神经网络设计方法,构建具有万有逼近性质的模型,提升训练速度和泛化能力。该方法利用一阶导数信息,高效处理大规模问题。虽然面临非光滑优化和收敛速度挑战,但团队通过正则化和自适应学习率等策略进行改进,相关研究在多个标准数据集上表现出色。
16 1