vivo鄢楠:基于OceanBase 的降本增效实践

在3 月 20 日的2024 OceanBase 数据库城市行中,vivo的 体系与流程 IT 部 DBA 组总监鄢楠就“vivo 基于 OceanBase 的降本增效实践”进行了主题演讲。本文为该演讲的精彩回顾。


vivo 在1995年于中国东莞成立,作为一家全球领先的移动互联网智能终端公司,其年生产能力已接近2亿台,服务于全球超过5亿用户。vivo最初从电话机业务起家,如今业务范围已广泛拓展至智能手机、AI等多个领域。随着业务的蓬勃发展,vivo的IT技术架构也经历了巨大的变革。从最初的单体架构,到现今基于5G的容器化微服务模式,vivo在二十多年的时间里不断探索并成功应用了行业主流的IT技术。

1712027654

一、使用MySQL面临诸多挑战

vivo 的数据库迭代伴随着整个数据库行业的变迁。vivo 的现有业务系统有的采用了传统的商业数据库,有的采用了新型的开源数据库,最多时有几千个数据库,目前数据库技术栈包括 Oracle、MySQL、Redis、OceanBase 等近 10 种数据库。随着数据库越用越多,vivo 开始围绕数据库的运维和使用场景,探索工作效率的提升。

1712027681

当前,vivo 使用的主要数据库是 MySQL,通过 MySQL 的集群加一套 proxysql 分离的模式支撑业务运行。MySQL 的生态非常庞大,周边组件非常多,但是并没有统一的集成解决方案,每个问题都需要单独调研或者引入第三方组件。

而多个组件搭配的方案也存在明显的缺陷。这些组件来自不同的社区和厂商,给运维 DBA 带来了高昂的学习成本,同时也给业务带来隐藏的风险。vivo 现存的关系型数据库在日常运维中,常见的问题主要有以下几个方面:

第一,性能和可扩展性

在使用 MySQL 数据库时,如果进行复杂查询或大数据库的查询,会导致 MySQL 性能下降。在高并发场景下,写入操作会导致性能瓶颈。此外,不恰当的索引设计或管理也会影响查询效率。MySQL 的水平扩展能力有限,对于需要分布式数据库解决方案的场景不够理想。

第二,备份和恢复

MySQL 对增量备份的支持相对有限,大型数据库备份耗时较长,在线备份会影响数据库性能,在数据丢失或损坏情况下,恢复过程复杂且耗时。

第三,可用性和灾难恢复

现存关系型数据库在设置和维护高可用性架构(如主从复制、集群)时,复杂且成本较高。在主数据库发生故障时,自动故障切换到备份数据库时,存在延迟或不一致性问题。为了确保数据安全性和业务连续性,制定和测试灾难恢复计划也需要额外的资源和时间。为了提供灾难恢复能力,在多个数据中心间同步数据会面临网络延迟和数据一致性挑战。

近些年,降本增效成为企业数字化转型过程中的重要议题。企业不再满足传统的数据架构,期望通过高可用、高性能的数据库,提升运营效率,适应市场需求。大型企业在核心系统升级或全面升级时,主要关注以下几点:

○  数据模型优化:随着业务发展,数据模型可能需要调整以适应新的需求,这可能导致数据库重构和迁移的挑战。

○  数据库分片:为了提高性能和可扩展性,数据库分片(sharding)的实施可能增加架构的复杂性。

○  多租户支持:在多租户应用中管理数据隔离和资源分配可能需要额外的设计和管理工作。

○  数据迁移:将现有数据迁移到新的数据模型或数据库架构可能涉及复杂的转换和同步过程。

此过程中,相比降本,vivo 更看中增效。在使用 MySQL 时:

在效率层面,偏分析类的复杂 SQL 在 MySQL 执行耗时较长。当 MySQL 单表数据量大时,采用分库/分表方案,会给开发设计、SQL 编写、维护带来复杂度。通过第三方工具配置高可用切换方式,也会增加运维复杂度。

在成本层面,MySQL 一主多从的架构下,实例数量多,存储成本高,从库资源不能高效利用。假如要做读写分离,需要借助第三方组件,增加额外的硬件资源成本。

