首批通过分布式安全可靠测评,为关键业务系统打造
替换 MySQL 分库分表架构,探索成本效益最优
- 5.7-15.3倍存储压缩比
- 80%总资源节省
- 10倍SQL 性能提升
OceanBase在vivo互联网的应用
杜霆-vivo 互联网存储运维负责人
杜霆vivo 互联网存储运维负责人
王翔vivo 数据库工程师
鄢楠vivo体系与流程IT部DBA组总监
2023-11-10
杜霆vivo互联网存储运维负责人
Xu Shaohuivivo 互联网数据库团队
一、业务背景
vivo 整体上使用的数据库种类繁多,约有 1000+ 主机,涉及 15 种数据库,还有数据同步工具需要维护。此外,还有多区域多云的特性,包括东莞机房自建、海外使用阿里云、AWS RDS 数据库。
使用数据库的方式也比较复杂。例如,在一个业务中同时使用 MySQL 主从和MySQL MGR,如果涉及读写分离,还要分别叠加 Proxy 使用,数据库的多种类和架构的复杂性给运维团队带来了较大压力,因此开始探索是否有更优的数据库方案。
二、业务挑战
- 分库分表无法满足业务需求
- 产销存的线下业务数据量较大,vivo 各省业务系统的数据量并不一致,比如广东省的业务量比较大,一个门店的业务系统,最大的数据库为 2TB,大省份会独立个库,小省份会共库,但是所有省份又有整合数据的需求。
- 整个业务系统采用分库分表架构,在查询场景,通过将各库数据聚合起来,难以保证查询的实时性和准确性。复杂查询或大数据量查询时,也会导致性能下降。
- 资源利用率低,成本高
- RDS 成本高,资源利用率低:最贵的 CPU 资源利用率较低,平均 CPU 利用率不足 5%,CPU 峰值的平均值也不到 20%;磁盘和 I/O 资源利用率也偏低。在 AWS 中,存储类型和 IOPS 有绑定关系,每个系统都按未来最大规格去分配资源,系统资源的峰值时间节点也不一样,导致资源浪费。
- 数据库扩展能力不足
- MySQL 数据库的可扩展性有限,依赖于分库分表进行水平扩容,带来开发运维复杂度,对于需要分布式数据库解决方案的场景不够理想。
三、解决方案
- 错峰超卖,提升资源利用率
- 从硬件方面考虑,OceanBase 的降本优势在于超卖,各系统错峰使用超分资源,不同租户之间的弹性可以分时复用,提升资源利用率。
- 假设对应以下三个系统,高峰期使用的资源都需要 4C8G。
- ● 如果使用 MySQL,需要为三个业务系统都分配 3 个 4C8G 规格的资源;
- ● 如果使用 OceanBase,只需要分配三个 1C8G 的租户,余 3 个CPU 资源可以共享。
- 另外,如果开启 OceanBase 的读写分离特性,CPU 资源还能进一步充分利用。
- 高压缩比高性能,降低资源成本
- OceanBase 基于 LSM-Tree 架构的存储引擎和数据压缩比为企业降低存储与硬件成本提供了更多可能。MySQL 的数据压缩依赖于操作系统文件系统,相较之下,OceanBase 的数据压缩比是 MySQL 的 6~7 倍。
- 完善生态工具,运维提效
- OCP管理平台提供了便利的部署、升级、监控、备份恢复等运维手段,一站式管理所有OceanBase集群,简化运维操作;
- OMS迁移平台提供了便利的数据迁移方案,支持全量、增量、反向同步等多种模式,便于业务方迁移迁出数据,包括前期的测试和后续的回退。
四、客户收益
目前,vivo 已经上线 17 个业务系统,包括日志类、分析类、交易类等,存储压缩比达到 5.7-15.3 倍,总资源节省 80 %,SQL 性能提升 10倍+。
- 显著节省总资源
- 原有核心产销存业务系统架构为分库分表,以每个省份数据量切分,大省份会独立个库,小省份会共库;另将需要汇总查询的数据通过 DTS 汇总在一起;总计主机台数为 20 台,数据约 4.5T。在上线 OceanBase 后,整合后的资源为 12C,20G 租户规格,并开启读写分离,数据约 600GB,总资源节省 80%
- 提升查询准确性和实时性
- 此前,整个业务系统采用分库分表架构,在查询场景,通过将各库数据聚合起来,难以保证查询的实时性和准确性。经过对 OceanBase 的性能测试,将汇总库和全国十余个分库合并为一个独立的 OceanBase 库,满足原来的跨库查询需求,较好地满足业务需求
- 简化重复工作,运维提效
- 生态工具对 DBA 而言是减负和提效的利器,MySQL 依赖自行开发,OceanBase 有 ODC、OCP、OMS 等自行开发的工具,可以支持开发自助 SQL 审核、数据执行、数据归档、数据删除、DDL 等常规繁锁危险的操作,可以协助 DBA 完成监控构建、高可用演练、定位问题、备份恢复、规格扩容、语句审核与执行,以及数据的导入、导出、迁移、同步、清理等。
- 通过 OceanBase 工具的 WEB 界面基本可以完成相关运维工作,其有细粒度权限管控,可以开放相关权限与相关人员自助,进一步简化了 DBA 的重复工作。