CY12-Q4 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较
本文是对《CY12-Q3 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文的补充和更新。对本文内容感兴趣的读者,可以通过电子邮件或者新浪微博(@qyjohn_)与我联系。
本文同时发布了一个英文版本,可以参见CY12-Q4 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack这个帖子。
需要说明的是,这个社区活跃度比较项目起源于CY11-Q4,此篇报告是到目前为止已经发布的第五个季度性的报告。尽管作者于2012年10月成为Eucalyptus公司的员工,但是本文中所表达之观点完全是作者本人的观点,而非作者所在公司的观点。还需要指出的是,作者所在的公司完全同意作者以独立的视角继续此项目。
本文的目的是通过论坛和邮件列表的原始数据对OpenStack、OpenNebula、Eucalyptus和CloudStack项目的社区活跃度进 行分析和比较。主要的原始数据是自2009年来这四个项目的官方论坛和邮件列表每个月所产生的讨论主题数、帖子数、以及参与讨论的总人数(邮件地址或者用 户账号)。为了获取这些数据,我写了一个Java程 序自动地从这四个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。程序提取的数据被导入MySQL数据库中以便进 行统计分析,统计分析的结果通过LibreOffice生成分析图表。
需要说明的是,CloudStack项目在CY12-Q4期间将域名从原先的http://www.cloudstack.org/全面切换到http://incubator.apache.org/cloudstack/,并停用了基于http://www.cloudstack.org/站点的论坛。在本报告中,我们忽略了在CY12-Q4期间发布在这些论坛中的数据,对分析结果有一定的影响。
此外,我们发布CY12-Q2分析报告之后,有些读者指出来自incubator-cloudstack-dev邮件列表的数据可能有些问题。这个邮件列表里包含了一些由JIRA自动生成的邮件内容。在CY12-Q3的分析中,我们设置了一个过滤器,自动地排除了所有标题中含有”[jira]“标识符的信息。
图1 和图2分别是如上所述四个项目每个月所产生的讨论主题数和帖子数。可以看出:
(1) 与OpenStack和CloudStack相关的讨论数量远大于与Eucalyptus和OpenNebula相关的讨论数量;
(2) 在过去三个月中,与Eucalyptus和OpenNebula相关的讨论数量在同等水平上,只有非常细微的差别。
通常来讲,一个讨论主题得到的回复数越多,表明该主题的讨论越深入。一个论坛或者邮件列表如果只有主帖而没有回复,说明这个社区的参与程度很低。因此,平 均意义上的“讨论帖子数/讨论主题数”则反映了一个社区的参与程度,这里我们暂且称之为参与度(Participation Ratio)。
长期以来,OpenStack项目的参与度远高于其他三个项目的参与度。但是在过去六个月中,CloudStack与Eucalyptus项目的参与度正在稳步增长,OpenStack项目的参与度正在逐步下降。目前CloudStack和Eucalyptus项目的参与度最高,接近于4;OpenStack与OpenNebula项目的参与度次之,接近于3。
图4 所示为这四个项目每个月参与论坛或者邮件列表讨论的总人数。可以看出,CloudStack与OpenStack的活跃用户数量要远大于OpenNebula和Eucalyptus。在过去六个月中,OpenStack项目的活跃用户数量基本上是持续攀升的,但是CloudStack项目的活跃用户数量有一定程度的下降。
值得一提的是,虽然CloudStack的活跃用户数量稍微小于OpenStack,这两个项目的主题和帖子数量是基本相当的。换句话说,CloudStack的用户在社区中比OpenStack的用户更加活跃。
累计社区人口(简称社区人口)指的是曾经通过论坛或者邮件列表参与过讨论的用户和开发者总数。(不包括在论坛或者邮件列表中注册但是从未公开参与讨论的社 区成员。)这些人或多或少地使用过相关产品,但是并不代表他们目前还是活跃用户。
图5 所示为这四个项目的社区人口增长趋势。可以看出,OpenStack与Eucalyptus项目的社区人口遥遥领先,CloudStack与OpenNebula项目的社区人口相对较低。在CY12-Q4报告中,我们预测过OpenStack项目的社区人口很将在CY12-Q4超过Eucalyptus项目。事实上,OpenStack项目仅仅花了一个月时间就实现了这个目标。
在CY12-Q3报告中,我们提出了社区人口数据可能存在重复计数的问题。在CY12-Q4报告中,我们采取了进一步的措施以消除重复计数。可以认为,尽管重复计数的现象依然存在,但是已经降低到对分析结果不产生明显的影响的程度。
图6 所示为这四个项目每个月新增加的社区人口数量。在过去三个月中,CloudStack与OpenStack的社区人口增长速度基本相当(CloudStack项目在2012年10月这个时间点上所展现的异常数据是因为这个分析中没有包括已经被停用的论坛数据。)。
与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。
如上所述“社区活跃度指数”的概念还非常原始,还有很大的优化空间。它有点在于用量化分析的方法取代了传统的感性分析,例如“我认为”、“我相信”、“我猜测”等等。在未来的报告中,我们将基于这个概念每个季度发布一次OpenStack、OpenNebula、 Eucalyptus、CloudStack项目的“社区活跃度指数”排名。当然,我们也会在必要的时候对相关算法进行调整,例如增加或者删除某些参数,或者是调整某些参数的权重。
对于最终用户来说,厂商之间的竞争意味着更多的选择和更好的功能。云计算市场正在发展当中,远远还没有达到成熟的程度。可以预见,未来这个领域的竞争还会更加激烈。
与本文相关的PDF版本幻灯片可以从这里下载。如果您需要重新分发本文内容,敬请您保留相关作者信息。
除了本人所进行的社区活跃度分析之外,IBM公司的Balman A. Baset也进行了一些对不同开源IaaS项目进行比较的工作。他于2012年10月在ACM Symposium on Cloud Computing (SoCC-2012)上发表了题为Open Source Cloud Technologies的教程,值得各位做云计算的同仁学习和参考。
不错,赞
蒋兄辛苦了,分析得非常细致
蒋兄辛苦了,分析得非常细致
Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your weblog?
My blog is in the very same area of interest as yours and my users would truly benefit from a lot of the information you provide here.
Please let me know if this okay with you. Regards!