欢迎访问Spring Cloud中国社区

《重新定义Spring Cloud实战》由Spring Cloud中国社区倾力打造,基于Spring Cloud的Finchley.RELEASE版本,本书内容宽度足够广、深度足够深,而且立足于生产实践,直接从生产实践出发,包含大量生产实践的配置。欢迎加微信Software_King进群答疑,国内谁在使用Spring Cloud?欢迎登记

Dubbo重启开源之后的故事

中间件小姐姐 · 2月前 · 839 ·

近期,阿里巴巴的高性能分布式服务框架 Dubbo,在 Github 上获得了超过 2万的 star 数,据了解这是截止目前国内第一家也是唯一一家超过2万 star 数的 Java 开源产品。

_Dubbo_star_2_1

无社区,不产品

说起开源产品,不得不先提下技术社区。无社区,不产品。从Alexa的排名来看,全球访问量最大的几个技术社区有:Github - Alexa开源类目第1位,Apache - Alexa开源类目第5位,Gitlab - Alexa开源类目第15位,当然还有些以厂商名义商业化做的不错的开发者社区也聚焦了大量的开发者,虽然中立性不如一些第三方开发者网站,但在商业回报上提升了开发者的粘性,最著名的就是Apple和Android的开发者社区了。

所以从指标上看,我们可以从网站访问量和商业回报两个角度来评价开发者社区的受欢迎程度。那么从社区的运营角度看,可以通过:

_Dubbo_star_2_2

  • 社区规模:
    注册人数、每天的停留时间等。社区的载体就是web页面,页面访问人数越多,注册量越大,页面停留时间越长,web的价值就越高;

  • 社区活跃度:
    项目发起者对项目的维护、开发者对开源项目的贡献、社区内的讨论、技术资料的沉淀等。活跃度取决于参与者在内容上的贡献程度,取之开源的同时回报给开源,才是社区生生不息的源泉;

  • 社区的表现:
    主要是流程上的表现,代码评审时间、bug的关闭时间等。大部分项目的维护人员都在专注于开发,对于一些开发者在社区提交的bug,commits和PR等,可能回复不够及时,项目维护人员越专注,社区越繁荣;

  • 社区人口特征:
    社区会员的会龄和活跃度的分布,各个会龄区间的会员数量分布和对应的活跃度。比较理想的分布是早期会员保证活跃度和贡献,中期会员成为社区项目维护人员的主力,不断的有更年轻的开发者加入社区,在社区中成长;

  • 社区的多样性:
    个人开发者和开发者所在的企业越多,贡献分布越均匀,社区就越健康。这个有点类似于2B 企业的用户分布,如果80%的销售额分布在top5的客户上,那显然不够健康,社区的多样性也是指引起腰部类项目越多,参与贡献的企业和个人开发者越多,就越健康,而不是仅几个明星企业或明星开发者在反馈社区。


从想法到实现,产品的力量**

产品的生命力是社区持续繁荣的保障,开发者借助开源产品将想法变成现实,这也是开源产品的初衷。那我们如何评价一款开源产品。在 Github上提交的开源产品,评价你的项目受欢迎程度最直接的方式就是star数了,Github 的 star 数不同于微博和微信公众号,你可以通过广告、发红包和一些例如裂变的营销方式来增粉和吸赞。

在 Github 上只能通过项目的优质性来获得star,Github上 star 数也远非只是一个数字那么简单,star 数的多少展示的是开发者对这个项目的信任程度.

毕竟开发者会在项目上进行二次开发,甚至形成私有分支,如果没有足够的信任,很难让开发者投入时间和精力去尝试。那这种信任是如何形成的呢?这就涉及到如何运营好一个开源项目的方方面面了。

_Dubbo_Dubbo_star_2_3

  • 开源项目的作者:
    开源项目作者通常是一个团队或者个人,又或者是来自不同企业的开发者共同发起的项目,从Readme 文件中可以看到开源项目的作者信息。通过作者的个人主页,如果是聚焦在该项目,且近一年的contributions数量较多,那么这类项目就越容易获得开发者的信任。

  • Readme文件:
    Readme文件就好像是当你关注一个公众号后弹出的一篇自我介绍的文章,通过文章的排版设计、内容、个性化,往往可以了解到这个公众号的一些脾性。如果是针对开发者的readme,简洁的排版,详细的项目介绍,包括项目架构、特征、如何开始、联系方式、开发者如何contribute、提交bug的格式、支持的开发语言,以及其他必要的项目资料,介绍的越详细,结构越清晰,越容易获得开发者的信任。

  • Issue数量和维护情况:
    项目中有多少个open的issue,有多少是已经close的issue,open的issue中开发者的提交时间是否是最近的,open的issue的回复时间多长,这些指标都是对开源项目生命力的最直接体现,开发者越多,提出的issue就越多,回复和解决issue的时间就越短。

  • Fork数和PR(pull request)数:
    Fork之后,开发者就有对这个项目的可写权限了,Fork数越多,说明这个项目对开发者的价值越大;pull request 是指你在Fork后对代码做一些改变,可以是修复bug,也可以是其他你认为对项目有帮助的改变,然后pull request给项目维护人员,维护人员会判断是否进行merge,所以pull request越多,深度参与项目的开发者就越多。