基于 MySQL 的使用痛点,vivo 开始数据库选型之路。在对行业的头部产品进行了性能测试、兼容性测试、功能点测试等对比后,最终 vivo 选择了 OceanBase。

二、OceanBase 上线15个生产业务

vivo 选型落地 OceanBase 的过程中,经历了内部分享——OceanBase 专家培训——测试环境——IDC 生产上线——公有云生产上线——规模化陆续上线几个阶段。

vivo 在产品选型之后,紧接着在内部做了一次围绕 OceanBase 的特性、收益等方面的技术分享,提升了运维开发人员对 OceanBase 的接受度。在此期间,OceanBase 的专家也对 vivo 的运维开发人员做了相关的产品技术宣导。vivo 的业务范围广,因此选择了一个契合 OceanBase 功能特性的业务优先试点。运行良好之后,从 IDC 到云上,持续拓展集群规模。

vivo 的业务遍布全球,2024 年年初,vivo 在阿里云海外版上线了一个 OB Cloud 集群。目前 vivo 已有 4 个测试集群、1 个阿里云集群、5 个生产集群、15 个生产业务模块上线 OceanBase,包括日志系统,并陆续审计平台、技术中台、用户中心等多个业务系统。

接下来,vivo 的规划是先保证试点业务的平稳运行,将其运行效果转化为其他业务对 OceanBase 的信心,持续地迭代升级。当业务在 MySQL 上有运行痛点,并且业务有意愿做调整,且调整成本不高的情况下,我们会做 OceanBase 的替换。现阶段,MySQL 和 OceanBase 在 vivo 会同时存在。

三、使用 OceanBase 相当于增强版“MySQL”

OceanBase 是一款自主研发的分布式数据库,具备数据强一致、高扩展、高可用、高性价比、稳定可靠等特征,因其高度兼容 Oracle/MySQL,也大大降低了数据库的迁移成本和运维开发的难度。其周边生态系统也比较完善,社区很活跃,对相关问题能够及时响应,团队的支持力度也很大。总体使用下来,相当于“增强版 MySQL”。

第一,兼容性。vivo 在引入新产品时,需要保证不会因此降低原有的效率。OceanBase 的兼容性极大保证了业务效率。

○  语法与 MySQL 兼容,对开发友好,代码改动小

○  云上与云下同一个技术栈,OB Cloud 支持多云部署  

○  兼容 MySQL Binlog 模式,对下游消费 Binlog 友好;MySQL 生态的 Binlog 统计、flashback 工具(例如 my2sql/mysqlbinlog)等可兼容 

○  可将监控指标采集到 Prometheus,兼容现有的监控、告警体系 

第二,稳定性。稳定性是 vivo 引入新产品时第二考虑因素,只有系统稳定运行,才能为效率提供保证。vivo 选择了一些业务上线 OceanBase 进行试点,稳定运行大半年后, vivo 对 OceanBase 在快速扩缩容、副本调整、读写分离方面的优势深有体会。

○  平稳支持业务流量  

○  快速弹性扩容

○  多场景原生支持 Online DDL,降低变更对业务的影响

第三,服务。在试点 OceanBase 的过程中,OceanBase 团队 7*24 小时响应,提供了专家技术支持、多次专项培训、内部方案设计等技术服务和专业建议,遇到特殊问题时,研发人员也能快速介入,快速解决问题。

第四,增效。OceanBase 灵活的表分区方式,消除了分库分表的复杂性。开发人员不需要再对分库分表进行特殊的代码设计。且 OceanBase 可支撑部分 AP 类查询,在遇到这类问题时,不需要再接入下一个大数据平台完成。同时,跨集群的主备租户模式,可以高效创建灾备或只读节点,从而保证数据库的一致性,提高资源利用率。

第五,降本。OceanBase 的多租户管理模式和资源隔离,规格和副本可以灵活调整,解决了 vivo 之前的主从副本资源无法有效利用问题。并且 OceanBase 的数据压缩比非常高,可进一步降低存储成本。高可用架构+ OBproxy,无需搭配第三方工具进行切换和读写分离。

