NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

节省数亿成本,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.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:433275
    用户头像
    万佳 前InfoQ编辑

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

    关注

    评论

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

    J2PaaS低代码平台,如何赋能开发者,助力企业数字化?

    J2PaaS低代码平台

    开发者 低代码 企业数字化 地代码平台 J2PaaS

    分布式事务对于两阶段提交的错误处理

    KunlunBase昆仑数据库

    分布式数据库

    开发者说丨如何从零开始构建一个轻量级应用

    华为云开发者联盟

    Vue 低代码 页面 应用 AppCube

    星汉未来成为 FinOps 产业标准生态联盟首批会员

    星汉未来

    云原生 开源社区 成本优化 IT运维

    国内领先的云软件厂商安超云加入,为龙蜥社区注入新动能

    OpenAnolis小助手

    开源 操作系统 云厂商 国产

    亿级月活沙盒平台《迷你世界》背后的黑科技

    华为云数据库小助手

    GaussDB DDM 华为云数据库

    在线TOML转JSON工具

    入门小站

    工具

    昆仑分布式数据库技术特点

    KunlunBase昆仑数据库

    分布式数据库 国产数据库

    10分钟快速玩转kunlun cluster

    KunlunBase昆仑数据库

    分布式数据库

    31 家企业入选阿里云首期云原生加速器,共建云原生行业新生态

    阿里巴巴中间件

    云计算 阿里云 云原生 加速器 生态伙伴

    Javascript实现上传图片并实现预览图片功能的三种方法

    deal

    3月日更 3月程序媛福利 3月月更

    C++ 内存管理中内存泄漏问题产生原因以及解决方法

    Linux服务器开发

    C/C++ 内存管理 内存泄漏 Linux服务器开发 Linux后台开发

    经典的两阶段提交算法原理及缺陷

    KunlunBase昆仑数据库

    分布式数据库

    天翼云与龙芯完成产品兼容适配加速国产化云平台发展

    天翼云开发者社区

    天翼云TeleDB数据库为实现自主可控全面亮剑

    天翼云开发者社区

    在一条DML语句中插入/更新/删除/获取几百万行数据,你会特别注意什么?

    KunlunBase昆仑数据库

    分布式数据库

    【Kali】中密码暴力破解工具hydra的使用

    学神来啦

    网络安全 字典 kali kali Linux

    广电行业如何上云?来抄作业!

    天翼云开发者社区

    响应速度提升80%以上,甘肃省医保信息平台稳固上线有法宝

    华为云开发者联盟

    数据库 华为云 华为云数据库 智慧医疗 医保

    【OpenMLDB Monthly Meeting】2022.2 月会议纪要

    第四范式开发者社区

    人工智能 数据库 开源 Meetup 特征平台

    多任务学习模型之DBMTL介绍与实现

    阿里云大数据AI技术

    机器学习 深度学习 数据模型 多任务学习

    为什么要选择昆仑分布式数据库?

    KunlunBase昆仑数据库

    国产数据库

    无所不云,开启你的美好旅行新体验!

    天翼云开发者社区

    昆仑分布式数据库Sequence功能及其实现机制

    KunlunBase昆仑数据库

    分布式数据库

    如何为你的企业创建自助服务知识库

    小炮

    以领先NLP技术构建AI数字疗法体系,聆心智能致力于解开更多“心结”

    硬科技星球

    如何使用一个有安全性问题的隐私计算技术?

    易观分析

    隐私计算

    昆仑分布式数据库架构介绍

    KunlunBase昆仑数据库

    数据库 分布式数据库

    昆仑分布式数据库技术优势

    KunlunBase昆仑数据库

    分布式数据库 国产数据库

    RTC 音频质量评价和保障

    网易云信

    WebRTC

    恒源云(GpuShare)_表序编码器的联合实体和关系提取(论文浅谈)

    恒源云

    自然语言处理 机器学习 深度学习

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