Apache ShardingSphere 企业行|走进 Keep

为进一步了解各家厂商的应用场景与深层次需求,提升企业研发团队在使用 Apache ShardingSphere 的效率,Apache ShardingSphere 社区开启了【走进企业】系列活动。这次,Apache ShardingSphere 来到了位于北京万科时代中心的 Keep 总部,面向 Keep 的研发同学进行了相关技术分享。

Keep 在 2018 年就已经将 ShardingSphere 分库分表、读写分离等能力部署在了多条业务线下的多个应用场景。随着 Apache ShardingSphere 5.0.0 正式版的更新,Database Plus 理念与可插拔架构在一定程度上重塑了 ShardingSphere 生态。2021 年 11 月 23 日,在 Keep 的邀请下,Apache ShardingSphere 核心技术团队来到 Keep 总部所在的万科时代中心,与 Keep 的技术同学展开了深度交流和探讨。

现场,来自 Keep 的工程师们对于 Apache ShardingSphere 此次 5.0 的更新表现出了极大的兴趣。会上,Apache ShardingSphere PMC、SphereEx CTO 潘娟对于 ShardingSphere 设计之初的架构、客户端接入、团队建设以及 Database Plus 理念等做了全面阐述。

(图:SphereEx 联合创始人 & CTO 潘娟)

Database Plus:解放 DBA 和 Developer

Database Plus, 一种分布式数据库系统的设计理念。通过在碎片化的同构或异构数据库之上搭建使用和交互的标准层和生态层,并叠加扩展更多计算能力,例如数据分片、数据加解密等,使得所有应用和数据库之间的交互面向 Database Plus 构建的标准层,从而屏蔽数据库碎片化对上层业务带来的差异化影响。

潘娟认为,推动当前全球数据库行业大爆发,主要以下有两个原因:

  • 业务侧需求

在业务层面,访问量和业务量都是要保证持续增长的,那么底层数据库如何能够在短时间内响应请求?甚至于微服务的拆分,接下来所对应的数据库应该如何调整,也是来自于业务侧的诉求。

  • 运维侧需求

作为 DBA,需要负责运转整个业务和数据系统,包括数据安全、备份、分布式管理、对于数据集群的 API 智能监控等等。

如果能够在中间层结识来自业务的流量,同时如果还能理解这一请求的含义,那就意味着可以对该请求进行自定义修改,进而在这一部分实现更多的操作。因此,我们需要在这两侧的需求中寻找一个平衡点,既能够向上承载业务流量,也能够向下支撑数据库能力建设,从而在两者之间构建起高效的协作生态。

在 5.0 正式版上线后,今天的 Apache ShardingSphere 已经不再以分片功能为核心。相反,分片已经『退化』为 ShardingSphere 完整生态下的次级功能。在 Database Plus 理念的指导下,Apache ShardingSphere 已经完成了可插拔架构生态的初步建设,中间层也进而能够实现更多附加值能力。

(图:ShardingSphere Database Plus 架构图)
以数据加解密为例,常规的数据加解密都是在业务层面实现的,因为 MySQL 等数据库本身是不支持加密算法的,因此只能在应用和业务层面来实现。但这样就带来一个问题,即线上业务太过复杂,每一次加解密算法更新都需面向所有业务全面铺开,任务量过于繁重。

因此最好的解决方案是将数据加解密过程压缩到中间层来实现,其中 ShardingSphere-Proxy 能够直接和数据库进行绑定,通过在应用和底层数据库的中间层做映射,利用兼容不同数据库的协议来将自身『伪装』为一款数据库,从而决定这条 SQL 查询能够落到哪个节点,让上层的应用面向 ShardingSphere 来做编程,同时屏蔽底层数据库所带来的影响。在业务发送请求时数据是明文状态,在经过 Proxy 后自动实现数据的加密并能够在取用数据时进行反向解密。

(图:ShardingSphere 加解密能力)

如此一来,ShardingSphere 的加解密体系脱离于应用和数据库的原有体系,能够联动特殊的加密算法,特别是涉及到加密机的情况。此外,诸如加密一类的能力在 ShardingSphere 上,能够极大解放 DBA 和 Developer 的日常工作,使他们能够更加专注于业务本身。


目前,Apache ShardingSphere 已更新 5.0.0 正式版。伴随着此次更新,Apache ShardingSphere 也正式将产品定位转向以 Database Plus 为核心的全新领域。除在数据库上层提供强大的增量能力之外,Database Plus 架构也为开发者和用户开放了高度可扩展的数据库生态,为 Apache ShardingSphere 未来的发展指明了方向。

加入 Apache ShardingSphere GitHub 社区:
https://github.com/apache/shardingsphere

欢迎关注我们的公众号(ShardingSphere),第一时间获取资讯。

京ICP备2021015875号