其他包括commits,releases和contributors都是衡量这个开源项目的生态是否繁荣的重要指标。


新Dubbo,新生态

Dubbo是阿里巴巴于2012年开源的分布式服务治理框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,使得应用可通过高性能RPC实现服务的输出和输入功能,和spring框架无缝集成,目前是国内影响力最大、使用最广泛的开源服务框架之一。

  • Dubbo的发展历程:
    » 2008年,阿里巴巴开始内部使用Dubbo;
    » 2009年初,发布1.0版本;
    » 2011年10月,阿里巴巴宣布开源,版本为2.0.7;
    » 2014年,当当网fork了Dubbo版本,命名为dubbox-2.8.0,并支持http rest协议;
    » 2014年10月,发布2.3.11版本,之后停滞;
    » 2017年9月,阿里巴巴重启维护,重点升级所依赖的JDK及组件版本,发布2.5.4/5版本;
    » 2018年2月,阿里巴巴宣布将Dubbo捐献给apache,进入apache孵化器;
    » 2018年7月,Dubbo官方域名更新到Dubbo.apache.org,页面焕然一新,并启用新logo,品牌全面升级;
  • 新Dubbo – 新logo & 新官网 & 新生态

DUBBO_logo_

此次品牌的全面升级,不仅是自2017年9月后Dubbo团队重启维护,回馈社区的延续,也预示着Dubbo团队正以全新的面貌迎接开发者和用户。最新的logo采用亮紫到亮蓝的渐变色,寓意Dubbo的青春和生命力,d-u-b-b-o 5个字母嵌入代码中使用频率较高的符合 [ ] 、/和:,寓意Dubbo生于代码,回馈于开发者的初心。最新的官网采用和新logo一致的渐变色,整个页面简洁大方,符合开发者社区的气质,首页融入持续的流星划过的动态效果,更是对繁荣Dubbo生态的渴望,普惠所有使用Dubbo的开发者和Dubbo本身。

新官网进一步丰富了文档、博客和社区的内容,并提供了中英文版本,适用于全球的开发者和用户,为打造Dubbo新生态提供了坚实的内容基础。

_Dubbo_Dubbo_star_2_4

文档模块分为用户文档、开发者指南和运维管理3块内容。用户文档包括了入门、快速启动、依赖、成熟度、配置、示例、多维度的使用参考手册、服务化最佳时间以及使用报告。开发者指南包括了源码构建、框架设计、扩展点加载、实现细节、spi扩展实现、公共契约、编码约定、设计原则、版本管理、贡献、检查列表、坏味道、技术兼容性测试等。运维管理包含了安装手册和运维手册。文档几乎覆盖了Dubbo 的开发和使用过程中可能涉及到的所有内容和需要注意的细节,帮助开发者无门槛、一站式使用分布式服务治理框架。

新官网还提供了博客功能,开发者可以将自己在开发过程中的点滴记录到这里,参与生态共建,在Dubbo的发展过程中留下自己的足迹。在新官网的社区页面,提供了事件&新闻、生态系统、联系我们和贡献指南 4 部分内容。在这里,可以找到Dubbo最新的开发者沙龙和行业动态,还可以通过邮件、Gitter、Segment fault和Twitter联系到Dubbo的项目成员,第一时间获取反馈。

项目的成长,离不开社区的共建,Dubbo提供了详细的贡献指南,包括加入邮件列表参与讨论、发布报告缺陷、文档优化和提交PR修复问题,开发者可以在Dubbo的Github主页的README中的Contributing 类目下找到详细的内容。

如今,Dubbo之所以受到到国内外开发者的关注,除了产品强大的性能、丰富的特性、详细的中英文文档和阿里在开源方面持续的投入外,还离不开以下几个原因:

  • 良好的兼容性支持:
    支持Java、node.js、Python、PHP等多种开发语言,支持通过API方式启动Spring xml、Spring annotation、Plain Java、Spring Boot,支持Zookeeper、Redis、Simple multicast、Etcd3等开源注册中心组建,以及包括多种容错机制、负载均衡策略、各类通信协议、网络传输扩展和序列化机制,极大的提升了开发者的开发自由度,避免捆绑;

  • 丰富的行业实践:
    除了阿里巴巴内部大量应用正在使用Dubbo,还有包括金蝶、当当网、滴滴出行、去哪儿网、网联清算、网易考拉、政采云、中国人寿、海尔、中国电信、微店、中国工商银行等来自政府、银行、保险、软件开发、互联网、制造、电信等多个行业用户也都在基于Dubbo构建企业自己的微服务,开发即回报;

  • 完善的开发者生态:
    在Github上,目前项目已有2434commits,52次release,95位社区contributors,fork数达13970,已合并的PR数 650个,已解决1047个issues,open的381个issue中社区的回复率和回复速度都很高,这些数据都正在帮助项目获得更多开发者的信任。

从停更到重启维护,在重启维护后的不到一年的时间里,Dubbo接连发布了10个版本,进入Apache孵化器,启用Dubbo新官网和新Logo,在北京、上海、深圳多个城市举办开发者沙龙,加强近距离沟通,这些都注定了Dubbo将迎来不一样的快意人生。