PCon全球产品创新大会最新日程上线,这里直达 了解详情
写点什么

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

  • 2021 年 11 月 04 日
  • 本文字数:4225 字

    阅读完需:约 14 分钟

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

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


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


00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 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:432308
    用户头像
    万佳 InfoQ编辑

    发布了 638 篇内容, 共 250.5 次阅读, 收获喜欢 1661 次。

    关注

    评论

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

    北美亚特兰大一金融服务公司面试总结

    HoneyMoose

    名可名

    顿晓

    5月日更 命名

    鹅厂疯子整理了万字Java笔记!小白:硬核资源基础知识已入门

    牛哄哄的java大师

    Java Object

    IT 专业大学生被培训机构“渗透”情况调查

    梦想橡皮擦

    签约计划

    网络攻防学习笔记Day1

    穿过生命散发芬芳

    5月日更 网络攻防

    将本地文件/文章上传到 GitHub 的流程

    彭宏豪95

    git GitHub 效率 编程

    【LeetCode】员工的重要性Java题解

    HQ数字卡

    算法 LeetCode 5月日更

    外行在谈论流派,大师在讨论颜料

    顿晓

    极限编程 5月日更 门道

    fastadmin+xunsearch题库系统搭建教程

    一颗小树

    php thinkphp fastadmin xunsearch 题库系统

    超硬核!阿里技术大牛肝了2晚整理的Java知识,这也太强了!

    飞飞JAva

    Java Java泛型

    BPF 之巅:洞悉 Linux 系统和应用性能

    博文视点Broadview

    你的烂代码终于有了解决方案

    博文视点Broadview

    Excel用户如何学习数据分析语言DAX?

    博文视点Broadview

    如何在 GitHub 上面为你的项目选择开源许可证

    HoneyMoose

    【人间碎片】关于努力这件事

    南吕

    人生修炼 人生故事

    当你觉得老板的决策是错的,你会怎么做?

    石云升

    职场经验 5月日更

    手机屏幕投屏到桌面的离线方案

    黄敏

    如何选择开源许可证

    HoneyMoose

    SpringCloud-技术专题-Feign组件基本使用(2)

    浩宇天尚

    springmvc SpringCloud Hystrix Fegin

    当代软件IT大学生的技术学习之路

    Nydia

    签约计划

    了解代理服务器

    进击的梦清

    nginx Linux 运维 代理原理

    A “word-wrap” functionality(一个字符串包裹函数)

    HoneyMoose

    InfoQ & 声网Agora 技术开放日邀请函

    Jessie

    音视频 声网

    2021年十大突破性技术

    石云升

    读书笔记 5月日更

    万字长文讲述我是怎样保送清华的|寒门学子的奋斗史(四)

    程序猿石头

    程序员 码农 逆袭 大学总结 读书总结

    技术探索系列 - 轻松带你掌握 JMM(1)

    浩宇天尚

    Java JVM JMM 并发 5月日更

    从零搭建一款PC页面编辑器PC-Dooring

    徐小夕

    大前端 可视化 lowcode 代码编辑器

    本文标题不能描述本文内容

    小天同学

    读书 哲学 读后感 4月日更

    【算法训练营】C++学前班--如何在Windows上搭建开发环境

    IT蜗壳-Tango

    IT蜗壳教学 5月日更 C++环境搭建

    书单 | 月度畅销好书,助你技能满格,摆脱低效,走向财富人生

    博文视点Broadview

    复杂Gremlin查询的调试方法

    Tom(⊙o⊙)

    gremlin调试

    ShadowRealm 与微前端沙箱

    ShadowRealm 与微前端沙箱

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