CY13-Q3 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较
本文是对《CY13-Q2 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文的补充和更新。对本文内容感兴趣的读者,可以通过电子邮件或者新浪微博(@qyjohn_)与我联系。
本文同时发布了一个英文版本,可以参见CY13-Q3 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack这个帖子。
需要说明的是,这个社区活跃度比较项目起源于CY11-Q4,此篇报告是到目前为止已经发布的第八个季度性的报告。尽管作者于2012年10月至2013年7 月间曾短暂地就职于Eucalyptus公司,但是本文中所表达之观点完全是作者本人的观点,而非作者目前或以前所在公司的观点。
本文的目的是通过论坛和邮件列表的原始数据对OpenStack、OpenNebula、Eucalyptus和CloudStack项目的社区活跃度进 行分析和比较。主要的原始数据是自2009年来这四个项目的官方论坛和邮件列表每个月所产生的讨论主题数、帖子数、以及参与讨论的总人数(邮件地址或者用 户账号)。为了获取这些数据,我写了一个Java程 序自动地从这四个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。程序提取的数据被导入MySQL数据库中以便进 行统计分析,统计分析的结果通过LibreOffice生成分析图表。
从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项目的参与度相对较低,接近于2。
我们也注意到参与度这个概念引起了一些争议。有些人认为“讨论帖子数/讨论主题数”较低象征着某个社区具有快速解决问题的能力,社区成员所提出的问题能够在很短时间内得到解答,因此不需要多个帖子来解决一个问题。有些人认为“讨论帖子数/讨论主题数”较高可能意味着某个社区可能出现了争论,而这种争论可能已经偏离了某个社区的讨论方向和范围。无论如何,参与度这个名称的确反映了我们的某些主观看法,在一定程度上削弱了本报告的客观性。由于我们暂时没有找到一个更加合适的替代名称,在这个报告里面还是延用原来的名称(欢迎各位读者贡献更好的参数名称)。
图4 所示为这四个项目每个月参与论坛或者邮件列表讨论的总人数。可以看出,OpenStack项目的活跃用户数量要远大于其他三个项目。CloudStack项目的活跃用户数量也明显大于OpenNebula和Eucalyptus。在过去12个月中,CloudStack和OpenStack项目的活跃用户数量都在稳步攀升,而Eucalyptus和OpenNebula项目的活跃用户数量基本上没有增长。
值得一提的是,虽然CloudStack的活跃用户数量稍微小于OpenStack,这两个项目的主题和帖子数量是基本相当的(参见图1和图2)。
累计社区人口(简称社区人口)指的是曾经通过论坛或者邮件列表参与过讨论的用户和开发者总数。(不包括在论坛或者邮件列表中注册但是从未公开参与讨论的社 区成员。)这些人或多或少地使用过相关产品,但是并不代表他们目前还是活跃用户。图5 所示为这四个项目的社区人口增长趋势。可以看出,OpenStack与Eucalyptus项目的社区人口遥遥领先,CloudStack与OpenNebula项目的社区人口相对较低。
问题在于,开源IaaS软件经过这么多年的发展,长期累计社区人口的意义已经越来越弱。一方面,某些早期用户可能已经多次改变了阵营;另一方面,某些早期论坛和邮件列表已经结束了历史使命。从社区活跃度的角度来看,我们认为最近6 个月或者最近12个月的累计社区人口可能是有意义的,但是将累计社区人口无限制地延伸到侏罗纪时代,可能会使这个参数失去实用价值。
图6 所示为这四个项目每个月新增加的社区人口数量。在过去六个月中,CloudStack与OpenStack的社区人口增长速度基本相当。
与CloudStack和OpenStack向比较,Eucalyptus和OpenNebula的社区人口增长较为缓慢。
图7 是图4 与图6的重新组合。其中,实线部分表示的是每个月参与论坛或者邮件列表讨论的人数,虚线部分表示的是每个月新加入论坛或者邮件列表的人数。
在过去12个月中,OpenStack与CloudStack项目的新增人口占当月活跃用户的30%左右,OpenNebula与Eucalyptus项目大概是50%。如 果不考虑社区人口的规模的话,可以认为OpenStack与CloudStack社区的粘性大于OpenNebula与Eucalyptus社区。
图8 所示分别是本文所述四个项目的社区人口,过去一个季度的活跃用户数量,以及过去一个月的活跃用户数量。可以看出:
(1) OpenStack的社区人口最多,然后是Eucalyptus、CloudStack、OpenNebula;
(2) 在过去一个季度中,OpenStack的活跃人口最多,然后是CloudStack、Eucalyptus、OpenNebula;
(3) 在过去一个月份中,OpenStack的活跃人口最多,然后是CloudStack、Eucalyptus、OpenNebula。
我们还计算了本季度活跃人口与累计社区人口的比值。对OpenStack项目来说,这个比值是36.3%;对于CloudStack项目来说,这个比值是24.2%;对于OpenNebula项目来说,这个比值是11.8%;对于Eucalyptus项目来说,这个比值是4.3%。很显然,相当部分的OpenStack和CloudStack社区成员选择了留下,而大部分的Eucalyptus社区成员选择了离开。这与我们在图7 中所观察到的现象(OpenStack与CloudStack社区的粘性大于OpenNebula与Eucalyptus社区)是一致的。
在CY12-Q3分析中,我们首次提出了“社区活跃度指数”这样一个参数。从CY13-Q3开始,这个参数修改为如下几个参数的组合:
(1) 本季度帖子总数,代表相关讨论的规模;
(2) 本季度参与度,代表每个问题获得的回帖数量;
(3) 本季度活跃用户,代表从社区获得帮助的可能性(长期)。
在这个分析中,我们选择如上各个社区的平均值作为参考数据,并将每个社区的数据与参考数据进行比较。我们将每个社区各个参数与平均值的比值之和称为“社区活跃度指数”。可以认为,社区活跃度指数最高的项目,是最活跃的项目。
从图9 中可以看出,目前OpenStack项目的“社区活跃度指数”最高(以明显的优势领先),然后是CloudStack、Eucalyptus、 OpenNebula。
曾经有多位读者建议我们基于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这个命令获取日志数据。
图10所示分别是本文所述四个项目每个月进行提交(commit)操作的次数。总体来看,OpenStack项目提交代码的频率远远超过其他三个项目。这是由于OpenStack项目的数据源一共包含了90个子项目。CloudStack项目提交代码的频率也明显高于Eucalyptus和OpenNebula。与OpenNebula项目相比较,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-Q3期间向CloudStack、Eucalyptus、OpenNebula和OpenStack项目贡献代码次数最多的机构(以及贡献代码次数的百分比)。可以看出,Eucalyptus和OpenNebula属于以单一机构为主导的开源项目,而CloudStack和OpenStack属于由多家机构共同合作的开源项目。对于CloudStack项目来说,来自Citrix的影响依然非常明显,直接来自citrix.com和cloud.com的邮件地址占了48%(与CY13-Q2相比较降低了3%)。对于OpenStack项目来说,来自RedHat的贡献占了15%,来自IBM的贡献占了11%,来自HP的贡献占了5%,来自Mirantis和Rackspace的贡献各占了4%。
CloudStack | Eucalyptus | OpenNebula | OpenStack | ||||
Domain | % | Domain | % | Domain | % | Domain | % |
citrix.com | 46 | eucalyptus.com | 50 | opennebula.org | 99.4 | redhat.com | 15 |
apache.org | 23 | gmail.com | 40 | gmail.com | 0.3 | gmail.com | 14 |
gmail.com | 12 | brainfood.com | 8 | tobru.ch | 0.3 | ibm.com | 11 |
leaseweb.com | 3 | fedoraproject.org | 1 | openstack.org | 6 | ||
cloud.com | 2 | hp.com | 5 | ||||
schubergphilis.com | 2 | rackspace.com | 4 | ||||
clogeny.com | 2 | mirantis.com | 4 | ||||
widodh.nl | 1 | inaugust.com | 2 | ||||
betterservers.com | 0.6 | suse.de | 2 | ||||
ianduffy.ie | 0.6 | enovance.com | 1 |
下面这个表格以电子邮件所属域名的形式列出了在CY13-Q2期间向OpenStack项目各个子项目贡献代码最多的机构(以及贡献代码次数的百分比)。值得一提的是,程辉所创建的UnitedStack几乎在所有的子项目中都有突出的贡献,杜玉杰所在的九洲云对Glance项目的贡献也较为突出(九洲云在CY13-Q2中对Keystone项目有突出贡献)。此外,我们注意到Intel公司也开始向OpenStack贡献代码。我们知道Intel公司自从OpenStack项目创建之初就表示大力支持OpenStack项目。以前Intel公司内部试图在OpenStack的一个早期版本的基础上打造一个Intel自己的OpenStack发行版,并导致了Intel自己的OpenStack版本与OpenStack主干不相兼容的情况。显然,Intel公司已经意识到更好的选择是直接加入OpenStack主干的开发,而不是关起门来在家里自己搞一个发行版。
Cinder | Glance | Horizon | Keystone | ||||
Domain | % | Domain | % | Domain | % | Domain | % |
ibm.com | 14 | rackspace.com | 22 | da.jp.nec.com | 17 | ibm.com | 33 |
hp.com | 14 | gmail.com | 21 | redhat.com | 15 | gmail.com | 12 |
gmail.com | 9 | ibm.com | 18 | gmail.com | 13 | redhat.com | 11 |
solidfire.com | 8 | hp.com | 9 | hp.com | 11 | metacloud.com | 7 |
mirantis.com | 7 | redhat.com | 7 | mirantis.com | 7 | 99cloud.net | 5 |
intel.com | 7 | intel.com | 3 | metacloud.com | 4 | hp.com | 4 |
openstack.org | 6 | dmllr.de | 2 | strikeawe.com | 3 | marantis.com | 3 |
redhat.com | 4 | 99cloud.net | 2 | gmx.de | 2 | inaugust.com | 3 |
unitedstack.com | 3 | outlook.com | 2 | b1-systems.de | 2 | openstack.org | 3 |
canonical.com | 3 | canonical.com | 1 | unitedstack.com | 1 | unitedstack.com | 2 |
Nova | Neutron | Swift | |||||
Domain | % | Domain | % | Domain | % | ||
ibm.com | 26 | gmail.com | 19 | gmail.com | 36 | ||
redhat.com | 14 | openstack.org | 16 | redhat.com | 20 | ||
gmail.com | 11 | nicira.com | 11 | swiftstack.com | 8 | ||
mirantis.com | 6 | mirantis.com | 8 | enovance.com | 7 | ||
rackspace.com | 5 | cisco.com | 7 | kotori.zaitcev.us | 5 | ||
codestud.com | 4 | ibm.com | 4 | unitedstack.com | 2 | ||
intel.com | 4 | unitedstack.com | 3 | not.mn | 2 | ||
vmware.com | 3 | redhat.com | 3 | dmllr.de | 2 | ||
citrix.com | 1 | da.jp.nec.com | 2 | brim.net | 2 | ||
canonical.com | 1 | dreamhost.com | 2 | hp.com | 1 | ————————- | — |
与本文相关的PDF版本幻灯片可以从这里下载。如果您需要重新分发本文内容,敬请您保留相关作者信息。
[…] A Chinese version of this article is published at the same time, which can be found at CY13-Q3 OpenStack, OpenNebula, Eucalyptus, CloudStack社区活跃度比较. […]
[…] A Chinese version of this article is published at the same time, which can be found at CY13-Q3 OpenStack, OpenNebula, Eucalyptus, CloudStack社区活跃度比较. […]
我碰到个问题想请教下,我用virtualbox安装fuelweb后,安装openstack报错,都是采用的默认配置,网络配置参考Fuel-for-Openstack-3.1-UserGuide.pdf配的,网络测试也是成功的,能否帮忙看下什么原因,报错信息:Could not retrieve catalog from remote server:Error 400 on SERVER:Unsupported network manager:nova.network.manager…….谢谢!
[…] 蒋清野 。http://www.qyjohn.net/?p=3399 […]
[…] 本文是对《CY13-Q3 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文的补充和更新。对本文内容感兴趣的读者,可以通过电子邮件或者新浪微博(@qyjohn_)与我联系。 […]
[…] 本文是对《CY13-Q3 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文的补充和更新。对本文内容感兴趣的读者,可以通过电子邮件或者新浪微博(@qyjohn_)与我联系。 […]
[…] 按照《OpenStack, OpenNebula, Eucalyptus, CloudStack 社区活跃度比较》的统计,貌似 CloudStack 项目的活跃程度仅次于 OpenStack. 和大多数云计算、集群软件一样,CloudStack 也是控制节点+计算节点这种架构,控制节点(cloudstack-management)用来统一管理计算节点,提供资源分配和任务,提供 API、GUI、数据库等服务;计算节点(cloudstack-agent)则用来跑虚拟机。我们需要做的是, […]
[…] 按照《OpenStack, OpenNebula, Eucalyptus, CloudStack 社区活跃度比较》的统计,貌似 CloudStack 项目的活跃程度仅次于 OpenStack. 和大多数云计算、集群软件一样,CloudStack 也是控制节点+计算节点这种架构,控制节点(cloudstack-management)用来统一管理计算节点,提供资源分配和任务,提供 API、GUI、数据库等服务;计算节点(cloudstack-agent)则用来跑虚拟机。我们需要做的是, […]