作者:谢磊
用户背景
中移(苏州)软件技术有限公司是中国移动通信有限公司的全资子公司,公司定位为中国移动云设施的构建者、云服务的提供者、云生态的绘制者。公司以移动云为运营中心,产品和服务在电信、政务、金融、交通等领域都有广泛应用。
平台建设
实时计算引擎在移动云的演进分为几个阶段:
• 2015 年到 16 年,使用第一代实时计算引擎 Apache Storm;
• 2017年开始调研 Apache Spark Streaming,它可以与自研框架进行整合,降低了运维压力和维护成本;
• 2018年,用户对云计算的需求越来越多,Storm 和 Spark已经无法很好地满足业务。移动云研究了流计算比较出名的几篇文章,发现 Apache Flink 已经比较完整地具备了文中提到的一些语义,开始基于Flink实现实时计算平台;
• 2019年 - 2020年,开始实现云服务,并把实时计算平台上线至公有云和私有云;
• 2020年 - 2021年,开始调研实时数仓,并将 LakeHouse 上线移动云。
目前 Flink 主要用于中移信令数字的处理、实时用户画像和埋点、实时数仓、实时运维监控、实时推荐以及移动云的数据管道服务。
中移的实时计算平台功能分为三大部分:
第一部分是服务管理,支持了任务生命周期的托管、Flink 和 SQL 作业、Spark Streaming 作业以及引擎多版本的支持;
第二部分是 SQL 的支持,提供了在线 Notebook 编写、SQL 语法检测、UDF 管理和元数据管理;
第三部分是任务运维,支持实时任务的日志检索、实时性能指标采集以及消息延迟报警和任务反压报警等。
生产实践
1. 中移信令业务优化
中国移动信令业务的出现是为了解决各级政府部门有关于移动用户资源数据的需求,包括旅游部门、应急部门、交通行业等,如交通规划、交通调查、旅游景区等重点区域的人口流量监测、流动人口监测管理等等。依赖于中国移动手机用户的高覆盖率,利用移动通信网络区域服务技术以及 GIS 技术,通过对移动用户信令数据的统计,对城市人口数量、流动性等要素进行分析预测,为城市规划、交通规划、管理、资源配置、外来人口管理、政策制定等政府管理行为提供决策数据支持。 中国移动信令业务的日均数据大概是 10PB,20 万亿/天,单条数据大小 0.5KB,包含了 2345G 上网数据、位置信令、省份城市、网络类型、接口类型等等。数据处理也比较复杂,要做数据加密、压缩以及版本的统一等。
早期的业务架构使用Flume集群对上报网关收集的各地信令数据进行数据接收,再通过Kafka传输到 Hadoop 集群,由Spark Streaming进行消费处理。这个业务架构主要遇到了两类问题:
第一类是写入性能问题。Kafka 在写入的时候频繁超时,生产性能存在瓶颈。以及 Flume 在发送数据时无法达到网卡的上限速度;
第二类是架构设计问题。架构涉及的组件比较多导致维护的成本比较高;此外,组件职责不清晰,比如 Flume 中存在数据清洗的逻辑;还有 Spark 逻辑和处理逻辑复杂,存在多处 shuffle,处理性能不稳定。
经过调研和实践,中移决定使用 Flink 代替 Flume 来解决问题。替换成 Flink 以后,提升了采集性能,解决了海量数据发送性能瓶颈,稳定性显著提高。同时明确了组件职责,将原有的服务中存在的逻辑全部转移至后端实时数据分解,让采集层专注于数据汇聚,处理层专注于数据分拣。另外统一了技术栈,端到端采用了 Flink 框架,获得了更高的性能,也降低了开发和运维成本。最终整体性能提升了 1/3 且降低了维护成本。
《Apache Flink 案例集(2022版)》——5.数字化转型——移动云Apache Flink 在移动云实时计算的实践(下):https://developer.aliyun.com/article/1227845