第六,工具生态。OceanBase 的工具生态非常丰富,从数据库的全生命周期,几乎覆盖了 90% 的运维场景。因为有些历史业务要兼容,所以 vivo 需要考虑和以往数据库的兼容性,假如上线新的业务系统,选择 OceanBase 可以做到开箱即用,几乎无需在平台建设方面投入人力。vivo 在使用 OceanBase 的过程中,感受最深的工具有两个,分别是 OCP 和 OMS:

○  OCP 管理平台提供了便利的部署、升级、监控、备份恢复等运维手段;

○  OMS 迁移平台提供了便利的数据迁移方法,支持全量、增量、反向同步等多种模式。

1712028023

四、对 OceanBase 的三点期望

目前,vivo 使用的是 OceanBase 4.2.0 版本,期间也遇到了一些补丁修复等问题。而在 4.2.1 等更高版本中,这些问题基本都已经规避。基于 OceanBase 的使用体验,以下方面期待在后面的版本中能得到优化。

1712028052

○  希望深化功能细节

vivo 之前使用的商业数据库,功能或许没有 OceanBase 完善,但在细节方面详尽周全。希望 OceanBase 能将现有功能持续优化和打磨,完善用户的常规使用场景的细节体验,给新客户更好的信心。

○  优化日志和报错系统

OceanBase 的日志和报错形式,与常规数据库有一些差别,而在实际运维过程中,对这些日志的分析和排查,需要一定的学习成本。希望 OceanBase 能够明确和统一的日志级别和格式,便于用户迅速识别问题详尽的错误报告和排错指南,提供直接的解决步骤,减少用户的困惑和不确定性。

○  扩展 OMS 支持范围

