数据库

注册

 

发新话题 回复该主题

张亮为发展ShardingSphere创 [复制链接]

1#
北京最好白癜风专治医院 https://disease.39.net/yldt/bjzkbdfyy/

出品

开源中国

一君

CreatedinthenameofFOSS.

一位收藏家遇到件特别喜爱但又买不起的藏品,如果他有机会偷到,那么,他会动手吗?

答案是不会。

因为收藏家的快乐来源于将其收藏品展示给世人,如果是偷来的,他便不能光明正大炫耀自己有这么一件藏品,藏品对收藏家来说便失去了价值。

张亮讲述了上面这个小故事,来描绘他最早开源自己写下的代码时的动力——“作为一个工程师,我认为我的代码还是比较优雅的,希望更多人看到,这就是我最原始的诉求。”同时,通过开源的方式,他的代码可以被所有人看到和点评,也会有许多人给出反馈,帮助他不断提升技能。

合抱之木,生于毫末,开源的伟大之处也正是通过这种协作共享的模式让许多个人作者开发的软件得以成长为庞大的、世界级的通用软件。而在开源的浪潮中,张亮是千万为之着迷的工程师之一,更是开源世界的反哺者。

21世纪初,上大学的张亮在教科书上看到ApacheTomcat。彼时,Apache软件基金会刚成立不久,Tomcat作为Apache服务器的扩展,是应用最为广泛的Web服务器之一,也是Apache软件基金会的顶级项目。这给张亮留下非常深刻的印象:“Apache软件基金会中有非常好的软件,成功到教科书中都在用。”

一颗关于“开源”的种子自此埋下,他希望自己日后也能写出被选入教科书的、在全世界流行的软件。十多年后的现在,他身边有了近40人,正在一起朝着这个目标前行。

年初,张亮作为创始人,与潘娟联合创办了SphereEx公司,以开源项目ApacheShardingSphere(后文简称ShardingSphere)为基础,提供商业解决方案。ShardingSphere最初是张亮在年1月创立并开源的项目,前两年,张亮个人提交了80%以上的代码,支撑项目最初的发展。年,为了能够打破用户的心理戒备,激发贡献者共鸣,张亮为ShardingSphere找到一个强有力的支撑——将项目捐赠给Apache软件基金会,“基金会的存在,是对项目开放和可持续发展的最有力保证。”很快,年4月,ShardingSphere经过基金会的孵化,晋升成为顶级项目,社区贡献者从孵化前的不到30人扩展到超过人,这一数字现在已突破。

张亮(左二)、潘娟(左一)与SphereEx部分员工合影

ShardingSphere刚刚毕业晋升之时,张亮接受OSCHINA采访并表示,项目从Apache孵化器毕业,代表项目的社区运作方式得到了Apache软件基金会的认可,但对于他个人来说,ShardingSphere距最终的目标还有很大差距,产品完成度尚不足50%。

此后一年,ShardingSphere开始5.0版本的筹备发布,目前已经发布了5.0.0-beta,实现了可插拔等能力。然而,张亮心中产品完成度的百分比并未发生变化,依旧是50%,“产品进展其实还挺大的,但是很多新的想法又出来了,肯定要多投入研发资源,分子和分母都是在增加。”因此,整体的完成度变化不大。

所以,ShardingSphere需要一个杠杆打破平衡——创业。以一家公司的力量专注开发一个软件,自然要比零散、自发的社区更加高效集中。就这样,专属于SphereEx的故事开始了。

延伸ShardingSphere

SphereEx,取用ShardingSphere中的“Sphere”一词,后缀意为扩展、探索、延伸的“Ex”,“具体是什么意思,留一些空间给大家想象”。

张亮认为,ShardingSphere模块数量接近个,可以称得上是一个广度型的开源项目,因此有围绕其打造生态的基础,足以成为一个公司的底座,承载公司业务发展。反过来,ShardingSphere可能需要二三百人才能将其能力完全爆发,那么也只有一家专门的infra公司(IT基础设施公司),才能承载ShardingSphere的发展需求,二者相互成就。

选择在ShardingSphere发展五年半的时间点创办公司,是ShardingSphere的发展路径所致,也是张亮仔细思考后的结果。起初,张亮在做ShardingSphere时,仅将其做为一个分库分表的Java开发框架,后期,接纳社区建议后,ShardingSphere功能逐渐叠加,慢慢演进成现在的可插拔增量数据库。

“举个例子,比如原本ShardingSphere只能做分库分表一件事,社区的人可能会说,ShardingSphere也能做数据加密,但如果我们的目标是做最好的分库分表中间件,那么加密可能就不会做了。但其实社区更好的方式应该是面向‘如何吸纳社区贡献者’,也就是说,社区要善于接受大家的馈赠,将馈赠引导为正向的,而不是以拒绝大家的馈赠为前提,只吸纳我们觉得有用的,这是思路上的转变。”

在这个前提下,ShardingSphere要做可插拔架构,也是由于社区的馈赠越来越多,如果研发团队照单全收,那么ShardingSphere的代码将会很混乱,架构不成体系,最终难以达到好的效果,但如果是可插拔的内核,便可将社区所有馈赠构建在可插拔基础之上,“所以ShardingSphere的可插拔架构完全是基于社区的需求衍生出来的,如果仅仅是做数据分片,其实并不需要可插拔架构。”

就在ShardingSphere的可插拔架构成型之时,国内开源与infra创业东风渐起,“这是非常好的契机,ShardingSphere也刚好度过最艰难的那段时间。”回看ShardingSphere五年半的发展历程,刚刚诞生之时,在当当和京东经过双十一等大量互联网场景的打磨,从Apache软件基金会孵化毕业之后,又建立起一定规模的社区,有相当数量的外部贡献者。

未来,张亮计划通过ShardingSphere的迭代,实现在开发者社区中更彻底的开放。ShardingSphere5.0主攻可插拔架构,未来5.0稳定版中这一功能将会稳定,接着,6.0的定位则是“Todeveloper”,让ShardingSphere更加灵活可控,开发者可以根据ShardingSphere的教程,去开发自己想要的功能,从而实现完全地开放。

数据库行业还需要什么

成立公司之后,如何能基于ShardingSphere创造更大的价值,也是SphereEx需要思考的。

张亮团队基于ShardingSphere创业的前提也有他们对于数据库行业现状的分析——行业是碎片化的,未来不会出现大一统的数据库,无论这个数据库做得有多好,只能负责它最适合的一种或几种场景,“我们希望能在数据库之上构建一层,把数据库当成它的存储节点。”

因此,SphereEx的产品形态为DatabasePlus,即,在数据库之上提供一层增量的服务,定位是希望建立数据库上层标准和生态、提供精准化和差异化的能力。

DatabasePlus

首先,SphereEx的基座——ShardingSphere所有功能都是可插拔的。ShardingSphere提供了一个标准化的DistSQL,通过DistSQL控制所有功能,包括创建分片规则、修改读写分离规则等等,这种方式更容易迈向标准化。

在精准化和差异化能力方面,SphereEx在产品上可以做到精细化分片,实现用户自由定制,对于无需自由定制的用户,ShardingSphere也可以通过标准方式实现分片,其

分享 转发
TOP
发新话题 回复该主题