近年来关于底层数据库的开源产品越来越多,它们也受到了许多资本的青睐。
伴随着移动互联网催生的数字化场景爆发,云计算、大数据等技术逐渐有了更加广阔的应用场景。在云计算和大数据经过十年的追赶式发展后,不只是传统行业,各家平台自身也在面临转型升级。在这种转折中,数据的使用、应用、场景等都发生了变化。
随着大数据在各领域下的应用不断得到扩张,一个平台上的数据来源、价值、渠道、场景等都得到了分散和细化。以数据库应用为代表的新一代基础设施,在时下所要做的不是专注在某一个种类、场景下的数据收益,而是需要对这些『散乱』的数据进行重构。
从本地私有化到云端,从单点到分布式,数据库领域得到了前所未有的延伸。云上数据库和分布式数据库,也共同构成了当今数据库市场中最热的两条赛道。
而 SphereEx,正是要在这两条赛道上做出更多创新的能力。
SphereEx 联合创始人潘娟认为,数据的价值在于感知和应用,平台只是承载数据的形式。无论传统关系型数据库还是分布式数据库,其连接应用和数据的本质都不会变。关键在于是否能满足具有高并发、大规模数据存储、业务快速扩张等特征的用户业务对数据库的要求。
01 以可插拔架构为切口,探索多源数据的统一管理轨迹
毫无疑问,分布式数据库是当前最火的数据库领域,但传统关系型数据库仍然占据了市场的主流,且由于应用场景的细分,将在未来相当长一段时间保持现在的态势,难以出现数据库大一统的局面。
经过数十年的发展,数据库本身的生态和能力已经十分完善,已经存在很多性能强大的数据库,所分布的场景和领域也已经十分垂直。在数据库选型方面,围绕业务重心来选择最适配的数据库产品,已经成为技术团队中非常重要的一项工作。
不过,关系型数据库仍然是全球的主流。近日,DB-Engines 发布了 2021 年 8 月份的数据库排名,Oracle、MySQL、SQLServer 依然排在前三位,关系型数据库依然拥有庞大的用户生态和强大的话语权。不过关系型数据库在“可扩展性、高并发以及性能”方面,存在非常多的问题,比如:传统的关系型数据库以及二维关系模型,很难高效地扩展到多个存储节点上。
在这种背景下,传统关系型数据库难以支撑起高并发的数据体量,但业务场景又需要数据库具备这种能力,分布式数据库成为了热门的选择。
在潘娟看来,无论数据库市场如何风云变幻,其本质依然是通过对数据实现多类型文件的管理与存储,在本质不变的前提下,发生变化的也只是场景和效益。因此对于 ShardingSphere 和 SphereEx 来说,底层是怎样的数据库都无所谓,毕竟只是管理和存储的空间,ShardingSphere 将在数据库上层开辟一条统一的管理平台,在数据库上层生态发现更多可能。
因此面对技术选型和数据库应用层面的差异化,ShardingSphere 避免因数据库所产生的局限性,在数据库上层进行能力整合,将更多元的数据库包含进来,对数据库上层实现能力管控,将多款不同的数据库包含进同一种事务语义中。
仅仅提供对应用和数据的连接是远远不够的。
潘娟认为,对于未来数据库的发展,应该分为两个视角。一个是底层数据库的发展趋势,另一个则是数据库与应用之间的平台发展趋势。沿着这一发展趋势,就能发现 SphereEx 所做的事情,将其归纳为 Database Plus 产品。
目前,ShardingSphere 正在向着 Database Plus 产品形态去演进。作为一个完全面向广度的生态类项目,SphereEx 公司正在主导把 ShardingSphere 打造成为 Database Plus 的产品形态,致力于搭建数据库上层的标准化增量,而非重新做一个 n+1 的数据库。在 Database Plus 产品之上,开发了一套足够灵活的可插拔架构体系,基于可插拔平台的叠加机制,对分片、读写分离、加解密、加密+分片等功能进行排列组合,提供面向应用与数据的增强与拓展服务。
02 云上,构建新的数据库设计范式
随着同为互联网基础设施的云计算发展势头依然迅猛,企业在云上的业务比重也逐年升高,业务、数据、数据库上云已经是不可逆的趋势。作为数据库上层的服务平台,ShardingSphere 未来肯定也将从云下迁移到云上,为用户提供 SaaS 化服务,帮助企业更快速、更方便地上云。
但是 ShardingSphere 所提供的 SaaS 服务,是不同于传统意义上的模式,而是以数据网格的形式,遵循 Database Mesh 的理念来践行。潘娟认为 Database Mesh 理念可以在企业云原生数据库落地方面起到有效的辅助作用。作为 ShardingSphere 在云端的应用形态,未来 ShardingSphere 会通过提供 Sidecar 来管理云上的南北流量,让业务应用通过 Sidecar 导流到 Proxy 端,再导流到数据库,形成用户无感知的数据穿透能力。在这层能力之上,ShardingSphere 可提供如数据路由,读写分离,数据加解密等增量服务,并通过明确 Proxy 的数据标签,并能够根据当前的 SQL 特征来路由到合适的 Proxy 端,进而实现面向东西+南北流量的共同治理。
虽然服务形式类似于 Service Mesh 服务网格,但 Database Mesh 能够深度理解 SQL 的含义,从而进行更细粒度的掌控。
另一方面,云上的数据库往往会承担更多来自用户、流量侧的压力,加之业务会比以往更加频发地访问数据库,很多用户会担心 Sidecar 这种形式会影响到数据库的性能。由于 ShardingSphere 是运行在数据库之上的服务,或多或少会对数据库的性能产生影响,但终归是要用户来评估在『牺牲一部分性能后,能够得到什么』。
由于 Sidecar 对于应用而言不会产生跨网络节点,从 Sidecar 到数据库之间才会产生,因此从应用体验层面来看,通过 Sidecar 来访问数据库和直接访问数据库这两个方式之间不存在特别大的区别;但如果涉及到核心计算,就需要用户来衡量是否需要用资源来换取时间。在 ShardingSphere 中,用户可以选择将计算过程跳过 Sidecar,落在 Proxy 上进行统一计算,完成后将结果返回,避免单独计算每个应用所造成的大量时间的浪费,使应用更方便连接到相关的数据库。
作为新时代数字经济的基础设施之一,数据库承载着互联网过去以来发展的记忆。作为数据的底座,不论承载数据的形式是怎样的,应用数据最终的目的和导向性都是一致的,区别只在于如何应用。而应用数据的过程,也直接反映了当下互联网行业变迁的过程。在合适的时机选择恰当的数据使用方式,才能让企业始终保持在符合互联网行业变迁规律之上进行发展。