映宇宙:多基础设施下,如何进行数据库选型升级|OceanBase 《DB大咖说》(五)

news2024/10/5 16:31:38

随着多基础设施成为行业发展的主流趋势,数据库选型时需要考虑哪些关键因素?对于云数据库的升级策略,又该如何制定?OceanBase《DB 大咖说》第五期特别邀请了映宇宙(原映客)的数据库负责人赵智博先生,做为一位资深的DBA专家,在数据库运维方面有超过 10 年的经验,他将分享他在此领域的丰富经验。

2022 年 6 月,映客宣布更名为「映宇宙」,英文名 Inkeverse 是 Inke 与Metaverse的结合,体现了集团全新战略方向:进一步走向海外,将现有产品矩阵和元宇宙相结合,进行社交升级打造覆盖更多场景的多维互动社交体系。在全新的业务规划下,23年 4 月份,映宇宙开始对国内、国外所使用的数据库进行全面升级,赵智博是该项目主要的技术负责人之一。

1702026181

赵智博在 2023 OceanBase 产品发布会进行分享

随着映宇宙业务种类的多元化和经营范围的不断扩展,业务对后台系统提出了更高的要求。数据库作为后台系统的核心软件,面临越来越大的挑战,对数据库进行升级和替换由此进入了映宇宙管理者的议事日程。

一、成本不断攀升,数据库面临升级需求

作为一家互联网企业,映宇宙的系统基本都搭建在云上。由于不同业务有着不同的需求,映宇宙与多个云服务商开展合作。比如,在国内市场有阿里云、腾讯云、火山引擎云,在国外则有 AWS 和谷歌云等。

映宇宙在数据库的部署上也非常多样化,包括 MySQL、MongoDB、Redis、ClickHouse 数据仓库等等。多样化的选择使得技术栈变得复杂,成本攀升的同时,也给映宇宙的数据库运维带来了巨大挑战。

映宇宙国内业务系统的 MySQL 有数十套之多,先后部署了 10 多个集群,有 2000 多个实例。由于业务种类多,选择的 MySQL 服务的模式也有各有不同,有购买云服务器实例后自建的,也有选择云服务商的 RDS 版本。随着业务的增长,成本上升很快。特别是,一些业务(如直播业务)涉及资金的交易,需要高可用、高稳定,因而选择的是金融级 MySQL 的 RDS,其成本也就比普通 RDS 贵得多。

“直播业务是我们的核心业务,所使用的 MySQL 数据库集群规模比较大,对服务的稳定要求比较高,因此选了金融级的数据库云服务。”映宇宙数据库负责人赵智博说。

而社交类产品数据库面临的挑战又有不同。社交类业务对可用性、稳定性容忍度要高一些,普通 MySQL RDS 也可以满足需求,但这类业务数据量非常大,存储成本很高。同时,数据量太大还导致数据搜索和读取变慢,影响到了用户体验,集团只得单独购买了数据库实例用作只读节点,成本也相应地增加了。

在海外市场,映宇宙还面临着数据库的技术支持问题。由于映宇宙研发团队在国内,与国外的数据库技术支持团队之间的沟通不太方便。如果有问题,只能通过邮件或者电话来解决,响应的及时性和国内有不小的区别。同时,还有扩缩容的延迟问题,映宇宙的业务流量变化很快,扩缩容很频繁,而国外的数据库每次扩缩容会有 10 秒以上的延迟,而且成本也明显更高。

另外,映宇宙同时面对多个云服务商,不同的数据库分散了运维、升级精力。搭建统一的数据库,简化软件栈,实现统一的监控和运维,这也是映宇宙希望实现的目标。

二、稳定、低TCO、不挑基础设施,敲定 OceanBase

“既要满足海量数据的管理需求,并且成本降低,还要能满足高稳定、高可靠、统一运维,这是映宇宙对数据库的总体要求。”赵智博说。基于这样的要求公司从去年开始考察和评估各种数据库,并为此做了大量调研和测试,直到今年4月份才最后敲定 OceanBase。 

