转自: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

  • https://git.opennebula.org/one.git

Eucalyptus

  • https://github.com/eucalyptus/eucalyptus.git

CloudStack

  • https://git-wip-us.apache.org/repos/asf/cloudstack.git

在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公司的员工,但是本文中所表达之观点完全是作者本人的观点,而非作者所在公司的观点。还需要指出的是,作者所在的公司完全同意作者以独立的视角继续此项目。(责编:周小璐)

CY13-Q2 OpenStack、OpenNebula、Eucalyptus、CloudStack社区活跃度比较相关推荐

  1. 开源社区活跃度分析——api.github.com的使用

    目录 前记: 正文--API接口的使用: 少踩坑Tips: 作业Proposal:开源社区活跃度分析Proposal(北航开源软件开发导论第三次作业)_Smily^-^的博客-CSDN博客_开源社区活 ...

  2. Openstack贡献者须知 2 — 社区工作运作 代码贡献流程

    目录 目录 前文列表 订阅邮件列表 Mailing Lists 社区工作运作流程 Openstack 代码贡献流程 PEP8 Python编程风格 查阅相关资源 前文列表 Openstack贡献者须知 ...

  3. java社区活跃度_Java并发编程-活跃度问题

    在讲问题前,我先说明一下什么是活跃度? 一个并发应用及时执行的能力称作活跃度. 我主要讲死锁问题,顺带介绍一下饥饿,弱响应性和活锁. 死锁 死锁这个词大家都听过,我先来罗列一下产生死锁的四个必要条件: ...

  4. vim插件的社区活跃度怎么样

    www.vim.org -> Scripts -> Browse all可以看到有5051个插件. 搜索Nerd可以看到NerdTree插件,它的评分是Rating 7882/2514, ...

  5. 2012年每周推荐阅读汇总

    2012年下半年,我开始了一项名为"每周推荐阅读"的计划,也就是每周给部门里的同事推荐些文章,拓展一下大家的阅读面,不知不觉已经年底了,因为每次的推荐阅读都不太有反馈,所以本打算在 ...

  6. C语言关键字及其解释[共32个]

    C语言一共有32个关键字,如下表所示: 关键字 说明 auto 声明自动变量 short 声明短整型变量或函数 int 声明整型变量或函数 long 声明长整型变量或函数 float 声明浮点型变量或 ...

  7. Fedora 17正式版 亮点抢先体验

    耳目一新的Fedora 17 Fedora 17正式版在经过三次跳票之后,终于在5月29日晚上与各位网友见面了.然而,这款开发代号为"Beefy Miracle",中文译名为&qu ...

  8. Linux窗口最小化消失,任务栏上无法找到的解决方法

    正睿科技 发布时间:2012-06-01 09:50:05 浏览数:260耳目一新的Fedora 17 Fedora 17正式版在经过三次跳票之后,终于在5月29日晚上与各位网友见面了.然而,这款开发 ...

  9. 四大开源平台的定位:OpenStack、CloudStack、OpenNebula和Eucalyptus

    http://www.cloudguide.com.cn/news/show/id/2908.html 看四大开源平台的定位:OpenStack.CloudStack.OpenNebula和Eucal ...

最新文章

  1. react中使用scss_我如何将CSS模块和SCSS集成到我的React应用程序中
  2. 用AI变身16岁女孩,抓住40岁违法警察!20岁男大学生钓鱼执法秀翻美国!
  3. winrar5.50去广告教程(仅供学习使用)
  4. Android Studio Gradle构建脚本
  5. 【正式发布】火星人敏捷开发手册2012-12-25(基于Scrum的敏捷开发免费培训教材及公司内部宣传材料)...
  6. c语言jam的随机数,c – 如何重置随机数引擎?
  7. 06_LR和最大熵模型_统计学习方法
  8. Android IOS WebRTC 音视频开发总结(四一)-- QQ和webrtc打洞能力pk
  9. 1.GitLab 安装使用
  10. IDM俄国大神直装注册版INTERNET DOWNLOAD MANAGER 6.36.7
  11. 点击按钮复制到剪切板
  12. 高中时代的黑历史产物
  13. MATLAB——更换主题颜色
  14. 学习日记--overflow去掉滑条
  15. 未来,Siri将能读心!
  16. 解构金蝶EAS 开发工具
  17. UE4 Sequence学习
  18. 深度清理C盘空间,让你的C盘多出20G
  19. 使用python编写多普勒频移函数,绘制多普勒频移随速度变化的曲线,给出代码并举例,代码以markdown格式给出...
  20. 三、elasticsearch 实际应用(碎片篇)

热门文章

  1. 【计算机毕业设计】宠物管理系统
  2. ARM指令集历史V1-V8
  3. 上海交通大学 计算机 复试,上海交大电院复试回忆
  4. 用c++做一个弹窗恶搞——类似病毒但没危害
  5. 【实战】“TED”演讲——可视化分析
  6. web.xml提示the processing instruction target matching [xX][mM][lL] is not allowed
  7. 用 Python 自动生成数据日报!
  8. 2020年高级Java程序员面试题汇总,含答案总结
  9. Selenium2相关知识最全总结
  10. web仿微信支付界面,自定义模拟键盘