CY14-Q1 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较

By , April 14, 2014 4:19 pm

01

本文是对《CY13-Q4 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文的补充和更新。对本文内容感兴趣的读者,可以通过电子邮件或者新浪微博(@qyjohn_)与我联系。

本文同时发布了一个英文版本,可以参见CY14-Q1 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack这个帖子。

Eucalyptus在本季度终止了面向用户的在线论坛(Engage),并将所有与用户相关的讨论引导到google group。这个举措对其用户讨论有较大的影响。

这个社区活跃度比较项目起源于CY11-Q4,此篇报告是到目前为止已经发布的第十个季度性的报告。本文中所表达之观点完全是作者本人的观点,而非作者目前或以前所在公司的观点。

02

本文的目的是通过论坛和邮件列表的原始数据对OpenStack、OpenNebula、Eucalyptus和CloudStack项目的社区活跃度进 行分析和比较。主要的原始数据是自2009年来这四个项目的官方论坛和邮件列表每个月所产生的讨论主题数、帖子数、以及参与讨论的总人数(邮件地址或者用 户账号)。为了获取这些数据,我写了一个Java程 序自动地从这四个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。程序提取的数据被导入MySQL数据库中以便进 行统计分析,统计分析的结果通过LibreOffice生成分析图表。

在过去几年种,有一些早期的论坛和邮件列表已经被停用,这些数据我们再也不能够访问到了。幸好我们有这个项目刚刚启动时所创建的MySQL数据库,还有过去每个季度所发布的季度性报告,使得我们可以对每个项目进行完整的分析。

对于具有多个会员系统的项目(例如一个论坛和一个邮件列表),我们采取了大量的措施来消除会员重复计数(同一个人被当成不同的会员计算了两次或者两次以上)的情况。

03

01

图1 和图2分别是如上所述四个项目每个月所产生的讨论主题数和帖子数。可以看出:

(1) 在过去12个月中,与OpenStack和CloudStack相关的讨论数量在同一水平上,与Eucalyptus和OpenNebula相关的讨论数量在同一水平上;

(2) 在过去12个月中,与OpenStack和CloudStack相关的讨论数量远大于与Eucalyptus和OpenNebula相关的讨论数量。

01

通常来讲,一个讨论主题得到的回复数越多,表明该主题的讨论越深入。一个论坛或者邮件列表如果只有主帖而没有回复,说明这个社区的参与程度很低。因此,平 均意义上的“讨论帖子数/讨论主题数”则反映了一个社区的参与程度,这里我们暂且称之为参与度(Participation Ratio)。

由图3 可以看出,在过去12个月中CloudStack和Eucalyptus项目的参与度相对较高高,接近于4;OpenStack与OpenNebula项目的参与度相对较低,接近于2。

我们也注意到参与度这个概念引起了一些争议。有些人认为“讨论帖子数/讨论主题数”较低象征着某个社区具有快速解决问题的能力,社区成员所提出的问题能够在很短时间内得到解答,因此不需要多个帖子来解决一个问题。有些人认为“讨论帖子数/讨论主题数”较高可能意味着某个社区可能出现了争论,而这种争论可能已经偏离了某个社区的讨论方向和范围。无论如何,参与度这个名称的确反映了我们的某些主观看法,在一定程度上削弱了本报告的客观性。由于我们暂时没有找到一个更加合适的替代名称,在这个报告里面还是延用原来的名称(欢迎各位读者贡献更好的参数名称)。

01

图4 所示为这四个项目每个月参与论坛或者邮件列表讨论的总人数。可以看出,OpenStack项目的活跃用户数量要远大于其他三个项目。CloudStack项目的活跃用户数量也明显大于OpenNebula和Eucalyptus。在过去12个月中,CloudStack和OpenStack项目的活跃用户数量都在稳步攀升(OpenStack项目有100%的增长,CloudStack项目有50%的增长),而Eucalyptus和OpenNebula项目的活跃用户数量基本上没有增长。

值得一提的是,虽然CloudStack的活跃用户数量稍微小于OpenStack,这两个项目的主题和帖子数量是基本相当的(参见图1和图2)。

01

累计社区人口(简称社区人口)指的是曾经通过论坛或者邮件列表参与过讨论的用户和开发者总数。(不包括在论坛或者邮件列表中注册但是从未公开参与讨论的社 区成员。)这些人或多或少地使用过相关产品,但是并不代表他们目前还是活跃用户。图5 所示为这四个项目的社区人口增长趋势。可以看出,OpenStack与Eucalyptus项目的社区人口遥遥领先,CloudStack与OpenNebula项目的社区人口相对较低。

