业务挑战
-
容量瓶颈。经过十年的发展,小米很多业务线单机的存储容量都已经接近饱和。而如果对业务逻辑没有很深的了解,传统的分库分表解决方案,成本是非常高的。
-
高可用挑战。在 MySQL 主从架构下,小米尝试过使用很多方法实现高可用,比如通过 LB + Orchestrator + 中间件的方案来解决,但如果午夜主库挂了,可能仍然无法及时解决。
-
高写入挑战。传统的 MySQL 主从架构,只能写到主库上,很容易达到瓶颈,这会带来非常强的主从延迟,进而带来一致性问题,这对很多业务来说是一个灾难。
-
历史包袱。小米十年发展以来,内部有各种各样的解决方案去适应业务规模的增长,但都各有优劣。例如,小米曾开源过一个支持分库分表的中间件 Gaea。除此之外,内部还有其他的中间件,方案非常多,但都分散在各个业务线。一旦相关人员有变动,就会变得难以维护。
解决方案
经过对 TiDB 的了解与测试,2020 年 9 月 ,小米云平台部门的数据库与存储团队正式启动了 TiDB 项目,并在2021 年 1 月,完成了包括部署、监控、告警、工单等基础能力的建设,构建了一个类似于 DBaaS 的平台,在小米内部的私有云正式上线,对接各项业务提供数据服务。
TiDB 在小米内部的发展非常迅速,仅仅到 2021年 7 月份,TiDB 在小米已经部署了 20 多个集群,TiDB 节点达到 80+,TiKV 节点也达到了 100+,业务场景覆盖电商、供应链、大数据等等。
很多业务在看到 TiDB 较强的可扩展性后,在遇到存储瓶颈时,都很愿意迁移接入 TiDB 。小米也充分利用后发优势,直接引入了大量生态产品,如 BR、TiCDC、TiUP、DM 等等,极大地减小了运维成本,促进了产品的快速发展。
在使用 TiDB 的过程中,小米团队并没有仅仅把自己当做产品的用户,还向 TiDB 的多个生态产品提了许多 patch,成为 Dumpling、BR、TiCDC、TiUP 等产品的 contributor,以及 TiDB 的 active contributor,为 TiDB 生态提供持续贡献,反哺社区,完善生态。
未来,小米还将和 TiDB 社区进行深度合作,共同推进混合多云战略,推进核心业务从 MySQL 向 TiDB 迁移。
业务收益
- 通过引入 TiDB ,小米轻松解决了业务线单机存储容量问题;
- 作为一个分布式数据库,TiDB 很好地解决了多点写入的问题;
- TiDB 社区支持非常友好,文档非常完善,这使得小米的接入非常快速;
- TiDB 拥有完善的数据库周边生态,大大降低了小米运维的成本;
- TiDB 在跨机房、多机房容灾等方面表现优秀,利于建设异地容灾业务架构;
- 通过 TiDB 新推出的透明数据加密特性(Transparent Data Encryption,简称 TDE),小米在风控隐私集群中极大简化了业务逻辑。
客户简介
行业:零售与电商
小米集团是一家以智能手机、智能硬件和 loT 平台为核心的消费电子及智能制造公司。2021 年全球市场占有率达到全球第二位。2020 年小米智能手机全球出货量为 1.46 亿台。截止 2021 年 3 月 31日, AloT 平台已连接的 loT 设备(不包括智能手机及笔记本电脑)数量达到约 3.75 亿台。