赵智博介绍说,选择 OceanBase 首先一个原因是 OceanBase 有很厚的技术积淀,已经有很多的成功案例,要比其他数据库更让人放心。因此,一直在关注它。早在 OceanBase 宣布开源时,映宇宙就在内部开始试用,还专门进行过压测,并和同类产品进行过对比,OceanBase 的表现都令他们很满意。

当然,真正决定要选 OceanBase 的原因还是在于 OceanBase 稳定性更好,同时能明显降低使用成本。

OceanBase 是分布式数据库,其分布式架构、多副本的特性使其可靠性和可用性都能得到很好的保证,不需额外支付费用就具备金融级 MySQL 的高可靠和高可用性,从而在成本上可以得到节约。同时,OceanBase 的分布式架构中可以很简单地增加节点,而无需单独购买只读节点,简化了运维,成本上也降低了40%-50%。

存储空间上的节省也是映宇宙非常认可的。集团的社交类业务面对海量的用户,数据量非常惊人,成本压力很大,而 OceanBase 在数据存储上采用了专门的压缩技术,最多能节约 2/3 的存储空间,成本优势非常明显。

另外,OceanBase 的云服务——OB Cloud 云数据库在阿里云、腾讯云和国外的 AWS 等主流云上都有部署。这就意味着,可以获得更简便、直接、统一的运维、管理、升级体验。“选择 OceanBase 可以在多基础设施架构下实现统一的技术栈,这也是我们最后选 OceanBase 的一个很重要的因素。”赵智博表示。

三、精心规划,顺利迁移

要真正使用上 OceanBase,还需要获得公司业务线的支持。要做到这一步并不容易,因为业务部门与运维部门视角有些不一样。赵智博介绍,虽然尽快降低成本、提高稳定性对业务部门也有吸引力,但业务部门其实更关心稳定性,这是进行一切操作的前提。

“毕竟,OceanBase 是一个新生事物,虽然我们对它比较熟悉,但业务线不一定熟悉,因而会有担心、会不信任,不同意也是可以理解的。”赵智博表示。

赵智博说,需要尽可能做好准备工作,包括充分验证和测试,然后从相对边缘的业务开始,逐步让业务线建立起对新的数据库的信心。

比如,映宇宙早在去年 9 月的时候就开始试用 OceanBase,当时 OceanBase 还是 3.2 版本。例如有一个实例上的单表超过 60 万行,采用 OceanBase 后对内存的需求甚至超过了原来的 MySQL。一直等到今年 4 月份,OceanBase出新版,经过验证对一个实例上的单表支持能力超过 100 万,才准备真正迁移。后来,在迁移时和业务部门商量,对大表进行了归档,将表规模控制在 12 万行。

经过确认OceanBase在功能和性能方面都符合映宇宙的需求之后,下一步就是制订迁移规划。

赵智博介绍,在迁移前他们会进行仔细地调研和规划。因为 OB Cloud 是按节点来申请的,价格根据核心数量、内存和存储大小而有不同。比如,OceanBase 最常用的节点规格为 8c,而很少有一个数据库就能跑满一个实例,因此需要规划哪几个数据库共用这一个实例。

为了充分利用资源,同时确保稳定性,在规划中还要尽量让业务量大的和业务量小搭配,以避免资源的争抢。另外,迁移之后,还需要进行两个数据库双跑一段时间,只有确认数据没有问题才算正式完成迁移。所有这些都需要提前规划。

不过,对于常见的因数据库的更换需要对应用程序改造这个挑战,在映宇宙没有成为太大的问题。映宇宙的核心业务所使用的 MySQL 5.6 版本,而 OceanBase 在这个 MySQL 版本的兼容上做得非常好,映宇宙绝大部分应用程序只需要更改下SQL Model 就可以非常平滑地迁移过来。

赵智博说,这与映宇宙在研发上有着相对规范的开发要求和发布流程有一定关系。在公司内部,对与数据库有关的 SQL 语句编写有明确的规范,避免采用数据库专有的特色能力和函数,否则无法上线发布,目的就是尽量减少后期因数据库变更要改写程序。

