欢迎来到球速体育·(中国)官方网站QIUSU SPORTS!

Apache

当前位置: 球速体育·(中国)官方网站 > 服务器教程 > Apache

GitHub 标星 10000+Apache 顶级项目 ShardingSphere 的开源之路

时间:2024-09-27 05:34:20|栏目:Apache|点击:

  球速体育welcome【CSDN 编者按】几天前,当 GitHub 全球产品技术生态总经理 Michael Francisco 谈到已经成为 GitHub 上最活跃的群体时,有开发者提出数量之后质量也要跟上。的确,过去十数年间,中国开源一直呈现企业热使用热社区冷开发冷的景象,不过现在正在显著发生变化,从 Apache ShardingSphere 的成长历程就可以一窥。

  历经 4 年,从第一行代码到今天,ShardingSphere 正式成为 Apache 顶级开源项目,GitHub 开发者关系主管 Martin Woodward 如此评价道:“我们很高兴看到这个社区在过去两年里发展得非常好,现在有 120 多个直接贡献者。”在本文中,其核心初创人员为我们分享了它的开源之路,相信会对所有热爱开源希望有所建树的开发者们大有裨益。

  Apache ShardingSphere 团队核心初创人员将讲述这其中的跌宕起伏,并以时间轴为线索为你呈现它开源之路背后的故事。

  Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 3 款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景,核心功能如 1-1 所示。

  Apache ShardingSphere 由三个子项目组成,形成一个完整的数据库解决方案,合称 J.P.S. 生态系统。

  ShardingSphere-JDBC:定位为轻量级 Java 框架,在 Java 的 JDBC 层提供额外服务。它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。

  ShardingSphere-Proxy:定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前提供 MySQL/PostgreSQL 版本,它可以使用任何兼容 MySQL/PostgreSQL 协议的访问客户端操作数据,对 DBA 更加友好。

  ShardingSphere-Sidecar(TODO):定位为 Kubernetes 的云原生数据库代理,以 Sidecar 的形式代理所有对数据库的访问。通过无中心、零侵入的方案提供与数据库交互的的啮合层,即 Database Mesh,又可称数据网格。

  完整的分布式数据库解决方案:提供数据分片、分布式事务、数据弹性迁移、数据库和数据治理等核心能力。

  独立的 SQL 解析引擎:支持多 SQL 方言的完全独立化 SQL 解析引擎,能够脱离 ShardingSphere 独立使用。

  可插拔微内核:所有的 SQL 方言、数据库协议和功能都能够通过 SPI 的可插拔方式加载或卸载,微内核甚至在未来可以运行于无任何功能的空白环境中。

  这是对 Apache 开源软件基金最好的描述和肯定。它旨在为全世界提供优质的开源软件,同时欢迎全世界的朋友加入 Apache 社区贡献力量,并在这个过程中不断成长、得到肯定、共建开源社区。无论是否从事软件开发工作,大家多少都知道它的存在及其提供的优质开源项目,可见其影响之大、之深远。

  此外,参与 Apache 开源社区,并在自己的努力下成为 Apache Committer,更是大多数软件开发工程师心之所向。

  ShardingSphere 在开源之初,就有进入 Apache 开源组织基金会的计划。其原因有以下几点:

  Apache 基金会独特的 Apache way 和社区建设思想会让一个开源项目更规范、更有生命力;

  Apache 基金会在全世界范围内的影响不言而喻,若是能进入 Apache 基金会,则会扩大项目的影响力,使其进入世界范围的开源领域。

  Apache 基金会内的项目会更有机会登上世界舞台,并与其他开源项目建立友好交流,也能吸引更多贡献者加入社区。

  但同样,进入 Apache 开源基金会的门槛可并不简单,特别对于国内的项目来说,语言和地域的障碍无疑雪上加霜。

  在了解了 Apache 基金会的运作方式后,我们便踏上了找寻 mentor 之旅。参加各种与开源相关的分享会或 meetup,借此来认识 Apache 的 member。但是,事情却并不顺利。多次的尝试、接触换来的只是口头的认可。这段时间我们确实倍感压力和焦虑,甚至打算以后再说,一切随缘。

  而姜宁同样是一位热心又有经验的老手,是国内最资深的 Apache Member 之一,在与他交流的过程中,终于让我们看到一些希望,他也最终成为了我们的 mentor。

  再后来,团队 VP 张亮又前去上海参加 HDC 大会,认识了我们的另一位 mentor—— Craig L Russell,Craig 当时是 Apache 的秘书长,所有的 SGA、ICLA 等法务文件均由他负责签署。在 ShardingSphere 孵化的过程中,Craig 当选了 Apache 软件基金会的主席。他友善而和气,给予了我们很多有关社区规范的实用建议,也愿意助我们一臂之力。

  第三位 mentor 则是由 Apache RocketMQ 的核心成员冯嘉担任;最后由 Roman Shaposhnik 担任项目的 Champion,为项目寻找导师之旅画上完美句号。至今还记得我们当时的欣喜和激动。之前的无助、徘徊、失落在这一瞬间柳暗花明。

  每个进入 Apache 基金会的项目,一定都有自己的故事。尤其对于中国的项目来说,语言与地域的障碍会让我们更加艰难。好在有越来越多的来自于中国的项目进入了 Apache 基金会,也能看到越来越多的华人活跃在 Apache 的邮件列表里,还有 ALC Beijing 的建立让参与门槛不断降低,这对想要参与的国内朋友来说,确实是个 good news!

  为了正式进入 Apache 孵化器,项目代码、社区、文档等都需要进行一系列的规范和整理。这确实是个琐碎但很重要的事情。

  代码层面,合规操作是首要原则。我们梳理第三方依赖的许可协议,确保满足 Apache 软件许可协议(ASL)合规的要求;

  由于项目最开始的目标就是进入 Apache 基金会,所以在项目初期,依赖就尽可能地简单,社区相对规范,文档在不断翻译。不打无准备之仗,这些提前的准备让这部分工作进展顺利,而项目获得 Apache 域名的那一刻,大家才真切感受到所有付出得到了最有价值的回报。

  除了学习写规范代码,团队成员也开始学习 Apache 的规范、运作方式、英文沟通渠道等细节。我们开始了解到如何关注社区,什么是 consensus decision,如何用异步方式进行邮件沟通。特别是邮件列表的学习非常重要,你可以在其中找到历史问题记录、合规的解决方案、优秀的案例等。

  很多人认为只要代码开放,就叫做开源。但其实,这仅仅只是开源旅程的第一步。

  如何构建一个活跃的社区,如何理解 Apache way,是一个更为重要的话题。ShardingSphere 在进入 Apache 孵化器初期并未能完全理解 Apache way,并且由于过度注重代码风格,以至于参与门槛较高、社区活跃度平平。

  起初,我们并不知道问题出在哪里,迷茫了很长一段时间,直到在跟 Apache 的 member 不断交流的过程中才渐渐意识到问题所在,因此社区发起了有关 committer bar 的讨论,见图 1-2。这是社区建设之路的转折点,因为从此 community over code 的理念开始逐渐渗入人心,并指导我们的行动。

  你会发现它一直在强调合规、开放、平等、协作,为的就是建立合规且活跃的项目社区,尽可能地做到让更多的人参与,平等沟通,推动项目发展,促进个人成长。秉持这个理念,ShardingSphere 开始在多维度进行调整:

  代码:规整代码结构,划分模块功能,提供项目可插拔能力,从而允许用户局部参与某一模块的同时,尽量不破坏整体代码结构;

  心态:开放的心态,编制社区任务,鼓励社区朋友参与,相关 PPMC 或 Committer 积极提供指导和帮助;

  规范:梳理文档和代码规范,并提供详细的订阅、参与指南,大范围促进用户自主进行社区贡献;

  交流:鼓励社区尽可能使用邮件和 Issue 进行讨论从而公开讨论内容,同时针对较为细节的讨论则放在微信群里进行。此外,官方公众号还会介绍社区的进展、Release、刊登技术文章等;

  合作:与其他 Apache 社区建立联系、增加沟通,从合作交流中进行学习和发展。

  经过时间的积累,社区已有了质的变化。从社区的邮件讨论、GitHub 的数据展示中,你会发现 ShardingSphere 的社区开始真正变得活跃与多元化。图 1-4 展示了 ShardingSphere 在 Apache 孵化器一年多的社区数据变化。

  社区与贡献者之间的依赖和互赢也在整个过程中体现的淋漓尽致。对于贡献者来说,他们会在这个开源社区中与其他人交流、协作。而这个持续的过程,将带来以下成果:

  依据 Apache 的成熟度评估模型图 1-5,在以下几个方面评估社区和项目是否成熟。其实在 Apache 项目社区的初建阶段,我们建议大家就在这几个方面发力,因为这是官方给予的毕业标准及指导方针。以此为方向,探索属于各自项目的独特社区运作方式,也可谓是百花齐放。

  即便是经过 1 年多的社区建设,项目基本成熟,但面对毕业还是有很多工作要合乎毕业规范。例如确认商标是否可使用、完成项目官网有关 Apache brand 和 trademark 的陈述、网站符合 Apache way 等。在这个投票期间,由于官网存在 fork me on github 的 slogan,而这一问题一直频繁出现并且没有结论,所以其他 Apache 成员借此单独开辟了 thread 来讨论这一问题,查看 Email List 了解详情。虽说这一举让 ShardingSphere 被成功推到前台,间接提高了项目的曝光,却也能看出 Apache 对于第三方独立、禁止参与商业行为的重视和严苛。

  回首这一路,收获与付出兼存。这篇文章旨在用故事为大家带来更为生动、全面的阐述和论据支撑,而在文章结尾,我们也特别想对开发者朋友说:

  愿这篇文章能为你打开新的思路,它像一扇窗,为有心的人呈现另一种职业风景,带来新的思潮。

  每一个 Apache 开源项目都有自己独特的社区发展方向和价值观。参与其中,选择与你气味相投的社区,是一件很有价值且很有意思的事情。

  有张有弛,有进有退;不妄自菲薄,也不目空一切;在开源的领域,更确切说在 Apache 开源社区,更多的是遵守规范、开放包容、平等交流、互相学习。

  从 Apache 孵化器毕业成为 TLP,对 ShardingSphere 来说,并不是一个结束,而是另一个开始。在产品功能上,ShardingSphere 将继续在分布式数据库中间件平台上深耕,打磨出以“分布式”为核心的数据库中间件生态圈,从而提供完整的解决方案,如图 1-6 所示。从社区角度讲,ShardingSphere 仍将继续活跃社区,鼓励更多朋友成为社区的 committer 和 contributor。所以,我们欢迎大家关注 ShardingSphere,并加入到社区来,与更多知己结伴前行。未来之路不可预测,但立足当下,眺望未来,初心未改,即便亦步亦趋,也愿一苇以航!

上一篇:Apache OpenOffice 413稳定版发布

栏    目:Apache

下一篇:上海昊天实业有限公司

本文标题:GitHub 标星 10000+Apache 顶级项目 ShardingSphere 的开源之路

本文地址:http://aihaoedu.com/fuwuqijiaocheng/2515.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:88888888 | 邮箱:aihaoedu.com

Copyright © 球速体育·(中国)官方网站 版权所有