问题在于,开源IaaS软件经过这么多年的发展,长期累计社区人口的意义已经越来越弱。一方面,某些早期用户可能已经多次改变了阵营;另一方面,某些早期论坛和邮件列表已经结束了历史使命。从社区活跃度的角度来看,我们认为最近6 个月或者最近12个月的累计社区人口可能是有意义的,但是将累计社区人口无限制地延伸到侏罗纪时代,可能会使这个参数失去实用价值。

01

曾经有多位读者建议我们基于Git活动对各个主流的开源IaaS项目的开发情况进行分析。我们注意到CloudStack、Eucalyptus、OpenNebula以及OpenStack项目都使用git进行版本管理。因此,我们基于来自git的日志数据对这几个项目的开发情况进行了一些简单的分析。需要指出的是,对于OpenStack项目来说,其数据源包括了托管在github.com上的openstack项目(包含57个子项目)和openstack-infra项目(包含33个子项目)。

在CY13-Q1报告中,我们使用了git log这个命令获取日志数据。从CY13-Q2起,我们将使用git log –no-merges这个命令获取日志数据。

值得一提的是,git是一个分布式的版本管理系统。使用git进行版本管理,开发人员通常都是在本地代码库上工作。当开发人员执行一次commit操作时,对应的代码改动只被记录在本地代码库中。除非时开发人员执行了push操作,这些代码改动不会被反映到主代码库中。很多开发人员倾向于在积累了一定数量的commit之后才进行push操作。因此,一些最近发生的commit操作不会被反映到我们的统计中来。根据我们的经验,上一个月的commit操作数量大概被低估了50%,而前一个月的commit操作数量大概被低估了20%。

01

图10所示分别是本文所述四个项目每个月进行提交(commit)操作的次数。总体来看,OpenStack项目提交代码的频率远远超过其他三个项目。这是由于OpenStack项目的数据源一共包含了90个子项目。CloudStack项目提交代码的频率也明显高于Eucalyptus和OpenNebula。与OpenNebula项目相比较,Eucalyptus项目提交代码的频率也不低,但是存在较大的波动情况,具有比较明显的批量更新的特征。OpenNebula项目提交代码的频率较低,平均每个月提交代码200次左右。

01

图11所示分别是OpenStack项目中各个子项目目每个月提交代码的次数。总体来看,Nova子项目提交代码的频率较高,是其他几个子项目的三倍左右。值得注意的是,尽管各个子项目提交代码的频率各不相同,但是其时程曲线基本上是一致的,波峰和波谷基本上出现在相同的时间。这个现象表明尽管OpenStack项目中各个子项目相对独立,但是具有相同或者相似的开发计划和开发进度。可以认为,OpenStack项目在子项目的管理和协调方面是做得比较好的。

01

图12所示分别是本文所述四个项目每个月提交代码的人数。总体来看,OpenStack项目提交代码的人数远远超过其他三个项目,并且一直保持迅猛增长的势头。CloudStack项目提交代码的人数也有所增长,但是其增长速度较为缓慢。Eucalyptus项目和OpenNebula项目提交代码的人数相对较少,并且在过去12个月当中基本上没有增长。

01

图13所示分别是OpenStack项目中各个子项目每个月提交代码的人数。总体来看,Nova子项目提交代码的人数较多,是其他几个子项目的三倍左右。

01

人们通常通过代码贡献者所使用的电子邮件地址来识别其所在的机构。尽管这种方式存在较大的缺陷(例如有一些机构鼓励雇员以个人的名义向开源项目贡献代码),但是还是可以从某种程度上揭示不同机构对某个开源项目的贡献力度。图14所示分别是每个月向本文所述四个项目提交代码(commit操作)的邮件地址所属域名数量。总体来看,OpenStack项目提交代码的域名数量远远超过其他三个项目,并且一直保持迅猛增长的势头。CloudStack项目提交代码的域名数量也有所增长,但是其增长速度较为缓慢。Eucalyptus项目和OpenNebula项目提交代码的域名数量相对较少,并且在过去12个月当中基本上没有增长。

01

图15所示分别是OpenStack项目中各个子项目每个月提交代码(commit操作)的域名数量。总体来看,Nova子项目提交代码的域名数量较多,是其他几个子项目的三倍左右。

