转自:http://www.csdn.net/article/2013-07-04/2816105-OpenStack-OpenNebula-Eucalyptus-CloudStack
摘要:本文的目的是通过论坛和邮件列表的原始数据对OpenStack、OpenNebula、Eucalyptus和CloudStack项目的社区活跃度进行分析和比较。主要的原始数据是自2009年来这四个项目的官方论坛和邮件列表每个月所产生的数据。
本文的目的是通过论坛和邮件列表的原始数据对OpenStack、OpenNebula、Eucalyptus和CloudStack项目的社区活跃度进行分析和比较。主要的原始数据是自2009年来这四个项目的官方论坛和邮件列表每个月所产生的讨论主题数、帖子数、以及参与讨论的总人数(邮件地址或者用户账号)。为了获取这些数据,我写了一个Java程序自动地从这四个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。程序提取的数据被导入MySQL数据库中以便进 行统计分析,统计分析的结果通过LibreOffice生成分析图表。以下是这些数据来源:
OpenStack
- https://lists.launchpad.net/openstack/
- https://answers.launchpad.net/openstack/
- http://lists.openstack.org/pipermail/*/
- https://ask.openstack.org/
OpenNebula
- http://lists.opennebula.org/pipermail/users-opennebula.org/
- http://lists.opennebula.org/pipermail/ecosystem-opennebula.org/
- http://lists.opennebula.org/pipermail/interoperability-opennebula.org/
Eucalyptus
- https://engage.eucalyptus.com/customer/portal/topics/215645-general-discussions/questions
- http://lists.eucalyptus.com/pipermail/community/ (Until 2013-01)
- https://groups.google.com/a/eucalyptus.com/forum/#!forum/euca-users
CloudStack
- http://mail-archives.apache.org/mod_mbox/incubator-cloudstack-users/
- http://mail-archives.apache.org/mod_mbox/incubator-cloudstack-dev/
- http://mail-archives.apache.org/mod_mbox/incubator-cloudstack-users-cn/
- http://www.cloudstack.org/forum/index.html (Until 2012-09)
从CY13-Q2开始,OpenStack项目启动了一个名为Ask.OpenStack的论坛,我们已经将这个论坛的数据添加到此次分析的数据源当中。值得注意的是,来自Ask.OpenStack的用户和OpenStack其他社区的用户有较大的重合。由于时间有限的关系,在此次分析中我们没有来得及处理同一用户重复计数的问题(这部分的工作我们会在CY13-Q3的分析报告中进行)。
此外,Apache CloudStack项目从孵化器毕业,其邮件列表的名称发生了变化,但是其内容和用户基本不变。值得注意的是,原来在incubator-cloudstack-dev邮件列表中有大量由JIRA自动生成的邮件内容,类似的内容在cloudstack-dev邮件列表中大大减少了。不过我们依然保留了以前的过滤器设置,自动地排除了所有标题中含有”[jira]“标识符的信息。
图1和图2分别是如上所述四个项目每个月所产生的讨论主题数和帖子数。可以看出:
(1) 在过去12个月中,与OpenStack和CloudStack相关的讨论数量在同一水平上,与Eucalyptus和OpenNebula相关的讨论数量在同一水平上;
(2) 在过去12个月中,与OpenStack和CloudStack相关的讨论数量远大于与Eucalyptus和OpenNebula相关的讨论数量。
通常来讲,一个讨论主题得到的回复数越多,表明该主题的讨论越深入。一个论坛或者邮件列表如果只有主帖而没有回复,说明这个社区的参与程度很低。因此,平均意义上的“讨论帖子数/讨论主题数”则反映了一个社区的参与程度,这里我们暂且称之为参与度(Participation Ratio)。
由图3可以看出,在过去12个月中CloudStack和Eucalyptus项目的参与度相对较高,接近于4;OpenStack与OpenNebula项目的参与度相对较低,接近于3。
我们也注意到参与度这个概念引起了一些争议。有些人认为“讨论帖子数/讨论主题数”较低象征着某个社区具有快速解决问题的能力,社区成员所提出的问题能够在很短时间内得到解答,因此不需要多个帖子来解决一个问题。有些人认为“讨论帖子数/讨论主题数”较高可能意味着某个社区可能出现了争论,而这种争论可能已经偏离了某个社区的讨论方向和范围。无论如何,参与度这个名称的确反映了我们的某些主观看法,在一定程度上削弱了本报告的客观性。由于我们暂时没有找到一个更加合适的替代名称,在这个报告里面还是延用原来的名称(欢迎各位读者贡献更好的参数名称)。
图4 所示为这四个项目每个月参与论坛或者邮件列表讨论的总人数。可以看出,CloudStack与OpenStack的活跃用户数量要远大于OpenNebula和Eucalyptus。在过去六个月中,CloudStack、Eucalyptus和OpenStack项目的活跃用户数量都有不同程度的攀升。
值得一提的是,虽然CloudStack的活跃用户数量稍微小于OpenStack,这两个项目的主题和帖子数量是基本相当的。
累计社区人口(简称社区人口)指的是曾经通过论坛或者邮件列表参与过讨论的用户和开发者总数。(不包括在论坛或者邮件列表中注册但是从未公开参与讨论的社区成员。)这些人或多或少地使用过相关产品,但是并不代表他们目前还是活跃用户。图5所示为这四个项目的社区人口增长趋势。可以看出,OpenStack与Eucalyptus项目的社区人口遥遥领先,CloudStack与OpenNebula项目的社区人口相对较低。
问题在于,开源IaaS软件经过这么多年的发展,长期累计社区人口的意义已经越来越弱。一方面,某些早期用户可能已经多次改变了阵营;另一方面,某些早期论坛和邮件列表已经结束了历史使命。从社区活跃度的角度来看,我们认为最近6个月或者最近12个月的累计社区人口可能是有意义的,但是将累计社区人口无限制地延伸到侏罗纪时代,可能会使这个参数失去实用价值。因此,在CY13-Q3的社区活跃度分析报告中,我们倾向于使用最近12个月的累计社区人口进行分析。
图6所示为这四个项目每个月新增加的社区人口数量。在过去三个月中,CloudStack与OpenStack的社区人口增长速度基本相当。
与CloudStack和OpenStack向比较,Eucalyptus和OpenNebula的社区人口增长较为缓慢。
图7是图4与图6的重新组合。其中,实线部分表示的是每个月参与论坛或者邮件列表讨论的人数,虚线部分表示的是每个月新加入论坛或者邮件列表的人数。
OpenStack与OpenNebula项目的新增人口占当月活跃用户的30%左右,CloudStack与Eucalyptus项目大概是50%。如果不考虑社区人口的规模的话,可以认为OpenStack与OpenNebula项目的粘性大于CloudStack与Eucalyptus项目。
图8所示分别是本文所述四个项目的社区人口,过去一个季度的活跃用户数量,以及过去一个月的活跃用户数量。可以看出:
(1) OpenStack的社区人口最多,然后是Eucalyptus、CloudStack、OpenNebula;
(2) 在过去一个季度中,OpenStack的活跃人口最多,然后是CloudStack、Eucalyptus、OpenNebula;
(3) 在过去一个月份中,OpenStack的活跃人口最多,然后是CloudStack、Eucalyptus、OpenNebula。
在CY12-Q3分析中,我们首次提出了“社区活跃度指数”这样一个参数。这个参数是如下几个参数的某种组合:
(1) 当月帖子总数,代表相关讨论的规模;
(2) 当月参与度,代表每个问题获得的回帖数量;
(3) 当季活跃用户,代表从社区获得帮助的可能性(长期);
(4) 当月活跃用户,代表从社区获得帮助的可能性(短期)。
在这个分析中,我们选择如上各个社区的平均值作为参考数据,并将每个社区的数据与参考数据进行比较。我们将每个社区各个参数与平均值的比值之和称为“社区活跃度指数”。可以认为,社区活跃度指数最高的项目,是最活跃的项目。
从图9中可以看出,目前OpenStack项目的“社区活跃度指数”最高(以明显的优势领先),然后是CloudStack、Eucalyptus、 OpenNebula。
如上所述“社区活跃度指数”的计算中同时使用了当季活跃用户和当月活跃用户两个性质类似的数据。在CY13-Q3的社区活跃度分析报告中,我们倾向于仅使用当季活跃用户进行分析。此外,我们也会使用当季帖子总数和当季参与度来替代当月帖子总数和当月参与度这两个参数。
Git数据源分析
曾经有多位读者建议我们基于Git活动对各个主流的开源IaaS项目的开发情况进行分析。我们注意到CloudStack、Eucalyptus、OpenNebula以及OpenStack项目都使用git进行版本管理。因此,我们基于来自git的日志数据对这几个项目的开发情况进行了一些简单的分析。需要指出的是,对于OpenStack项目来说,其数据源包括了托管在github.com上的Cinder、Glance、Horizon、Keystone、Nova、Quantum和Swift子项目。以下是四个开源IaaS项目的Git数据源:
OpenStack
- https://github.com/openstack/quantum.git
- https://github.com/openstack/keystone.git
- https://github.com/openstack/glance.git
- https://github.com/openstack/horizon.git
- https://github.com/openstack/swift.git
- https://github.com/openstack/cinder.git
- https://github.com/openstack/nova.git
OpenNebula
Eucalyptus
CloudStack
在CY13-Q1报告中,我们使用了git log这个命令获取日志数据。从CY13-Q2起,我们将使用git log –no-merges这个命令获取日志数据。
图10所示分别是本文所述四个项目每个月进行提交(commit)操作的次数。总体来看,OpenStack和CloudStack项目提交代码的频率较高。在过去12个月中,这两个项目每个月进行提交操作的次数维持在600上下。Eucalyptus项目提交代码的频率也不低,但是存在较大的波动情况,具有比较明显的批量更新的特征。OpenNebula项目提交代码的频率较低,平均每个月提交代码200次左右。
图11所示分别是OpenStack项目中各个子项目目每个月提交代码的次数。总体来看,Nova子项目提交代码的频率较高,是其他几个子项目的三倍左右。值得注意的是,尽管各个子项目提交代码的频率各不相同,但是其时程曲线基本上是一致的,波峰和波谷基本上出现在相同的时间。这个现象表明尽管OpenStack项目中各个子项目相对独立,但是具有相同或者相似的开发计划和开发进度。可以认为,OpenStack项目在子项目的管理和协调方面是做得比较好的。
图12所示分别是本文所述四个项目每个月提交代码的人数。总体来看,OpenStack项目提交代码的人数远远超过其他三个项目,并且一直保持迅猛增长的势头。CloudStack项目提交代码的人数也有所增长,但是其增长速度较为缓慢。Eucalyptus项目和OpenNebula项目提交代码的人数相对较少,并且在过去12个月当中基本上没有增长。
图13所示分别是OpenStack项目中各个子项目每个月提交代码的人数。总体来看,Nova子项目提交代码的人数较多,是其他几个子项目的三倍左右。
人们通常通过代码贡献者所使用的电子邮件地址来识别其所在的机构。尽管这种方式存在较大的缺陷(例如有一些机构鼓励雇员以个人的名义向开源项目贡献代码),但是还是可以从某种程度上揭示不同机构对某个开源项目的贡献力度。图14所示分别是每个月向本文所述四个项目提交代码(commit操作)的邮件地址所属域名数量。总体来看,OpenStack项目提交代码的域名数量远远超过其他三个项目,并且一直保持迅猛增长的势头。CloudStack项目提交代码的域名数量也有所增长,但是其增长速度较为缓慢。Eucalyptus项目和OpenNebula项目提交代码的域名数量相对较少,并且在过去12个月当中基本上没有增长。
图15所示分别是OpenStack项目中各个子项目每个月提交代码(commit操作)的域名数量。总体来看,Nova子项目提交代码的域名数量较多,是其他几个子项目的三倍左右。
下面这个表格以电子邮件所属域名的形式列出了在CY13-Q2期间向CloudStack、Eucalyptus、OpenNebula和OpenStack项目贡献代码次数最多的机构(以及贡献代码次数的百分比)。可以看出,Eucalyptus和OpenNebula属于以单一机构为主导的开源项目,而CloudStack和OpenStack属于由多家机构共同合作的开源项目。对于CloudStack项目来说,来自Citrix的影响依然非常明显,直接来自citrix.com和cloud.com的邮件地址占了51%。对于OpenStack项目来说,来自IBM的贡献占了14%,来自RedHat的贡献占了12%,来自Mirantis的贡献占了9%,来自HP的贡献占了5%。
CloudStack | Eucalyptus | OpenNebula | OpenStack | ||||
Domain | % | Domain | % | Domain | % | Domain | % |
citrix.com | 46 | eucalyptus.com | 50 | opennebula.org | 100 | gmail | 17 |
apache.org | 23 | gmail.com | 35 | ibm.com | 14 | ||
gmail.com | 12 | brainfood.com | 13 | redhat.com | 12 | ||
cloud.com | 5 | fedoraproject.org | 1 | openstack.org | 9 | ||
schubergphilis.com | 2 | mac.com | 1 | mirantis.com | 8 | ||
leaseweb.com | 2 | hp.com | 5 | ||||
tcloudcomputing.com | 2 | nicira.com | 2 | ||||
zonker.net | 1 | rackspace.com | 2 | ||||
stratosphere.co.jp | 1 | dmllr.de | 2 | ||||
betterservers.com | 1 | solidfire.com | 2 |
下面这个表格以电子邮件所属域名的形式列出了在CY13-Q2期间向OpenStack项目各个子项目贡献代码最多的机构(以及贡献代码次数的百分比)。
Cinder | Glance | Horizon | Keystone | ||||
Domain | % | Domain | % | Domain | % | Domain | % |
solidfire.com | 13 | gmail.com | 22 | redhat.com | 28 | gmail.com | 28 |
hp.com | 10 | hp.com | 16 | gmail.com | 23 | ibm.com | 25 |
redhat.com | 9 | redhat.com | 13 | hp.com | 13 | redhat.com | 18 |
mirantis.com | 8 | rackspace.com | 12 | mirantis.com | 10 | openstack.org | 4 |
ibm.com | 8 | openstack.org | 5 | metacloud.com | 4 | 99cloud.net | 3 |
gmail.com | 7 | ibm.com | 5 | dmllr.de | 2 | inaugust.com | 2 |
openstack.org | 7 | dmllr.de | 3 | inaugust.com | 2 | anarkystic.com | 2 |
dmllr.de | 7 | markwash.net | 3 | me.com | 2 | hp.com | 1 |
canonical.com | 2 | inktank.com | 3 | canonical.com | 2 | stillhq.com | 1 |
unitedstack.com | 2 | inaugust.com | 2 | griddynamics.com | 1 | enovance.com | 1 |
Nova | Quantum | Swift | |||||
Domain | % | Domain | % | Domain | % | ||
ibm.com | 22 | openstack.org | 27 | gmail.com | 25 | ||
gmail.com | 17 | mirantis.com | 12 | swiftstack.com | 16 | ||
redhat.com | 8 | gmail.com | 12 | brim.net | 12 | ||
mirantis.com | 7 | redhat.com | 10 | redhat.com | 10 | ||
openstack.org | 4 | nicira.com | 9 | ibm.com | 7 | ||
hp.com | 4 | ibm.com | 4 | mirantis.com | 6 | ||
pavlovic.me | 3 | cisco.com | 4 | not.mn | 3 | ||
rackspace.com | 3 | da.jp.nec.com | 2 | kotori.zaitcev.us | 3 | ||
codestud.com | 3 | bigswitch.com | 2 | enovance.com | 3 | ||
stillhq.com | 3 | dmllr.de | 2 | hp.com | 1 | ————————- | — |
值得一提的是,程辉创建的UnitedStack对Cinder项目的贡献和杜玉杰所在的99Cloud对Keystone项目的贡献均榜上有名。
原文链接: CY13-Q2 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较
本文是对《 CY13-Q1 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文的补充和更新。本文同时发布了一个英文版本,可以参见 CY13-Q2 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack。
需要说明的是,这个社区活跃度比较项目起源于CY11-Q4,此篇报告是到目前为止已经发布的第七个季度性的报告。尽管作者于2012年10月成为Eucalyptus公司的员工,但是本文中所表达之观点完全是作者本人的观点,而非作者所在公司的观点。还需要指出的是,作者所在的公司完全同意作者以独立的视角继续此项目。(责编:周小璐)