OceanBase开源200天,携程等50家用户深度实践

早在“第十二届数据库技术大会”上,OceanBase首席技术官杨传辉对外首次公布了OceanBase开源近5个月的成果。“OceanBase开源第1天,社区总访问量超过16万。正式开源140天,OceanBase开源社区共吸引了全球21,300多位社区用户。”

时间仅过去三个月不到,1月6日上午,OceanBase CEO杨冰在DC2021分布式数据库开发者大会上首次对外披露其关键营收信息。“过去一年,OceanBase的客户数实现翻倍达到400多家,其中来自非金融类客户的营收占比超过三成。”

作为企业级原生分布式数据库代表,OceanBase在过去一年中快速发展,目前已经深入到各行各业。近日携程在 OceanBase 社区版的探索,更是堪称开源范本。

携程如何进行OceanBase自动化部署?

我们都知道,OBD是 OceanBase 开源软件的安装部署工具,同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。一开始,携程也是利用 OceanBase 开发的 OBD 组件快速进行了部署,由于业务需要非常灵活的运维操作,比如需要扩容 OBServer 时,该操作需要通过命令行执行 ALTER 语句实现,暂不支持通过 OBD 来完成集群扩容,同时综合业务自身需求。

在进行了一番思考后,携程选择了基于 OBD 自动化工具进行二次开发,形成符合业务需求的部署方案,基于两个方面的考虑:开发语言易上手,二次开发成本低。OBD 工具是Python 写的程序,源码简单易懂,可以直接调试源码并进行二次开发自动化部署程序,大大降低了 OceanBase 运维嵌入携程平台的难度,融入个性化设置。

将MySQL实例迁移,携程是如何做到的?

进行了自动化部署还只是第一步,但想要将OceanBase 社区版方案来替换原有 MySQL 方案,难度可不小。对此,携程做了四点准备:集群架构设计、迁移准备工作(包括兼容性测试、业务模式评估、回退方案等)、应用迁移以及性能优化。

在OceanBase 架构的设计中,携程是根据自身 IDC 机房的部署,匹配了适用 OceanBase 的架构设计。OceanBase 在携程的部署架构如下,当前是一地三中心部署方案:在迁移准备工作中,携程相继进行了SQL 事务兼容性测试、对 MySQL 实例特点和业务模式进行分析、分区表结构改造、回退方案“四步走”。

最后如何实现应用安全并且平滑的从 MySQL 转到 OceanBase?携程也做了很多工作和预案。比如,OceanBase 的连接串有租户的配置,那么用 MySQL 的账号直接访问 OceanBase 是不行的,需要提前在 MySQL 创建一个带租户的账号, uapp@tt01权限和之前的账号一样,只要修改应用的连接串配置,开发无需重新发布,后续将连接数据库的配置直接切换到 OceanBase,几乎可以实现完全兼容。只要在迁移前验证确保所有的应用全部使用临时账号,就可以万无一失。

携程的首次开源实践,结果如何?

OceanBase 的异地多机房多写、大促弹性扩容、高可用切换对业务影响小都非常符合携程需求。在使用 OceanBase 方案之后,携程在性能和成本方面也取得了不错的收益:

首先是性能方面,相比 MySQL,OceanBase 方案读性能平均提升 2 倍,写性能平均提升 3 倍,性能提升明显。其次是成本方面,基于数据编码以及存储引擎自带多级压缩技术,使得 OceanBase 方案相比 MySQL 节省 2/3 存储资源,很大程度上降低了硬件成本。

经过此次携程OceanBase开源实践,也意味着国产数据库的开源与服务中小企业口号,不是玩虚的。随着OceanBase与国内众多企业一起共创未来,这将促使100%自主研发的OceanBase进化成何种模样,也是件值得关注的事情。

相关文章