qcon广州站web 3.0 专题上线,关注基础设施及相关技术,戳此了解
写点什么

专访京东科技张亮:本土开源需形成吸纳开发者的靶心丨开源创新30人-金马国际

  • 2021 年 1 月 27 日
  • 本文字数:4794 字

    阅读完需:约 16 分钟

据 infoq 不完全显示,仅在过去一年,国内便先后有超过 10 家开源企业获得新一轮资本助力,融资纪录为近年来开源赛道最高。与此同时,大公司开源步伐加速、国内第一家开源基金会正式成立等消息,也成为了去年本土开源领域的重磅新闻。

 

随着越来越多的企业、人才、资金等资源不断涌入,在本土开源这一赛道之上,未来将涌现出更多优秀的开源参与者。然而,在参与开源的过程中,更多有关于企业开源治理、社区运营等方面的难题,却依然困扰着每一位投身开源的人。

 

去年 4 月 16 日,apache 软件基金会宣布 apache shardingsphere 毕业并成为顶级项目,成为基金会内首个分布式数据库中间件项目,这意味着 apache shardingsphere 在开源实践上取得的成绩,获得了国际顶级开源组织的认可。而作为 apache shardingsphere 项目 vp & 创始人,张亮对于开源项目治理及社区发展也在经过基金会的孵化洗礼后变得更加的深刻了。


近日,infoq 专题访谈人员有幸约访了张亮先生,就企业开源治理、开源社区发展等方面话题,进行了交流。

shardingsphere 的三次蜕变


在开始企业开源治理及开源社区建设的话题之前,首先得从张亮及 apache shardingsphere 的发展说起。

 

截至目前,shardingsphere 项目已有 150 公司采用,并涵盖金融、电商、数字化与云服务、互联网教育、出行、物流、医疗健康等各行各业,在京东内部也被广泛采用。事实上,从写下第一行代码到取得今天这样的成绩,shardingsphere 主要经历了三个阶段的发展。

 

在开源初期,当时还被命名为 sharding-jdbc 的 shardingsphere 主要由张亮个人主导,是一款基于 java jdbc 接口实现的数据库分库分表管理框架。

 

据张亮介绍,当时决定写下第一行代码的原因,主要是因为行业内的数据库中间件长期没有足够成熟且能让大家广泛采用的产品。“不同阶段的开源项目都让人觉得缺点什么,比如说对 sql 的支持度不高,工具也不成熟,而且开源一段时间就没人维护了,都是些半成品。”张亮表示。

 

抱着改变这一现状的初衷,当时对社区都没什么概念的他便写下了 sharding-jdbc 的第一行代码。

 

而在第一个版本的产品成型并发布后,由于 sharding-jdbc 很好地屏蔽掉了数据持久化过程中分库分表等方面的实现细节,让开发者能够更轻松地实现数据库的水平扩展,产品开源后便获得了开发者的一致好评。

 

随后,伴随着 sharding-jdbc 在开源社区得到认可,当时打算自研分布式数据库的京东科技团队(原京东数科)也找到了张亮,有意邀请他加入。再三考虑后,张亮最终加入京东科技,全职做起了 sharding-jdbc,也从此开启了 sharding-jdbc 第二阶段的发展旅途。

 

据张亮介绍,由于设计之初 sharding-jdbc 主要是基于 jdbc 标准接口实现的,整体上更像是一款 java 数据分片框架,因此也存在只能用于 java 上的局限性。但事实上,业务应用开发语言不止 java 一种,实现从一个 java 框架到更为通用的跨语言数据库中间件产品的转变, sharding-jdbc 还有许多需要提升的地方。

 

首先是品牌的升级,将 sharding-jdbc 改名成为了 shardingsphere ,在保留原来开源框架累计下来的人气与品牌关注度的同时,进一步强调自己已经跳出了最初 java 框架的固有产品形象。

 

与此同时,张亮还开始着手运营与组建社区,考虑将 shardingsphere 推入 apache 基金会,将其发展成为更加大众化的、能够成为开源数据库中间件领域标准的产品。

 