OMS 工具现在只支持目标,希望能够将 OMS 打造成为一个更通用的工具,同时支持源和目标,降低产品使用门槛,吸引更多的社区用户接触 OceanBase 生态,助推 OceanBase 扩大用户数量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【智能算法】吸引-排斥优化算法(AROA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,K Cymerys受到自然界中吸引-排斥现象启发,提出了吸引-排斥优化算法(Attraction–Repulsion Optimization Algorithm, AROA)。 2.算法…

Python—面向对象小解(5)

一、多任务介绍 1.1 进程与线程 进程是操作系统分配资源的最小单元 线程执行程序的的最小单元 线程依赖进程,可以获取进程的资源 一个程序执行 先要创建进程分配资源,然后使用线程执行任务 默认情况下一个进程中有一个线程 1.2 多任务介绍 运行多个进程…

深入解析CRM客户关系系统:技术架构与功能实现的融合创新

CRM客户关系管理系统(Customer Relationship Management System)是一种以客户为中心的信息系统,旨在帮助企业更好地管理和维护客户关系,提高客户满意度和忠诚度,从而提升企业的市场竞争力。以下是CRM客户关系管理系统的…

电磁兼容整改时磁环怎么选型

电磁兼容整改时磁环怎么选型 磁环的选型错误磁环特性纳米微晶磁环磁环选型示例磁环选型 一条线缆两端都有设备,那磁环应该放在哪里? 我们怎么样来选择这个磁环,通过磁环的吸收作用,让辐射的强度和传导发射的这个强度衰减更大的那我…

Linux|虚拟机|Windows 11 家庭版的Hyper虚拟机服务开启

前言: Windows11的版本是比较多的,但有的时候笔记本预装的可能是家庭版,而家庭版的Windows通常是不支持虚拟机的,也就是说Hyper服务根本就看不到 Windows的程序和功能大体如下: 🆗,那么如何开…

一、初识Qt 之 Hello world

一、初识Qt 之 Hello world 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 初识Qt 之 Hello world文章目录 一、Qt 简介二、Qt 获取安装三、Qt 初步使用四、Qt 之 Hello world1.新建一个项目 总结 一、Qt 简介 C &#xf…

数据库系统概论(超详解!!!)第十节 过程化SQL

1.Transact-SQL概述 SQL(Structure Query Language的简称,即结构化查询语言) 是被国际标准化组织(ISO)采纳的标准数据库语言,目前所有关系数据库管理系统都以SQL作为核心,在JAVA、VC、VB、Delphi等程序设计语言中也可使用SQL,它是…

利用元宇宙NFG+IPO线上营销,打造新商业模型

随着互联网技术的飞速发展,商业模式和创新方式层出不穷。特别是在移动电商和区块链技术的双重推动下,市场格局正在经历一场深刻的变革。然而,随着竞争加剧和监管收紧,如何构建一个既能吸引用户又能保持系统稳定的商业模型&#xf…

Chapter 5 Current Mirrors and Biasing Techniques

Chapter 5 Current Mirrors and Biasing Techniques 这一章介绍电流镜 5.1 Basic Current Mirrors MOS工作在饱和区, 表现为一个电流源. 考虑电源变化, PVT波动, 我们会首先产生一路精准电流源, 再复制这路电流. 如何复制呢? 电流转电压再转电流就行了, 如下图所示 考虑到…

传感器和变送器的区别介绍

从它的名称来看,传与感二字。传是指传输,感是指感知。实际上是先有感知,其次转换,最后传输。因此传输是目的,转换是手段,感知是基础。把能够将被测变量(温度、压力、液位、流量)感知…

港湾周评|李小加“刀刃向内”裁员

《港湾商业观察》李镭 近年来争议颇大的滴灌通风波不断。 在交100万付费上班不久,最新又被曝出裁员。这位前港交所总裁、金融圈鼎鼎大名的李小加,没想到成立不足三年便迎来了重大挑战。 日前,滴灌通确认了公司组织架构已经调整&#xff0c…

【教程】如何实现WordPress网站降级(用于解决插件和主题问题)

在最新可用版本上运行WordPress安装、插件和主题是使用该平台的关键最佳实践。还建议使用最新版本的PHP。但是,在某些情况下,这是不谨慎或不可能的。 如果您发现自己处于这种情况,您可能需要撤消更新并降级您的WordPress网站(或其中的一部分)。幸运的是,有一些方法可用于…

深入浅出Java多线程

系列文章目录 文章目录 系列文章目录前言一、多线程基础概念介绍线程的状态转换图线程的调度一些常见问题 二、Java 中线程的常用方法介绍Java语言对线程的支持Thread常用的方法三、线程初体验(编码示例) 前言 前些天发现了一个巨牛的人工智能学习网站&…

【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口

【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口 文章目录 【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口声明一、标…

scButterfly:单细胞跨模态翻译

技术限制导致了高噪声的多模态数据。尽管已经提出了计算方法来跨模态翻译单细胞数据,但是这些方法的泛化性仍然受到制约。scButterfly是一种基于双重对齐变分自编码器和数据增强方案的多功能单细胞跨模态翻译方法。通过对多个数据集进行全面的实验,证明了…

工业安全智勇较量,赛宁网安工业靶场决胜工业网络攻防对抗新战场

2024年1月30日,工信部发布《工业控制系统网络安全防护指南》(工信部网安〔2024〕14号),围绕安全管理、技术防护、安全运营、责任落实四方面提出安全防护要求,强调聚焦安全薄弱关键环节,强化技术应对策略&am…

大学生社团活动平台系统基于springboot+vue的社团管理系统java项目sprignboot项目

文章目录 大学生社团活动平台一、项目介绍二、部分功能截图三、部分代码展示四、底部获取项目源码(9.9¥带走) 大学生社团活动平台 一、项目介绍 基于springbootvue的前后端分离大学生社团活动平台 系统角色 : 学生、社长、管理员 1、学生…

FENDI CLUB精酿啤酒中原麦汁浓度的高低有何区别?

关于精酿啤酒,有两个关键数据,一个是原麦汁浓度,一个是酒精度。酒精度无非是含酒精的高低,但原麦汁浓度又是什么呢?另外精酿啤酒中原麦汁浓度有高有低,究竟有哪些区别呢? 原麦汁浓度是指啤…

息壤,让全网算力随愿可得

【全球云观察 | 科技热点关注】 当下的AIGC时代,算力领域面临的最大挑战是什么? 对于这个问题,仁者见仁,智者见智。但答案中最吸引业界眼球的莫过于,算力调度。为什么呢? 「因时而生」&#xf…

2006NOIP普及组真题 4. 数列

线上OJ: 【06NOIP普及组】数列 思考: 这道题大概率是一道可以使用“瞪眼法”找到规律的题目。我们尝试把数据补充的更多,以便于寻找规律 当 k3 时,k的幂次为1, 3, 9, 27, 81… 从上述推理中,我们发现要输出的幂次和中…