三维家成立于 2013 年,正值中国经济快速发展的黄金时期,经济的蓬勃成长带动了家装行业的蓬勃发展,三维家的业务也随之高速增长,对数据库的要求也不断提高。
三维家刚成立的时候采用的是某传统集中式数据库。该数据库功能强大,开发人员也熟悉,开发和运维都比较简单,很好地支持了业务发展。但随着公司业务的成长,数据量不断增加,时常需要对数据库进行扩容,扩容成本随之越来越高,压力之下,2017 年三维家把该数据库换成了 MySQL+ 某国产数据库 XDB 的组合。
庄建超是三维家的技术总监,也是三维家最早的技术人员,曾经一个人承担了三维家所有的 IT 工作,从开发到运维。
庄建超解释说,之所以选择 MySQL+ XDB 是由于三维家业务的复杂性。三维家有很多大客户,每个大客户就是一个数据库,客户对数据隔离性有较高要求,所以选择了 MySQL 的分库分表来满足。同时,三维家也存在合库的需求,比如对数据进行统一分析和统计,而 MySQL 可扩展性不够,同时也不支持太复杂的分析需求,所以分析工作就由 XDB 来完成。没有都采用 XDB 主要是成本上的考虑,该数据库节点多导致前期成本较高。
MySQL+XDB 的组合稳定运行了几年,MySQL 负责写,XDB 负责读,一直非常顺利。去年新的问题出现了,更准确地说——是三维家对数据库有了新的要求。
第一,需要支持多基础设施的数据库。此前不止一家云厂商出现过服务中断事故,让三维家对稳定性更为看重。三维家的服务对客户很关键,如果停服将直接影响客户经营。因此,三维家考虑进行多基础设施部署,避免因某云服务中断而影响客户业务。如果继续使用 MySQL 的话,那就要在其他云上再复制一份数据,成本将直接翻倍。
第二,简化运维。MySQL 是用分库分表+中间件来解决数据量大和数据的隔离问题的,然后用 XDB 进行合库来解决数据分析问题。两个数据库之间要做同步,数据流程长,还要借助中间件,技术栈复杂,运维成本随之变高。
第三,云成本持续增长。三维家的业务增长很快,数据量同步增长,成本自然也水涨船高,考虑到未来的可持续发展,三维家对降本增效有了新需求。
基于上面这些考虑,去年三维家决定进行数据库升级,并同步启动新数据库选型。
我们在对 OceanBase 进行评估和测试后,发现功能完全符合要求,同时,OceanBase 对 MySQL 的兼容性非常高,因此很快就敲定了 OceanBase。
庄建超补充说:决策的背后另一个重要原因是对 OceanBase 的信任。因为它经过了支付宝大规模金融场景的打磨,完全自研,多年成长,其稳定性和可靠性经过了很多客户验证,值得信赖。