OpenStack 每 6 个月发布一个新版本。Essex 是 6 个月前发布的,Folsom 于 9 月 27 日发布。每个版本之后都会有一份第三方报告,评估个人和公司的贡献。在本文中,我想谈谈我们新浪 OpenStack 开发团队如何作为 OpenStack 项目的重要公司贡献者参与 OpenStack 社区,以及我们如何为 OpenStack Folsom 做出贡献?
6 个月前,在 ReadWriteWeb 发表的 谁编写了 OpenStack Essex? 报告中,我们惊讶地看到新浪首次被列入前 10 名的 bug 修复公司之列,排名第 9。我的团队深受鼓舞,我们从未想过我们在 OpenStack 上做的一些小工作能够与 Rackspace、RedHat、IBM 和 HP 等国际 IT 巨头并列。从那时起,我们更加重视 OpenStack 官方项目的社区开发,投入更多资源,并鼓励所有团队成员参与 OpenStack 社区开发。
因此,根据 Mark McLoughlin(来自 Red Hat 的 OpenStack 贡献者)维护的 openstack-gitdm 的统计数据,我们在 Folsom 版本的发布过程中取得了很大进展,该工具从 git 提交、Gerrit 和 launchpad 中提取了 OpenStack 7 个核心项目的贡献数据。
总的来说,我们为 OpenStack 的 7 个核心项目贡献了 147 个补丁,排名第 4;有 74 个 bug 修复被批准,也排名第 4;合并了 11,787 行代码,排名第 8,并且有 18 名贡献者在 Folsom 版本中贡献了代码,排名第 2,仅次于 Rackspace。 Bitergia 关于 Folsom 的报告 使用不同的工具集和方法也得出了类似的结果。(更多统计图表见下面的图片库)
此外,我们参与了 7 个核心项目的协作开发,这意味着我们在这些项目中的投资是平衡的,我们相信这种策略将使我们更好地理解整个 OpenStack 框架和不同的组件。如果仅按补丁数量计算,我们在 Nova 中排名第 6,在 Quantum 中排名第 3,在 Cinder 中排名第 3,在 Glance 中排名第 6,在 Keystone 中排名第 3,在 Horizon 中排名第 11。
但是为什么、如何以及我们新浪 OpenStack 团队为 OpenStack 社区和 OpenStack 项目做出了哪些贡献?
为什么和如何?
在 2011 年年中,当 Diablo 版本正在加紧开发时,我们决定将 OpenStack 用作我们新浪 IaaS 公有云、新浪 Web Services (SWS) 以及除了新浪应用引擎 (SAE) 之外的另一个战略产品的底层系统,SAE 由我的前团队成员开发,并且是中国最受欢迎的公有 PaaS 云。但当时 OpenStack 存在大量 bug,不够稳定,无法投入生产部署,并且缺少一些基本组件,例如计费、监控和负载均衡等。因此,我们投入了几名工程师进行 bug 修复、实现新功能和设计必要的服务。起初,我们从 OpenStack 的特定提交分支 fork 了一个内部分支,并在内部分支上进行了大量开发。后来我们发现,如果继续这种状况,很难合并上游更新到我们自己的分支,我们的项目将会变得危险,因为它会越来越远离官方项目,最终我们将失去社区和生态系统。因此,我们立即停止了这种趋势并删除了我们自己的 fork。相反,我们加入了社区,与世界各地的专家合作,并将我们自己的公有云项目的需求和 OpenStack 社区的需求结合起来,以便我们能够避免重复开发,这对于社区和我的雇主来说都是双赢的局面。事实上,我们已经将所有的 bug 修复和功能改进贡献给了上游。我们还开源了我们自己的计费 (Dough) 和监控 (Kanyun) 实现。我们从这种改变中受益匪浅。
首先,最重要的是,我的团队成员中的许多人通过协作社区开发,在短时间内从新手成长为经验丰富的 OpenStack 贡献者,从而加快了我们自己项目的进度。
其次,通过贡献我们自己的功能实现和开源其他项目,我们获得了 PTL、核心开发人员和社区的大量宝贵反馈,指导我们进行更好的软件设计和实现。
这就是我们参与社区开发并为 OpenStack 做出贡献的原因和方式。
是什么?
除了上述代码贡献之外,我们在过去 6 个月里还为 OpenStack 做了哪些工作?
作为中国首个生产 OpenStack 云的早期 OpenStack 开发团队,我们做了很多工作来推广 OpenStack 在中国,并建立 COSUG,使其成为中国最活跃和最具影响力的开源用户组。具体来说
- 在我们的 174 个补丁中,其中一些被标记为高优先级,对 OpenStack 项目的稳定性和可用性至关重要,包括
- 将 COSUG 打造为仅次于官方 OpenStack 社区的第二大用户组,总成员约 3000 人,具体请参见 Hui Cheng 在 深圳 OpenStack 见面会 上发表的 COSUG 更新演示文稿。
- 作为 COSUG 的负责人,我们的团队领导 Hui Cheng 负责运营 OpenStack 中文门户网站 www.openstack.org.cn、COSUG ML、COSUG 官方微博账号 @OpenStack (Weibo.com/OpenStack) 以及 OpenStack 活动安排。
- 我们投入了大量时间和精力共同组织了 2012 年 8 月在北京举行的 OpenStack 亚太地区会议 (OSAC),使其成为亚洲最大、最成功的云活动。正是这次会议让 OpenStack 及其社区被大多数中国 IT 从业者和公司广泛了解和认可。
- 我们与英特尔共同创立了中国开源云联盟 (COSCL),正式支持他们的开发者共享研发资源,并共同参与和贡献 OpenStack 官方项目和社区。请参阅 关于 COSCL 的新闻报道。
- 我们启动了 StackLab.org 项目,因为 StackLab.org 不可从中国访问。StackLab 是一个完全可访问的 OpenStack 实验室,现在主要为云开发者、用户和任何对 OpenStack 感兴趣的人提供免费的 OpenStack 沙箱,用于测试和体验 OpenStack。我们吸引了 200 多名注册用户,不到一周的时间。这里 是 StackLab 新闻报道及其 HOWTO 文档。
- 我们计划了全国 OpenStack 推广活动 OpenStack China Tour,这是一系列在中国主要城市的见面会,涵盖了中国最活跃的 OpenStack 用户和开发者,例如 北京、深圳、成都、武汉、西安和上海,并且可能还会涉及更多城市。
- 我们还通过 InfoQ、CSDN、《程序员杂志》和我们的多语言团队博客 freedomhui.com 发表了关于 OpenStack 项目和市场机会的文章和博客,这些文章、博客和我们的幻灯片已被中国 OpenStack 用户视为了解和学习 OpenStack 的重要来源和参考。
还有什么?
在 4 月的 OpenStack 会议和设计峰会上,我们通过演示文稿 将 OpenStack 集成到现有基础设施 和 Dough:OpenStack 计费项目 分享了我们的工作。
为了即将于圣地亚哥举行的 OpenStack Summit,我们准备了一个演示文稿 OpenStack 公有云中的 DevOps,以及一个设计提案 Cinder 的本地存储卷插件,用于 Grizzly,期待在盛会上与大家见面。
2012 年 8 月,我被 OpenStack 全球社区的个人成员选为 OpenStack Foundation 董事会成员,这促使我继续为 OpenStack 项目和社区做出贡献、推广和更深入地参与。
摘要
即使我们完成了这些工作,我认为这还不够,我们仍然有很大的空间可以做得更好。
例如,即使按 changeset 或 bugfix 计算,平均更改行数与 Rackspace、RedHat 等开发人员相比仍然不高。代码影响力的排名也不高,到目前为止,我们还没有任何一个项目的核心开发人员,等等。
但我们相信新浪 OpenStack 开发团队在 Grizzly 中一定会取得更大的进展和更多的贡献。
最后,我们必须感谢 OpenStack 社区和新成立的 OpenStack Foundation,他们帮助我们成长,为我们提供沟通和深入了解 OpenStack 核心的指导。(请参阅 OpenStack Foundation 生日全球见面会 在北京举行)
更重要的是,OpenStack 为我们提供了成功的绝佳机会,不仅在职业方面,而且在业务方面。
本文由 Webhostinggeeks.com 的 Anja Skrba 翻译成 塞尔维亚-克罗地亚语。