2018 年 11 月,伴随着 shardingsphere 正式进入 apache 孵化,随后又于 17 个月之后正式毕业成为 apache 顶级项目,在先后完成了社区组建,同时遵循 apache 的规则将 shardingsphere 所有权从公司与个人转向社区所有之后,shardingsphere 基本完成了第二阶段的转变。

 

在进入第三阶段之后,可插拔架构的提出,也开始成为了 shardingsphere  发展需要考虑的问题。

 

据张亮介绍,可插拔思路的成型,主要是由于在使用 shardingsphere 的过程中,京东内部除了对数据分片和读写分离等需求外,也逐渐衍生出了包括数据加密、影子库压测等这一类的需求。这些功能如果分别让各个系统部门自己去实现,就会出现重复造轮子的现象,但如果能够将这些功能中比较通用的能力抽离出来,集成到 shardingsphere 之上,这就会极大地减少公司整体的工作量。

 

而在将这些功能集成到 shardingsphere 的过程中,如何实现功能之间的互相隔离,不影响主架构运行,成为了 shardingsphere “可插拔架构”提出的关键。

 

据张亮介绍,在技术架构上,shardingsphere 的可插拔架构划分为面向数据库内核、企业应用和开源生态的三个层级。

 

l1 内核层:面向数据库内核,包括查询优化、分布式事务、核心执行链路、调度引擎和分布式治理等。l1 内核层是 shardingsphere 通过对行业的思考所提供的金马国际的解决方案。通过可切换的双引擎,在分布式数据库尚未成熟的变革阶段提供中间件增量服务;并在终将到来的分布式数据库成熟之时提供面向分布式的查询优化、事务和存储引擎。希望 l1 内核层的可插拔设计,能帮助传统数据库向分布式和云原生阶段提供平稳的演进路径。当然,目前内核层还属于筹划阶段。

 

l2 功能层:面向企业应用,包括数据分片、读写分离、数据库高可用、强一致多副本、弹性迁移、数据加密、影子库以及其他扩展。它是开发者可以自行拓展的重点部分。l2 功能层对于企业级应用意义重大,目前 l2 功能层已经较为完善。

 

l3 生态层:面向开源生态,包括 sql 方言、数据库协议以及数据网关。除了对单一数据库兼容度的提升,对异构数据源的打通数据网关也在探索中。 l3 生态层将是 shardingsphere 对接和融入开源生态的标准。

 

从最初基于 java 语言开发并开源的数据库分库分表框架开始,shardingsphere 一路随着市场的需求不断更新,先后经历了功能升级、治理模式切换,进入开源基金会等过程,逐渐演化成为了一个分布式的数据库生态体系。

社区大于代码的含义是“独行致快,众行致远”


一路转型升级的过程中,张亮对于开源的理解也在不断地提升。

 

从写下第一行代码到第一个开源版本发布,张亮用了三个月就完成了所有工作,在之后两年的运营过程中,张亮个人贡献的代码量也一度达到 80%以上。但是开源之后,如何让整个项目长期稳定地运行下去,却成为了让张亮思考最多的问题。

 

一个项目的代码再好,但如果他是属于一个人的,那其实它的风险是非常大的。因为随着维护者的心情变化,可能这个项目可能会忽然就失去维护,或者开始维护很慢。从企业使用的角度来看,这样的项目是不被看好的。

 

在张亮看来,一个开源项目想要真正取信于人,一定是它要有一个稳定的基座,这个基座不能是第二天就会消失的东西。


而在亲历了 shardingsphere 从进入 apache 孵化到毕业的全流程之后,他为自己的这一理念找到了新的解释。

 

在 apache 基金会内,“社区大于代码”的理念渗透到整个基金会运营决策的每一个环节,一句话便高度概括了 apache 的运营发展之道。但在张亮看来,“社区大于代码”其实又可以解释为“独行致快,众行致远”。

 

