解读MySQL DB Mesh的创造性实践(下)
极客时间编辑部
讲述:丁婵大小:2.35M时长:05:09
传统的 IT 流程、基础架构和运维模式已经无法满足金融行业的业务发展需求,传统银行早已意识到转型的迫切性,但如何落地,其实对银行的智慧挑战很大。上一篇文章分享了飞贷的数据库生产容器化及 Istio 应用的实践。本文继续来看飞贷 MySQL 容器化 DB Mesh 的创造性实践。
从应用层来看,飞贷容器化发展得很好,但是数据库仍然存在很多问题。如果数据库中断,重新恢复数据库和业务生产需要花很长时间。如果数据库非常大,那么启动时间会非常久。这就是为什么银行或大型金融机构不敢用开源数据库 MySQL 或 MongoDB 等的原因,因为他们要保证安全和持续运作。
飞贷要做数据库容器化的原因,一是为了要实现标准化快速部署。如果应用快速部署完,但数据库部署慢,那么系统的整体效率还是慢。二是飞贷现有系统已经全部实现微服务化,在这种场景下数据库实例如果不能做微服务,它就会成为业务弹性伸缩以及管理的短板。三是为了更长远的目标,就是真正实现网格化(DB Mesh)。
MySQL 容器化 DB Mesh 架构如下图所示。可以看到,多个不同应用服务对应多个不同的中间件,每个中间件对应一个单独的数据库节点,形成一种类似于 Service Mesh 的 DB Mesh 架构,可以灵活调度迁移数据库节点。为了数据库容器化稳定,对业务数据实现分库分表存储,并限制单个分库节点的容量。在数据库遭遇故障时,可以多节点并行迅速恢复。可以说,飞贷在整体业务运作上拥有强大的数据分库分表、读写分离的技术能力,这些能力是由飞贷自研中间件完成的,中间件是实现 MySQL DB Mesh 的关键所在。
飞贷不是第一个做数据库容器化的公司,之前一些公司也尝试过,但都失败了。飞贷做数据库容器化可借鉴的一些思路是:
1. 限制 DB 的容量
只有单个 DB 容量进行限制,有了标准,才能够快速部署交付。但是对于银行和一些传统金融机构,一般采用 Oracle 数据库,数据全部堆在那儿,就很难做数据库的容器化,因为“牵一发而动全身”,如果改变数据库,那势必上层就要做很多的调整,这是数据库容器化的难点之一。
2. 结合中间件演化 DB Mesh
飞贷在数据库容器化实践中,通过自研中间件,一个中间件对应一个 DB,下面对应不同的服务。在数据处理上,中间件可以让数据存储变得简单可控,这是数据库容器化的核心,形成一个类似 Service Mesh 的 DB Mesh 架构,DB 与 Service 解耦,使得 DB 的弹性调度非常灵活。
3. 改变传统的思维模式
飞贷做数据库容器化,整套体系用于服务生产环境上的一切应用。但其实这套体系不利于分析和报表,因为做了很多分库,那么在做数据分析和报表的时候效率会非常低。陈定玮和团队想到了解决方案——用大数据做分析,把所有的报表、分析等文献,全部实时同步到大数据去,让大数据来处理。这样既保证了 B 端客户的处理数据的秒级体验,又能快速高效地做数据分析。
MySQL 容器化,透过 Istio 生成可视化图形界面,可以去做自动追踪,判断库的健康状况。但也存在一个问题,当数据库中断,再把它恢复的时候,Istio 追踪服务就不见了,需要手工注入。陈定玮提到,“这个问题我们进行了研究,没有找到很好的解决方案,可能还是要手工去处理一下,没有办法做到自动恢复。但是在应用与服务管理这部分,飞贷已经做到了完全自动化的 Istio 注入,实现了微服务访问、安全加固、控制、观察、服务追踪、限速、熔断、调度、负载等。”
飞贷做容器化平台以后,生产力得到了极大地提升:80% 的基础运维实现自动化;交付能力大幅提升,实现极致弹性容器化调度、灰度升级、预发布、蓝绿部署、持续交付。在安全 / 敏捷 / 高效率上,实现业务数据全量备份分钟级;在灾难故障方面,业务应用一键恢复分钟级;数据快照秒级;资源利用率提升 10 倍,数据库交付能力也提升了百倍。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 加菲猫大型金融机构不敢用开源MySQL或MongoDB等数据库关键是考虑安全性与稳定性;Service Mesh,DB Mesh中的service和db关键在于中间件,对于一些复杂的交易N个service和N个DB才能完成一次交易,如果只保证事务的最终一致性,很多金融业务需要重新定义,Istio从技术上可以解决微服务的链路追踪,熔断,蓝绿部署等,解决不了实际的业务领域问题1
收起评论