当然,对于数据库更换这么重大的一个工程,麻烦总还是会有的。赵智博介绍说,麻烦主要是在后期的运营中。比如,曾发生过由于数据库中的某些逻辑判断不合理,引发读放大,从而导致只读节点响应延迟,但后来 OceanBase 做了紧急修复很快解决了,还有系统参数的调优以及多版本的验证等问题也都在 OceanBase 技术人员的帮助下迅速得到解决。

由于前期准备充分,整个项目进展得很顺利,从今年 4 月份映宇宙开始真正开始着手进行多个系统数据库的迁移,借助 OceanBase 的数据迁移工具 OMS 和运维管理工具 OCP,今年 5 月份,映宇宙国内的数据库系统已经基本完成,国外由于产品线相对复杂,还在稳步推进之中。迁移后,目前所有业务系统运行稳定,成本和性能相比之前均有明显提升。

随着数据库迁移工作的顺利推进,赵智博开始把关注点落到 OceanBase 数据库功能的利用上。赵智博表示,Serverless 是他很感兴趣的方面之一。由于映宇宙的业务具有明显的波峰波谷特性,尤其是直播业务,时常因某个明星或者某个热点而爆火,从而形成很大的瞬时压力。这种业务特征非常适合采用 Serverless,因此,他也正在评估和学习,希望为映宇宙引入Serverless 做好准备。

写在最后:

《DB大咖说》是一档立足数据库领域,关注职业成长与前沿趋势,主要面向架构师、CTO/CIO、DBA、业务负责人、CEO 等推出的原创栏目。我们初衷是围绕数据库领域的职业发展、趋势洞察、选型实践等话题,邀请领先企业的实干者、数据库领域的资深专家,从自身的职场积淀出发,结合所见所闻所思所感,输出一些对行业有价值的优质内容和职场方法论。

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

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

相关文章

DENet:融合全局与局部,多模块策略,超越传统分割方法,提升青光眼筛查精度

DENet:融合全局与局部,多模块策略,超越传统分割方法,提升青光眼筛查精度 提出背景精细拆解A. 全局视网膜图像层面B. 视盘区域层面 提出背景 论文:https://arxiv.org/pdf/1805.07549 代码:https://github.…

使用mysqldump迁移MySQL数据

将Windows系统中MySQL数据导出到其他系统中MySQL数据库中 1.导出数据 进入MySQL安装目录的bin目录下,打开dos窗口执行以下命令 --single-transaction 参数表示不锁表 1.1 指定部分表导出 mysqldump -u用户名 -p密码 数据库名 表1 表2 表3 --single-transact…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:测控巡检智能机器人

是集研发、生产、制造、销售为一体的高新技术企业,是国内"皮带机智能巡检"领域的技术引领者。公司先后获得国家级高新技术企业、太原市市级企业技术中心、太原市技术创新示范企业、山西省民营科技企业、山西省专精特新中小企业、山西省四新中小企业、太原…

【经验分享】搭建电商项目过程中关于淘宝APP商品数据采集的要点

淘宝APP商品采集的注意事项和应用可以归纳为以下几点: 注意事项: 遵守平台规则: 在进行淘宝商品采集时,务必遵守淘宝平台的相关规则,不得采集敏感信息,如用户隐私、商家敏感数据等。尊重商家权益&#xf…

PMP考试技巧和PMP考试大纲

今日分享PMP考试技巧,文末附上PMP考试大纲,你会喜欢的! PMP考试大纲:人员试题占比42% ,流程试题占比50%,商业环境试题占比8%。 PMP解题策略 PMP考试默认条件 精准审题 E(Eye):找到题眼; K(Key):找到考…

ui自动化中,selenium进行元素定位,以及CSS,xpath定位总结

几种定位方式 简单代码 from selenium import webdriver import time# 创建浏览器驱动对象 from selenium.webdriver.common.by import Bydriver webdriver.Chrome() # 参数写浏览器驱动文件的路径,若配置到环境变量就不用写了 # 访问网址 driver.get…

视频大模型 Vidu 支持音视频合成;字节跳动推出语音生成模型 Seed-TTS 丨 RTE 开发者日报 Vol.221

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

618什么数码好物值得入手?优质数码清单分享,错过等明年!