“一个人去写代码可能会很快,但是只有更多的人一起参与进来,即使当项目的创始人累了不想走了的时候,背后也有别人在推着他向前走,并且经常会有一些有趣的新方法出现,刺激大家一起往前。”张亮表示。一个有一群人参与的社区,才是最有魅力的社区。

 

关于如何打造一个持续活跃、健康发展的社区?张亮总结了以下五点经验:

 

第一,需要多去听多看。通过 github 和邮件列表这些渠道,再小的声音都能够反馈到社区内部,项目运营人员通过这些渠道倾听参与者的声音,能够提炼出更加通用、普适的需求,进一步迭代出更加完善的功能,让开源项目的社区变得更加有活力,发展更为稳健。

 

第二,要保持英文化。社区是多元的,上面聚集了来自不同国家、地区乃至于文化背景的人,我们不希望社区是一个割裂的状态,统一用英文沟通,是对社区多元化的一个最基本的保障,它不会让一些想参与它的外国人,因为语言壁垒最终无法参与。

 

第三,每一次问题提交都要做到可检索。所有用户提的问题都需要尽量留痕,如果某一用户提了一个他自己没想清楚的问题,或者抛了一个空指针之后又关掉了页面,最好的方式就是提醒他将自己的问题完善或改到容易被检索的状态,因为这些问题可能之后会有其他的人看到,能给他人带来启发,这是存在价值的。与此同时,也需要定期去做一些问题的梳理与标签设置,让社区能够更好地了解项目当下的进展。

 

第四,需要有一个强大的测试系统。因为参与开源的人比较多,沟通的工作量也非常大,如果提交者上传的代码没有经过必要的前期测试就通过了,这导致的结果是,项目正确性的责任全部由后面代码审核的人负责,代码实现的分工将变得不那么合理。 

 

第五,要避免重复造轮子。需要站到更高的维度去看问题,开源的生态还包括社区的交流共享,别人可能会用你的项目,你也需要适当地去采用别人的项目,避免做一些重复造轮子的事情。

 

“对于开源而言,最重要的不是代码的实现,而是代码背后的服务,及其对应的整个社区生态所蕴含的价值。”张亮表示。而在这一经验的指导和超 200 名社区参与者的共同努力下,apache shardingsphere 在 2020 年 linux 基金会旗下的  的开源项目关键评分中,取得了 java 语言类第 72 名,国人主导的开源项目第 1 名的亮眼成绩。

企业需要开放更多的开源岗位

 

在刚过去的 2020 年,伴随着越来越多基于开源模式的企业在商业上获得市场认可,国内出现了一批被投资者选中的开源项目,开源创业的春天,已然来临。

 

然而对于本土开源而言,在开源越来越热的当下,本土开发人员底层研发能力薄弱,工程能力大多停留于运用层的局限性,也正在制约着本土开源生态的发展成型,这些问题并不是短期内能够解决掉的。

 

在参加了无数场国际顶级的开源峰会之后,张亮最大的一个感触是,国外参会的开发者在 40 岁到 60 岁之间的人员依然很多,但是国内的参会者却普遍在 30 多岁之间。

 

“技术本身还是一个熟练工种,你在这个领域沉淀得越深了,累积的能力也便越强。”张亮表示。在其看来,一个人在某一领域的思维变得非常活跃,而且经验也很丰富的时候,往往是这个人在这个领域耕耘了超过十年以上的时候,但国内的工程师在整个时间段的时候,可能已经转移到其他岗位上了。

 

未来本土开源生态的完善,仍有很长的路需要走。而针对这一现状,张亮给出的建议是——大型企业在参与开源治理的同时,需要开放更多全职的开源岗位。

 

“大型科技公司其实是希望有自己开源方面输出的需求的,这种输出的目的,其实是希望寻求对于行业标准的影响,进一步占领更多的话语权,赢得行业关注和口碑。”张亮表示。在其看来,虽然大型企业参与开源本质上并不是 100%奔着开源去的,但如果能让这些企业内参与开源的人投入 50% 的时间去做开源,就已经很足够了。

 

“一个开源项目如果全部是通过业余时间去完成的话,那么这个项目的发展在一定程度上是会很慢的。”张亮表示。在其看来,大型企业需要开设更多的开源岗位引导开源社区发展。

 

