oceanbase 为我们带来了什么——宁德时代数据库的降本增效之路-c7电子娱乐
本文为宁德时代投稿。
宁德时代新能源科技股份有限公司(contemporary amperex technology co., ltd.),简称宁德时代,成立于2011年,是全球领先的新能源创新科技公司,致力于为全球新能源应用提供一流的c7电子娱乐的解决方案和服务。公司总部位于福建省宁德市,并在全球设立了六大研发中心和十三大电池生产制造基地。宁德时代的主营业务包括动力电池、储能电池和电池回收利用产品的研发、生产和销售。公司核心技术覆盖动力和储能电池领域的材料、电芯、电池系统、电池回收二次利用等全产业链研发及制造能力。
近年来,随着业务的快速增长,宁德时代数据库规模增长了十几倍,靠传统的运维方式,难以支撑如此多的业务,因此,在调研后引入了oceanbase数据库及其自动化运维方式。
mysql运维之路艰辛
随着微服务框架的使用,小应用越来越多,数据库实例数量呈指数级增长,日常运维压力大,也遇到了很多问题。
mysql主从延时。业务系统中的一些大事务,经常导致mysql的同步出错或延时很高,在这种情况下,容灾基本上是无效的,甚至会导致系统停服。
mysql难以扩展。在业务高速发展时期,数据库的qps、tps、容量等不断增加,然而单台服务器的配置有限,不可能无限满足业务。当资源达到瓶颈时也考虑分库分表的方案,但对于业务侧来说,改造成本较高;对dba来说,运维成本增加。并且分库分表的方案也无法完全应对合表做报表分析的场景,对业务有损。
mysql ddl变更痛苦。当业务需要发版,做表结构改造时,mysql 5.7支持的online ddl类型有限,借用其他开源工具则耗时较久。
mysql 运维管控难。面对数据库实例数量几十倍的增长,运维人力严重不足,奈何难以招到匹配的人才,只能从自动化运维方向入手,将尽可能多的运维操作都标准化、自动化,比如交付、扩容、切换、权限校验、审计、sql审核等。即便如此,在某些场景下,mysql也不能满足预期,比如数据库监控问题,当某个业务系统使用数据库有抖动等问题时,找不到历史监控数据,无法定位根因。另外,mysql没有原生慢sql监控,只能挨个从数据库实例收集,然后再逐条分析语句,如果应用达到成百上千个,要完成收集任务需要工作会非常巨大。
分布式数据库选型
基于上述mysql的痛点,宁德时代开始寻找新的数据库来解决这些问题,最终选择oceanbase,主要看中了如下几个方面的能力。
第一,高度兼容mysql。宁德时代现在使用的微服务架构,几乎都搭建在mysql之上,在替换数据库过程中,希望尽量减少应用改造工作量,并且能支持以往在mysql的用法,满足业务需求,否则数据库的迁移工作难以进行下去。oceanbase兼容mysql大部分语法,便于顺利迁移。
第二,高性能、高扩展性。mysql在宁德时代的业务系统中主要支撑tp在线业务,很多业务系统对于数据库的响应时间较为敏感,一个接口整体时延要求可能都在毫秒级别。因此,在改造过程中,如果有接口与原先的mysql相比波动超过几十、上百毫秒,基本都要做优化。从实际的测试结果来看,oceanbase能满足业务的性能要求。另外,当单台机器资源达到瓶颈以后,可以利用oceanbase的分布式能力,直接加机器扩展集群,资源上限从此不再是问题。
第三,高可用能力强,oceanbase基于paxos协议的三副本高可用,满足了少数副本故障情况下rto<8s,rpo=0。业务侧无需担心主从延迟以后,网络抖动误切换导致丢数据的问题,数据库可用性提升了一个级别。
第四,多租户及资源隔离。在人力与数据库实例数量不匹配的情况下,最好每个业务在oceanbase中单独一个租户,通过一个集群设置几十、上百租户的方法,将业务使用的数据库集群数量降下来,从而减少dba的运维工作量。通过这种方式,原来成百上千的mysql实例,直接被压缩成几十个oceanbase集群。
第五,运维简单。oceanbase有丰富的周边生态工具,比如ocp、odc、oms、oma等。通过ocp管理oceanbase业务集群,不再需要手动做自动化运维开发,ocp满足了日常的运维需求。最常用的如集群运行过程中的性能监控、sql诊断能力;集群如果出现故障,也有配套的监控告警,备份恢复、集群部署删除等也全部支持。而oms则满足从mysql到oceanbase的数据迁移,一站式的迁移方案,还有反向增量的回滚方案,在应用迁移过程中省心省力。值得一提的是,宁德时代也打通了各个工具的单点登录、权限控制能力,满足内部的安全管控要求。
应用快速迁移
从2024年3月到11月,宁德时代将mysql数据库大量迁移到oceanbase集群,计算存储资源节省30%左右。
在oceanbase丰富的工具体系的配合下,c7电子娱乐的解决方案变得非常周全:oma负责迁移前的兼容性评估和性能压测;oms负责数据的迁移和故障无损回退;ocp负责迁移后系统的监控和性能优化建议;odc管控数据权限,阻止了非授权变更和敏感数据的泄露。
未来展望
到目前为止,宁德时代使用oceanbase将近一年,打开了某些系统的高并发和大数据量导致的性能瓶颈,为业务发展提供了强力支撑。此外,提升了dba的运维效率,大量mysql迁移到oceanbase后,运维侧表示“没那么忙了”。开发和项目组每天都可以收到慢sql的清单,系统的性能和用户体验也在不断上升。相信后续完成100%应用迁移至oceanbase后,运维侧、开发侧能够获得更多便利性和技术成效,从而更好地助力业务。
2024年10月23日,oceanbase发布了面向tp场景的长期支持版本oceanbase 4.2.5和面向ap场景的ga版本,在kv、向量等方面的功能也不断增强。宁德时代将在2025年的新业务场景中探索oceanbase新版本的能力,满足持久化存储需求,以及统一架构降低运维成本。