在到来的618年中大促,各种数码好物竞相亮相,正是您更新装备、升级体验的黄金时刻,在这个购物的狂欢节里,我们特别为大家准备了一份精选的优质数码清单,帮助大家从海量的选择中筛选出真正值得入手的宝贝,这些…

问题:与十六进制数AB等值的二进制数是()。 #其他#经验分享

问题:与十六进制数AB等值的二进制数是()。 A.10101011 B.10011010 C.10101010 D.11011100 参考答案如图所示

CSS实现3个圆点加载动画

加载动画主要使用了css的animation和transform属性&#xff0c;animation用来实现动画效果&#xff0c;transform实现过渡&#xff0c;让动画看起来更真实 一、html <div class"loadding-box"><div class"dot1"></div><div class&qu…

根据AgentLego 搭建多工具智能体

操作目的和工具介绍 操作目的&#xff1a; 本操作文档旨在指导用户如何使用 AgentLego 进行智能体构建。AgentLego 是一个开源的智能体算法库&#xff0c;它提供了一系列工具和接口&#xff0c;使开发者能够轻松地构建和部署智能体。 工具介绍&#xff1a; AgentLego 支持直接…

【ARM Cache 系列文章 1.2 -- Data Cache 和 Unified Cache 的详细介绍】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Data Cache and Unified Cache数据缓存 (Data Cache)统一缓存 (Unified Cache)数据缓存与统一缓存的比较总结 Data Cache and Unified Cache 在 ARM架构中&#xff0c;缓存&#xff08…

让编程变得更加直观与高效 “JAVA图形化编程”官网上线!

公测预约开启 我们历经了长达三年的时光&#xff0c;执着地坚守并潜心地进行探索&#xff0c;始终怀着一颗敬畏的心&#xff0c;最终极为谨慎地推出了这款图形化编程桌面。它能够使得业务与程序清晰明了地呈现&#xff0c;而且还能与传统的低零代码平台实现紧密…

SpringBoot+Vue在线文档管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 系统角色对应功能 员工管理员 系统功能截图

基于Python+django购物商城系统设计和实现(源码+LW+部署文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

Linux 性能优化基础

文章目录 常见指标分类&#xff08;USE法&#xff09;常见性能工具CPU性能工具内存性能工具文件系统和磁盘I/O性能工具网络性能工具 根据指标找工具CPU性能内存性能文件系统和磁盘I/O网络性能 根据工具找指标CPU性能内存性能文件系统和磁盘I/O网络性能 CPU性能分析一般步骤内存…

OceanMind海睿思受邀参加 “走进海陵药业”研习交流,探索药企运营孪生新思路

近日&#xff0c;OceanMind海睿思受邀参加由江苏省企业信息化协会&#xff08;以下简称“苏信会”&#xff09;主办的“走进扬子江药业集团南京海陵药业有限公司”研习交流活动。 海睿思与金陵药业、精华制药、江苏爱朋医疗、江苏艾津、南京威尔药业、药大制药、中国中药控股、…

鸢尾花分类和手写数字识别(K近邻)

鸢尾花分类 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split import pandas as pd import mglearn# 加载鸢尾花数据集 iris load_iris() X_train, X_test, y_train, y_test train_test_split(iris.data,iris.target,test_siz…

指挥中心操作台厂家的优势有哪些

指挥中心操作台厂家的优势众多&#xff0c;它们以专业的技术、优质的产品和全面的服务&#xff0c;满足了各行各业对高效、安全、稳定指挥中心的需求。以下将从几个方面详细阐述指挥中心操作台厂家的优势。 指挥中心操作台厂家具备强大的研发实力。这些厂家通常拥有专业的研发团…

作为工程师的我,假装我很忙~(摸鱼软件推荐)

引言 最近IT行业内及&#xff08;几&#xff09;精&#xff08;经&#xff09;美&#xff08;内&#xff09;康&#xff08;扛&#xff09;&#xff0c;多次内卷&#xff0c;造就了假装勤奋&#xff08;忙碌&#xff09;的假象。 为此&#xff0c;我推荐各位技术大佬&#xf…