国内从来不缺优秀和聪明的开发者,但缺少的是能够让开发者去持续付出心血的环境,以及稳定的项目基石。“当一个人的热情被投入到一个不合时宜的地方时,也许第二天承载着这些热情的项目就没了,这将会很糟糕,投入的价值也不大。”张亮表示。

 

他希望能够将 shardingsphere 打造成一个能够吸纳开发者热情的靶心,带给开发者更多正向的回报,为本土开源生态的建设贡献一份自己的力量。


高端访谈推荐



「中国技术力量」之「新基建 50 人」以及[开源创新 30 人]系列专题报道火热进行中,我们长期专注于发现新基建以及技术开源领域内驱动产业数字化转型、智能升级、融合创新的科技型组织机构、企业部门 ,并将重点采访其中的产业发展引领者,技术部门中坚力量等人士,深度传播他们对于新基建、开源创新等方面的技术理解、产业需求以及商业化探索尝试。欢迎大家点击超链接申请免费采访报道名额:>>

2021 年 1 月 27 日 08:353610

评论

发布
暂无评论
  • 成为committer

    2018 年 12 月 26 日

  • apache kylin和apache hawq 虽然同是apache “师兄弟”,但是两者的开源之路完全不同。

  • 在开发者的眼中, openeuler 社区是否满足了他们的期待?

  • 对中小企业,拿一个开源的软件搭建大数据平台,无论人才储备还是服务器成本,似乎都难以承受。所幸,还有商业大数据平台可选择。

    2019 年 1 月 3 日

  • 在10月15~17日的qcon上海2015上,unitedstack平台开发部负责人、openstack社区活跃开发者邵国健分享了参与openstack社区开发的一些经验。

  • 话题主要围绕着 sofa 和开源主题展开,希望也能一样引起同是技术人的你的共鸣。

  • 谈到将微服务落地,我有很多实战干货想和你分享。

    2018 年 8 月 20 日

  • 阿里内部用不用dubbo,这是不是kpi开源项目以及dubbo 和 spring cloud 之间是什么关系。

  • 2018 年 12 月 26 日

  • 今年是 asf(apache 软件基金会)成立 20 周年,不久前 infoq 记者对 asf 董事会主席 craig russell 先生进行了一次独家采访,从他在 asf 工作十多年的感受、asf 在开源社区治理上的成功经验、asf 未来发展计划等方方面面进行详细了解,此次采访也让我们对“apache 之道”有了更加直观、深刻的认识。

  • shardingsphere获得超13k stars的关注,有近200余名贡献者,已成为该领域最受欢迎的项目之一。

  • 开源最核心的就是要具备产品思维......

  • 金融行业如何更好地使用开源,面对开源。

  • 2000年12月28日,huihoo.com上线。从此,灰狐(huihoo)开始了它的互联网之旅。2010年末,灰狐迎来了10岁生日。在献上衷心祝福的同时,我们也应该看到中国开源事业正在蓬勃发展。

  • 2019 年 12 月 18 日

  • 蚂蚁金服是如何思考开源和践行开源的,是如何将开源与公司的商业价值有机地结合起来的?

  • 由infoq中文站主办的2012杭州qcon即将召开,我们对一些专题的讲师进行了采访,谈谈他们要讲的议题。 本次采访的是red hat首席软件工程师方越,在此次qcon,他将会主持“java20年”的专题,并会做主题为“开源,从另一个角度看世界”的演讲。 方越自2005年以来全职参与企业级中间件领域多个开源项目的开发,是webservice/soa/esb/osgi等领域的专家。方越目前活跃在多个有影响力的国际开源项目中。

  • 2020年,这10家企业先后成功获得了新一轮的资本加持,综合累计融资额接近30亿人民币。

  • 作为历史悠久的计算机公司,ibm早早进入了大数据领域,最终却一事无成,只能寄希望于比它起步还要晚的spark。

    2018 年 3 月 26 日

发现更多内容
网站地图