写点什么

节省数亿成本,OPPO 数据平台降本增效实践 | QCon

  • 2021-11-04
  • 本文字数:4225 字

    阅读完需:约 14 分钟

节省数亿成本,OPPO 数据平台降本增效实践 | QCon

大数据、AI 和云计算的深入结合,让无数企业正在启动数智化转型。本文聚焦 OPPO 公司,探讨数智化转型背景下,OPPO 如何构建新一代数据平台?这个过程中,它面临着哪些挑战?数据平台的构建和升级给 OPPO 带来了哪些收益?......


带着这些问题,InfoQ 记者有幸在 QCon 2021 全球软件开发大会·上海站,采访到 OPPO 数据平台负责人 周强老师,和他探讨新一代数据平台建设的话题。


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00

    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 数据平台通过与云的融合,在运维管理、稳定性、还有成本方面都得到了很好的收益。

    2021-11-04 16:434093
    用户头像
    万佳 前InfoQ编辑

    发布了 677 篇内容, 共 362.4 次阅读, 收获喜欢 1802 次。

    关注

    评论

    发布
    暂无评论
    发现更多内容

    提升软件开发效率,企业数字化转型更轻松?

    行云创新

    技术 云原生 开发 数字化转型

    公布半小时下载量达10W:阿里大牛出品「MyCat笔记」真香

    热爱java的分享家

    Java 面试 编程语言 经验分享 mycat

    新来的00后真是卷王,工作没两年,跳槽到我们公司起薪26K

    Geek_1df311

    Java 程序员 架构 面试

    【可观测之路】“观测云”CSDN技术专区正式上线!

    观测云

    可观测 CSDN

    企业云资源管理系统着重推荐-行云管家!

    行云管家

    云计算 服务器 云资源

    TDSQL-C for MySQL版产品新特性

    腾讯云数据库

    tdsql 国产数据库

    Flink CDC 2.0 数据处理流程全面解析

    大数据技术指南

    11月日更

    质量基础设施一站式服务平台开发,国家NQI一站式云平台搭建

    电微13828808271

    观测云产品更新|新增场景笔记、监控SLO、升级场景视图、异常检测库等功能

    观测云

    功能更新

    保姆级神器 Maven,再也不用担心项目构建搞崩了

    沉默王二

    Java maven

    打造一个物联网平台真的工程巨大吗?

    Speedoooo

    容器 ios开发 APP开发 Andriod开发

    如何利用EasyRecovery恢复c盘已删文档

    淋雨

    数据恢复

    深入理解 WKWebView(入门篇)

    百度开发者中心

    Webkit WKWebView

    Go语言学习查缺补漏ing Day5

    Regan Yue

    Go 语言 11月日更

    深圳企业办理等保备案流程详细说明

    行云管家

    网络安全 深圳 等级保护 等保备案

    恒源云(GPUSHARE)_长尾分布的多标签文本分类平衡方法(论文学习笔记)

    恒源云

    人工智能 深度学习 算力

    2022年游戏市场趋势——最后一个十亿蓝海待挖掘

    游戏出海 手机游戏

    你不知道的$nextTick

    CRMEB

    太完整了!阿里内部热捧“Spring全线笔记”,不止是全家桶

    热爱java的分享家

    Java 面试 编程语言 springboot 经验分享

    宝马、西门子是如何开始DevOps 的?

    飞算JavaAI开发助手

    我以为自己MySQL够牛逼了,直到看到了Alibaba的面试题

    热爱java的分享家

    Java 面试 程序人生 编程语言 经验分享

    CSS布局(三)之等分布局

    Augus

    CSS 11月日更

    TDSQL-C for MySQL版产品新特性

    腾讯云数据库

    数据库 tdsql

    智慧园区综合管理平台系统开发,智慧园区综合能源管理系统方案

    电微13828808271

    第二届腾讯“开悟”大赛初赛放榜,强化学习研究还能这么快乐?

    科技热闻

    “阿里爸爸”又爆新作!Github新开源303页Spring全家桶高级笔记

    热爱java的分享家

    Java 面试 编程语言 经验分享 Spring全家桶

    CTF夺旗PWN题:二叉树的漏洞利用

    网络安全学海

    网络安全 信息安全 渗透测试 WEB安全 安全漏洞

    TDSQL MySQL版产品能力介绍及新特性

    腾讯云数据库

    数据库 tdsql

    面试官:系统需求多变时如何设计?

    Geek_1df311

    程序员 架构 面试 计算机

    索信达控股:四大策略、五大行动,新趋势下数字生态的落地策略及行动路径

    索信达控股

    金融科技 数字化转型 数字金融 银行业 金融机构

    TDSQL Server产品新特性

    腾讯云数据库

    数据库 tdsql

    节省数亿成本,OPPO 数据平台降本增效实践 | QCon_大数据_万佳_InfoQ精选文章