下面这个表格以电子邮件所属域名的形式列出了在CY14-Q1期间向CloudStack、Eucalyptus、OpenNebula和OpenStack项目贡献代码次数最多的机构(以及贡献代码次数的百分比)。可以看出,Eucalyptus和OpenNebula属于以单一机构为主导的开源项目,而CloudStack和OpenStack属于由多家机构共同合作的开源项目。对于CloudStack项目来说,来自Citrix的影响依然非常明显,直接来自citrix.com和cloud.com的邮件地址占了44%(与CY13-Q4相比较上升了3%)。对于OpenStack项目来说,来自RedHat的贡献占了15%,来自IBM的贡献占了11%,随后分别十Mirantis (5%)、Rackspace (4%)、HP (4%)、Suse (3%)、Enovance (2%)和Huawei (1%)。

 CloudStack  Eucalyptus  OpenNebula  OpenStack
 Domain  %  Domain  %  Domain  %  Domain  %
 citrix.com  40  eucalyptus.com  80  opennebula.org  92  redhat.com  15
 gmail.com  19  gmail.com  19  c12g.com  5  gmail.com  15
 apache.org  13  fedoraproject.org  1  cuesoft.eu  1  ibm.com  11
 clogeny.com  5  openstack.org  7
 shubergphilis.com  5  mirantis.com  5
 cloud.com  4  rackspace.com  4
 leaseweb.com  3  hp.com  4
 netapp.com  1  suse.de  3
 betterservers.com  1  enovance.com  2
 cloudops.com  0.6  huawei.com  1

下面这个表格以电子邮件所属域名的形式列出了在CY14-Q1期间向OpenStack项目各个子项目贡献代码最多的机构(以及贡献代码次数的百分比)。

 Cinder  Glance  Horizon  Keystone
 Domain  %  Domain  %  Domain  %  Domain  %
 redhat.com  16  ibm.com  20  gmail.com  23  ibm.com  27
 huawei.com  12  gmail.com  13  redhat.com  11  dstanek.com  12
 gmail.com  12  enovance.com  9  hp.com  11  redhat.com  10
 ibm.com  9  mirantis.com  7  sheep.art.pl  10  metacloud.com  8
 openstack.org  8  rackspace.com  7  intel.com  7  gmail.com  7
 solidfire.com  7  huawei.com  6  da.jp.nec.com  5  dreamhost.com  5
 netapp.com  4  dmllr.de  5  mirantis.org  4  openstack.org  3
 hp.com  4  yahoo.com  5  openstack.org  3  huawei.com  3
 ebaysf.com  2  hp.com  3  enovance.com  3  hp.com  2
 dmllr.de  2  openstack.org  2  cloudwatt.com  2  mirantis.com  2

 

 Nova  Neutron  Swift
 Domain  %  Domain  %  Domain  %
 ibm.com  21  gmail.com  17  swiftstack.com  25
 redhat.com  20  openstack.org  14  redhat.com  18
 gmail.com  11  mirantis.com  10  gmail.com  17
 vmware.com  6  nicira.com  6  enovance.com  8
 rackspace.com  5  redhat.com  5  not.mn  6
 hp.com  4  ibm.com  4  brim.net  4
 intel.com  3  da.jp.nec.com  4  kotori.zaitcev.us  3
 huawei.com  2  cisco.com  3  rackspace.com  2
 stillhq.com  2  unitedstack.com  3  hgst.com  2
 openstack.org  2  hp.com  2  intel.com  1  -

01

累计开发者人口指的是曾经向某个项目提交过代码的开发者总数。图16所示为这四个项目的开发者人口增长趋势。可以看出,OpenStack项目的累计开发者人口最大,是第二名CloudStack的10倍左右。

01

累计贡献机构数量指的是曾经向某个项目提交过代码的机构数量。图16所示为这四个项目的累计贡献机构数量增长趋势。可以看出,OpenStack项目的累计贡献机构数量最多,是CloudStack和Eucalyptus的5倍左右。OpenNebula的累计贡献机构数量相对较少。

与本文相关的PDF版本幻灯片可以从<http://www.qyjohn.net/wp-content/uploads/2014/04/CY14-Q1-IaaS-Community-Analysis.pdf”>这里下载。如果您需要重新分发本文内容,敬请您保留相关作者信息。

One Response to “CY14-Q1 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较”

  1. Hao says:

    楼主真是好人,数据很直观!

Leave a Reply

Panorama Theme by Themocracy