大数据、AI 和云计算的深入结合,让无数企业正在启动数智化转型。本文聚焦 OPPO 公司,探讨数智化转型背景下,OPPO 如何构建新一代数据平台?这个过程中,它面临着哪些挑战?数据平台的构建和升级给 OPPO 带来了哪些收益?......
带着这些问题,InfoQ 记者有幸在 QCon 2021 全球软件开发大会·上海站,采访到 OPPO 数据平台负责人 周强老师,和他探讨新一代数据平台建设的话题。
- 3.0x
- 2.5x
- 2.0x
- 1.5x
- 1.25x
- 1.0x
- 0.75x
- 0.5x
OPPO 数据平台负责人 周强
InfoQ:您好,周强老师,请您先简要做一下自我介绍
周强:大家好,我叫周强,此前曾在土豆网、支付宝和阿里云做数据平台的工作。目前,任职 OPPO 云计算中心数据平台部,负责 OPPO 数据平台的建设与技术演进。
InfoQ:这几年,为适应业务需求,OPPO 构建了新一代大数据基础设施,即 Cloud Lake。可以向大家介绍一下吗?
周强:随着 OPPO 的数智化转型,OPPO 对数据的应用要求越来越高,海量数据下算力、调度和存储都面临着巨大挑战。Cloud Lake 面向未来五年,为公司提供新一代的大数据计算、存储服务,为 OPPO 数据驱动公司业务发展打好坚实的基础。
InfoQ:请问,Cloud Lake 诞生的背景是什么?
周强:Cloud Lake 带一个“Cloud(云)",不得不先说下 OPPO 云。OPPO 用两年时间(2019 年和 2020 年)构建了符合自己业务特点的混合云。目前,OPPO 业务已经拓展到东南亚、印度、欧洲和北美。OPPO 云主要解决业务快速发展过程中基础设施的成本与效率问题。
OPPO 云是一朵混合云、云上云。在国内,我们有自己的机房,部署 OPPO 的云服务以及各类云上产品。在海外,更多选择与公有云合作,采购公有云的机器资源,包括 AWS 、谷歌,在公有云上部署我们自己的云服务,从而实现降低本增效的目的。
经过两年多实践,OPPO 在线业务已经实现 100%迁到 OPPO 云,给公司节约了数亿成本,在内部得到了比较好的评价。
这样一个背景下,回到数据平台。OPPO 的数据平台,集群机器规模已近万台,存储近 EB 数据,每天离线计算任务有近百万级,实时计算任务也有数千。根据近年的统计数据,差不多每年有 30%左右的规模增涨。这样一个存量和增量的基础上,我们的平台目标是什么呢?
数据平台有两点必须保障:第一是 SLA ,即平台稳定,不出现各类故障。在此基础上需要保障业务任务准点率。我们平台上面跑了近百万的数据任务,必须保证这些数据任务准点执行完成。在 SLA 三个 9 和准点率 100%要求下,我们还要把成本降下来。这驱使我们必须通过技术升级,平衡好 SLA 、准点率和成本。
InfoQ:OPPO 构建 Cloud Lake 的目的是什么?想解决哪些问题?
周强:一句话来概括,在保障我们数据平台 SLA、 准点率这个前提下,通过技术升级达到降本增效的目的。
InfoQ:Cloud Lake 的构建过程分为几个阶段?关键性动作有哪些?
周强:大致分为两个阶段。在介绍 Cloud Lake 前,必须介绍另一项工作,数据治理。我们发现,基于老平台的数据应用存在很多不合理的地方。治理手段缺失,缺少数据地图、数据热力、任务诊断、成本核算、质量监控等一系列数据治理的系统能力,帮助用户保障数据及数据任务的准确、合理、高效。这部分工作是我们数据平台稳定和降本的一个必要前提条件。
所以,在正式开始 Cloud Lake 项目前,我们专门起了项目,补齐数据治理的短板。有了数据治理的保障,我们才开展 Cloud Lake 的技术升级。
总体来说,可以概括为三个点:
第一是计算层面,实践批流一体的,减少重复计算,实现元数据与存储的统一。
第二是融合调度,将云的在线算力与大数据的算力进行统一的调度,实现算力的潮汐补给。
第三是湖存储,把原来 HDFS 存储,逐步迁移到云平台的对象存储,进而衍生到统一的湖存储。
InfoQ:Cloud Lake 建设过程中,数据湖存储的技术选型是怎么做的?
周强:说起存储,我们中间经历了一些试错,也有组织和管理上的考量。大数据应用,使用 HDFS 通常采用三副本策略,做高可用和性能保障,成本相对比较高昂。存储成本优化通常会采用纠删码技术(EC),将数据 X3 变成 X1.2 到 X1.5 这样的规模。决定引入 EC 后,又有两个选择,是使用 HDFS 的 EC,还是使用对象存储的 EC。考虑 OPPO 云计算中心有比较强大的存储团队,同时,参考公有云的发展,大数据存储正慢慢走对象存储的技术路线。所以我们决定将数据迁移到云存储的对象存储 OCS 中。截止目前,我们已经将 100PB 左右的冷存数据迁移到了 OCS。
除了冷数据,还有很多热数据。热数据的处理对我们系统挑战更大。我们的选择是把公司内部成熟的文件存储系统 CBFS 和刚才介绍的对象存储系统 OCS 做融合,统一两者的元数据,并对存算分离后的性能要求做逐级缓存,同是输出 S3 协议和 HDFS 协议,供用户对接使用,形成新的数据湖存储 ADLS。通过这样的技术融合,实现冷、热、温数据分层、分介质存储,保障用户无感知迁移。
InfoQ:在构建 Cloud Lake 过程中,你们面临的比较大的挑战有哪些?针对这些挑战,你们又是如何解决的?
周强:大数据技术发展已经有十多年历史,OPPO 对大数据的应用也不是这一两年的事。随着公司业务的发展,OPPO 数据平台建设走过了 5 个年头。平台目前有很多存量的机器,也运行着很多存量业务。此时做技术升级,好比开着汽车换发动机,需要在保障好业务运行稳定的前提下进行技术升级。
在技术选型过程中,我们优先结合现有的储备基础,尽量的少颠覆 ,多融合,攫取我们技术储备各个点上的长处,充分利用,奔着降本增效的核心目标努力,这是很重要的一点。
具体体现在升级过程中的两个点上:
第一,以云数融合调度为例,业内普通推崇云原生,OPPO 的大数据平台是否也要走云原生这条路?我们测试了云原生方案,利用 K8s 调度 Spark 计算任务,可以调,但并不能完全满足性能要求。因为 K8s 调度逻辑比 Yarn 复杂,对于频繁创建、释放资源的场景并没有优势。
我们选择把 Yarn 和 K8s 做融合。第一层调度,K8s 将 Yarn 的资源拉起来,第二层调度,通过 Yarn 对任务做资源分配。两者结合后,同样达到在线的算力资源释放给大数据,同时又能够保证我们原来一套基于 Yarn 构建的支撑体系不变(必须考虑用户习惯和成本账单)。既达到了目标,又让我们的技术升级更加平滑。
第二,存储方面,自研的数据湖存储 ADLS,结合我们之前在互服业务上多年沉淀的文件存储,对象存储管理研发经验,充分融合,同时兼容 HDFS,S3 接口,达到业务的无感知迁移。
InfoQ:Cloud Lake 构建完成后,给你们带来的收益有哪些?
周强:第一,实实在在降本。刚开始启动项目时,我们粗略估计了一下,按照 30%的业务增量,我们计划 2021 和 2022 年少采买机器,预估少买 50%还是有把握的。立项会上,评委给我们提出了更高要求,是否能够不买机器。老实说,当时我们心里并没有底,但还是答应了下来,因为我们相信做这个项目的价值与意义。实践中,我们发现,这并非是一个无法达到的目标。从实际情况看,我们离线集群夜间是高峰,整个集群资源利用率在 90%到 100%,而日间利用率只有 40%和 50%左右,只要能扛过夜间的高峰,以现有的机器规模完全可以满足未来一年 30%的业务增量。
经过云数融合的实践,夜间把一些在线资源释放到我们的离线集群。未来一年,大概有八万核左右的算力缺口,目前融合调度已经可以释放了一万核算力。相信未来一年不采买算力机器是一个完全可达到的目标。
第二,简化技术体系。大数据和在线业务原本是两套技术栈。OPPO 通过云数融合,形成跨领域的技术交流,让做大数据存储的伙伴了解在线业务使用的对象存储,做 K8S 调度的伙伴和做 YARN 调度的伙伴能够将各自领域的技术优势进行融合。同时,运维方面,也可以通过一套技术体系管理公司在线业务和离线业务。
第三,简化组织和管理。有了技术上的融合,数据平台团队和弹性计算团队的伙伴逐步融合成一个大团队,实现了人才复用。
InfoQ:从 OPPO 的实践中,你觉得有哪些重要的经验可以分享给对方?
周强:数据平台的建设必须结合自己公司的实际情况,考虑公司的业务规模,来决定自己的技术路线。现在的共有云厂商,普遍提供优秀的数据平台服务。当业务规模较小的时候,使用公有云方便、快捷且成本上也比较划算。随着业务规模的扩展,自建平台的成本优势会慢慢显现出来,所以我们要判断好公有云成本曲线与自建平台成本曲线的交汇点,做出合理的选择。
InfoQ:未来,你们在 Cloud Lake 上还会有哪些新的尝试与打算?
周强:我们的技术升级有三点:批流一体的计算、云数融合调度、数据湖存储。批流一体的计算,我们做到了元数据统一,存储统一。计算引擎统一,是未来可以积极探索的方向。虽然以 Flink 为代表的计算引擎,不断地宣称自己能做到批流一体,但是从实践角度,一个系统想做得多,往往不能再每个方向上都做到极致。统一的计算引擎我持保留意见,但不排斥这个方向的探索。这点上,我个人更倾于在批、流和交互式计算引擎上有一个公共层,通过这个公共层屏蔽不同引擎带来的适配成本,而非在引擎层实现完全的计算统一。
关于云数融合调度,目的是实现资源弹性,目前主要通过定时机制实现。因为我们知道业务资源利用规律,把这样的规律通过规则配置到我们弹性策略中。但是,弹性调度应该是更敏捷型,更灵活的,系统可以感知负载情况,自动进行资源的释放和回收。因为日常业务中会经常会有大规模任务重跑,任务突增等情况。这种情况下,灵活自主的扩缩容策略会对我们的业务有更好的帮助。
最后,在存储方面,刚才我们提到的冷、热、温分层存储目前还需要用户来定义。如某张事实表数据多久变冷存,某张维表是否一直需要热缓存加速。随着业务的变化,冷数据可能变成热数据,也需要手动做参数调整。其实,数据冷、热、温的划分,可以根据动态监测到的一些指标数据,通过算法自动地进行标识,转化,以达到不同数据使用不同存储介质,进而拥有更合理的存储成本。
InfoQ:近年来,数据平台有哪些新的技术热点?企业或技术人员应该对哪几个技术热点进行重点关注?
周强:近年数据平台的热点不算多,个人比较看好数据平台会往一个更实时化的方向演进,这个实时化方向不仅是以 Flink 为代表的实时计算,而是弥合了实时计算和离线计算边界的基础上,整体的数仓体系更倾向于准实时化、实时化。Hudi、Iceberg 这两个开源项目近年非常活跃可见一斑。
InfoQ:能不能展望一下,未来数据平台的发展趋势是什么样?
周强:数据平台更多还是要与云充分融合。近年来广泛讨论的 Snowflake ,将数据仓库搬到云上,同时支持多云部署,非常有代表性。我们的产品和能力嫁接到云上,能够更广泛的输出我们的服务。从实践过程来看,OPPO 数据平台通过与云的融合,在运维管理、稳定性、还有成本方面都得到了很好的收益。
评论