导读:OpenStack、OpenNebula、Eucalyptus、CloudStack并称四大开源IaaS平台,其社区活跃度不仅反映了开源平台真实的活力,也是平台的核心价值所在。ezCloud的联合创始人蒋庆野撰文,通过自己开发的Java工具,对四大开源IaaS的社区进行监控,对讨论主题总数、参与讨论人数等进行统计,总结成图表并进行了分析,对广大开发者选择开放平台有一定的指导意义。蒋清野的博客全文如下:
本文的目的是通过论坛和邮件列表的原始数据对OpenStack、OpenNebula、Eucalyptus和CloudStack项目的社区活跃度进行分析和比较。主要的原始数据是自2009年来这四个项目的官方论坛和邮件列表每个月所产生的讨论主题数、帖子数、以及参与讨论的总人数(邮件地址或者用 户账号)。为了获取这些数据,我写了一个Java程 序自动地从这四个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。程序提取的数据被导入MySQL数据库中以便进 行统计分析,统计分析的结果通过LibreOffice生成分析图表。
需要指出的是,Eucalyptus项目从4 月份开始用名为Engage的新论坛取代了原有的论坛,同时又开通了独立的邮件列表。从讨论内容上看,Engage论坛侧重于向用户提供技术支持,邮件列表侧重于社区推广。
CloudStack项目被捐献给Apache后,也于4 月份启用了新的论坛和邮件列表。
如上所述举措,都有可能对社区活跃度产生一定的影响。
图1 和图2分别是如上所述四个项目每个月所产生的讨论主题数和帖子数。可以看出,在过去3 个月中,与OpenStack和CloudStack相关的讨论增长迅猛。同时,与OpenNebula相关的讨论有所降温,而与Eucalyptus相关的讨论开始复苏。但是,在本文所涉及的四个项目中,与Eucalyptus相关的讨论数量是最少的。
需要指出的是,CloudStack项目4 月份的数据有点异常,可以认为是由于迁移论坛和邮件列表造成的波动。与CloudStack项目相关的讨论在5 月份和6 月份之间的迅猛增长,应该是该项目被捐赠给给Apache基金会所带来的正面反馈。Eucalyptus项目也在4 月份迁移到新的论坛和邮件列表,但是这一迁移并没有引起社区活跃度上的波动。这是因为在同一时期该项目在市场和技术方面都没有发生大的变动。(Eucalyptus于6 月20日宣布合并企业版和社区版,彻底开放源代码,但是社区的反应通常会有一个月左右的滞后期。)
Eucalyptus与CloudStack项目都提供独立的论坛和邮件列表。从统计数据来看,Eucalyptus项目的论坛流量占总流量的1/3左右,CloudStack项目的论坛流量占总流量的1/5左右。如果不考虑社区运营的因素,可以认为基于邮件列表的社区形式更容易吸引社区成员的参与。
通常来讲,一个讨论主题得到的回复数越多,表明该主题的讨论越深入。一个论坛或者邮件列表如果只有主帖而没有回复,说明这个社区的参与程度很低。因此,平均意义上的“讨论帖子数/讨论主题数”则反映了一个社区的参与程度,这里我们暂且称之为参与度(Participation Ratio)。图3 展示了这四个项目每个月的“讨论帖子数/讨论主题数”。可以看出,在过去3 个月中,OpenNebula、Eucalyptus和CloudStack三个项目的参与度基本上是接近的,并且都有小幅度的爬升。OpenStack项目的参与度是其他三者的2 倍左右。
图4 所示为这四个项目每个月参与论坛或者邮件列表讨论的总人数。可以看出,在过去3 个月中,CloudStack项目的讨论人数增长迅猛,OpenStack与Eucalyptus项目的讨论人数稳中有升,OpenNebula项目的讨论人数呈缓慢下降趋势。在本文所涉及的四个项目中,Eucalyptus与OpenNebula项目的讨论人数相对较少,仅仅相当于另外两个项目的1/3。
累计社区人口(简称社区人口)指的是曾经通过论坛或者邮件列表参与过讨论的用户和开发者总数。(不包括在论坛或者邮件列表中注册但是从未公开参与讨论的社 区成员。)这些人或多或少地使用过相关产品,但是并不代表他们目前还是活跃用户,一个新版本的发布,或者一次市场推广活动,都有可能将他们中的一部分重新激活。
图5 所示为这四个项目的社区人口增长趋势。Eucalyptus项目的社区人口依然遥遥领先,大概是其他三个项目的2 倍。成长迅猛的OpenStack项目,其社区人口首次超过OpenNebula项目。同样快速成长的CloudStack项目,其社区人口也已经接近OpenNebula项目。
图6 所示为这四个项目每个月新增加的社区人口数量。在过去三个月中,OpenStack项目的社区人口增长遥遥领先与其他三个项目,CloudStack项目排名第二,Eucalyptus与OpenNebula项目则增长缓慢。
值得注意的是,OpenNebula项目的社区人口在6 月份出现了零增长。
在《CY12-Q1 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文中,我曾经预测OpenStack和CloudStack项目的社区人口将在6~9 个月之后超越OpenNebula社区。由于OpenNebula项目的社区人口增长过于缓慢,OpenStack项目提前3 个月实现了这一目标,CloudStack项目也有望于未来的3 个月内实现这一目标。
图7 是图4 与图6的重新组合。其中,实线部分表示的是每个月参与论坛或者邮件列表讨论的人数,虚线部分表示的是每个月新加入论坛或者邮件列表的人数。OpenStack与OpenNebula项目的新增人口占当月活跃用户的30%左右,CloudStack与Eucalyptus项目大概是50%。如果不考虑社区人口的规模的话,可以认为OpenStack与OpenNebula项目的粘性大于CloudStack与Eucalyptus项目。
图8 所示分别是本文所述四个项目的社区人口,过去一个季度的活跃用户数量,以及过去一个月的活跃用户数量。可以看出,虽然Eucalyptus项目的社区人口最多,但是其活跃用户很少,与OpenNebula项目在同一水平上。OpenStack项目过去一个季度和过去一个月的活跃用户分别占社区人口的55%和28%,CloudStack项目过去一个季度和过去一个月的活跃用户分别占社区人口的40%和26%。
OpenStack项目的高速成长应该归结于其市场推广手段。尽管在功能上还有所欠缺(Eucalyptus项目和CloudStack项目提供了更加全面的功能),但是其坚定而有力的广告、公关、宣传和结盟活动,已经使其在社区方面占据了相对有利的位置,为其未来的商业成功打下了坚实的基础。
Citrix收购CloudStack之后马上将其捐赠给Apache基金会,可以说是一次非常成功的市场推广活动。
Eucalyptus于2011年10月从RedHat那里挖来的社区副总裁(VP,Community) Greg DeKoenigsburg似乎依然将大部分的精力放在客户圈而非社区上。在过去6 个月中,Eucalyptus社区的表现形式发生了改变(新的论坛和邮件列表),但是其运营状况与用户活跃度并没有发生明显的变化。5 月20日Eucalyptus项目宣布合并原来的企业版和社区版,所有功能全部以开放源代码的方式提供给用户。这一战略举措无疑是正确的,但是是否能够成功地挽回社区,还取决于Eucalyptus是否会在社区建设方面有持续的投入。Marten Mickos在担任MySQL公司CEO期间曾指出:“如果要在开源软件上取得成功,那么你需要服务于:(1)愿意花费时间来省钱的人;和(2)愿意花钱来节约时间的人。”在一个开放源代码的生态系统当中,愿意花费时间来省钱的人占大多数,但是他们却是这个系统的中坚力量。就目前而言,Eucalyptus比OpenStack更早地获得了一些商业合同。问题在于,如果Eucalyptus项目继续将80%的时间放在那些愿意花钱来节约时间的人(客户)身上,就会失去那些那些愿意花费时间来省钱的人(社区)。当Eucalyptus项目的社区规模和活跃度与竞争对手之间的距离越来越大的时候,即使是现有的客户也会重新考虑采用替代方案的可能性。
至于OpenNebula项目,现在是考虑寻找一位全职社区经理的时候了。该项目在今年4 月11日发布了版本3.4(还在5 月3 日发布了小版本3.4.1),惊人没有在社区里激起任何波澜。在几乎没有任何市场宣传的情况下,OpenNebula项目的活跃社区规模始终维持在与Eucalyptus相当的水平上。OpenNebula项目取得这样的成绩,是因为它能够满足云计算实践者在功能和支持等方面的需求。如果OpenNebula在此基础上进行类似于OpenStack的市场宣传,其社区规模和活跃度一定能够有大幅度的提升。