作者:吴江
用户背景
蔚来是一家全球化的智能电动汽车公司,于2014年11月成立。蔚来致力于通过提供高性能的智能电动汽车与极致用户体验,为用户创造愉悦的生活方式。
平台建设
实时计算在蔚来汽车的发展主要经历了如下几个阶段:
2018 年 5 月份左右,蔚来汽车开始接触实时计算的概念,并采用Spark Streaming 做一些简单的流式计算数据的处理;
2019 年 9 月份,蔚来汽车引入了 Flink,通过命令行的方式进行提交,包括管理整个作业的生命周期;
2021 年 1 月份,蔚来汽车上线了实时计算平台 1.0,并开始进行 2.0 版本的开发。
蔚来汽车实时计算平台 1.0 的生命周期如上图。任务写完之后打成 jar 包进行上传提交,后续的开启任务、停止、恢复和监控都能够自动进行。
作业管理主要负责作业的创建、运行、停止、恢复和更新。日志主要记录 Flink 任务提交时的一些日志,如果是运行时的日志还是要通过 Yarn 集群里的 log 来查看,稍微有点麻烦。关于监控和告警模块,首先 metrics 监控主要是利用 Flink 内置的指标上传到 Prometheus,然后配置各种监控的界面;告警也是利用 Prometheus 的一些指标进行规则的设置,然后进行告警的设置。Yarn 负责整体集群资源的管理。
上图是实时计算平台 2.0。相对于 1.0,最大的区别是蓝色的部分。对于实时计算平台的形态,可能并没有一个统一的标准,它与每个公司本身的情况息息相关,比如公司本身的体量和规模、公司对实时计算平台的资源投入等,最终还是应该以适用于公司本身的现状为最佳标准。2.0 版本主要增加从开发到测试两个阶段功能的支持,具体包括:
FlinkSQL:它是很多公司的实时计算平台都支持的功能,它的优点在于可以降低使用成本,也比较简单易用;
空间管理:不同的部门和不同的组可以在自己的空间里进行作业的创建、管理。有了空间的概念之后,可以利用它做一些权限的控制,比如只能在自己有权限的空间里进行一些操作;
UDF 管理:使用了 FlinkSQL 的前提下,就可以基于 SQL 的语义用 UDF 的方式扩充功能。此外,UDF 还能用于 Java 和 Schema 任务,可以把一些公用的功能包装成 UDF,降低开发成本。它还有一个很重要的功能就是调试,可以简化原有的调试流程,做到用户无感知。
实时计算平台 2.0 的核心目标是减轻数据团队的负担。只要把实时计算平台做得足够完善、易用和简单,数据中台团队就可以使用 FlinkSQL 完成数据的同步和处理,理想的情况下他们甚至不需要知道 Flink 的相关概念就可以完成这些工作,并且不需要依赖数据团队,大大降低沟通成本,进度会更快。这样在部门内可以形成闭环,产品经理的工作也会变得更轻松,在需求的阶段不需要引入太多的团队,效率也会大大提升
《Apache Flink 案例集(2022版)》——2.数据分析——蔚来汽车-Apache Flink 在蔚来汽车的应用(下) https://developer.aliyun.com/article/1228267