如果您曾经想加入开源社区并贡献代码,或者开始您自己的开源项目,那么请继续阅读,了解我们在 Red Hat 从零开始创建的有趣而令人敬畏的开源项目。 我是 OpenStack Networking 组的软件质量工程经理,我们团队和研发团队的工程师共同合作创建了 Tobiko 开源测试框架。
有时候,您只需要启动一个新的开源项目。
我们的起点很好。我们已经有了一个名为 Tempest的官方开源测试框架,它致力于全面覆盖 OpenStack API 和模拟工作云的常见场景。
我工作的 OpenStack 团队经常构建新测试,并在持续集成开源系统的帮助下,针对各种云配置执行这些测试——下游使用 Jenkins,上游使用 Zuul。
但是 OpenStack 云正在被电信和企业行业大规模采用。我们正在经历复杂性的快速增长,这意味着更多的测试场景,并且我们发现我们的旧工具不再非常适合。
定义挑战,定义需求
我们很快意识到,首要的基本步骤是定义客户的新需求。 这需要我们研究客户报告给我们的问题。 我们审查了来自现场的错误数据库,将所有问题分成几个部分,并分析了数据。
下一步是审查现有项目。 理所当然地,采用现有项目应该比从头开始创建一个新项目更快。 然而,我们没有找到适合我们需求的工具,也没有找到任何可以轻松改编的开源工具。
它是如何发生的
那时我们意识到了。
是时候开始塑造和设计一个新项目了。
我们不想在没有认真思考和多样化投入的情况下做出此举。 因此,我们选择使用 开放决策框架 (ODF)。 这种方法的主要好处是在项目开发的早期阶段尽可能多地获得反馈,这帮助我们节省了大量时间。
经过几次会议,在会议中我们进行了富有成效的头脑风暴会议,我们首先起草了一些我们希望认真考虑的正面和负面反馈。
我们迭代了。 我们认真对待我们的讨论和反馈,并努力达成解决方案。
最后,我们觉得可以进入实施阶段了。
我们首先聚集了一群拥有时间、能力,也许最重要的是,有热情根据我们在计划期间达成的决定来推动项目的人员。 一旦项目开始成形,越来越多的贡献者联系团队,考虑将其用于他们的新框架。
当它仅以几个段落写下来时,它看起来如此之快,但这个过程是有意为之的,我们非常尊重它。 在过去的一年左右的时间里,我们拥有一支强大的核心工程师团队,他们协作解决各种开发挑战,以支持云的快速变化的基础设施。
以下是他们对所做工作的评价,这些评价来自参与该项目的不同人员的几个不同角度。
Slawomir Kaplonski,Red Hat 首席软件工程师
是什么驱使您为开源项目做出贡献?
我为我正在使用的项目做出贡献。 如果我发现有一些 bug 困扰我,或者缺少一些我希望在那里看到的功能,我会尝试调查为什么会这样,至少报告一个 bug 或一个增强请求 (RFE) 给项目。 在最好的情况下,我也尝试提出一个补丁。
这可能是人们为一个项目做出贡献的主要原因,或者至少是他们开始的原因。 这是因为稍后当您更多地参与到一个项目中时,您会更加关心该项目,您会了解项目周围的其他人,并且事情会有所不同。
Tobiko 开源的好处是什么?
如果(当)来自不同团队,甚至公司的员工使用它时,他们可以直接为项目做出贡献,将他们的想法和用例带到那里。 他们可以而且将会贡献代码来修复他们遇到的 bug 并添加他们需要的新功能。
使项目开源使其可供广泛的受众使用,这可以帮助项目成长。
Federico Ressi,Red Hat 高级软件质量工程师
作为从项目一开始就为此努力的主要贡献者,您从 Tobiko 的工作中吸取的主要教训是什么?
我从 Tobiko 得到的教训,不分先后顺序,如下:
- 避免尽快完成工作,因为未来的重构通常会付出更大的代价。 最好随着时间的推移提交小的增量更改。
- 仅在您有非常明确的需求后才开始工作。
- 使用持续集成系统来协助测试您自己的代码。 这会导致稳定性。
Tobiko 开源的好处是什么?
Tobiko 开源的最大好处是能够重用其他开源代码和 OpenDev 基础设施。 它还提高了最终用户的信任度以及用户对项目的理解。
Eduardo Olivares Toledo,Red Hat 高级软件质量工程师
您是在项目已经投入生产后加入团队的。 加入现有项目和社区感觉如何?
我开始参加 Tobiko 会议并从他们的看板上承担小任务。 核心贡献者是主要的联系技术点,当我开始为项目做贡献时,我很快就开始问他们技术问题。
我还加入了 Tobiko IRC 频道和邮件列表,以便了解最新信息并参与不同的讨论。
哪些资源帮助您学习该项目?
一些上游文档主要帮助我开始下载、安装和运行 Tobiko 测试。
我还花了一些时间来审查现有的 CI 作业,这是了解 Tobiko 如何与 Openstack 一起使用、Tobiko 测试如何工作的一个绝佳方式,并且我可以开始为修复我发现的一些问题做出贡献。
Tobiko 基于标准的 Python 库,例如 testtools 和 paramiko,这使得启动过程更加容易(如果您对 Python 测试框架有一定的经验,或者有大量的文档可用,那么您就会熟悉它们)。
开源的好处是什么?
开源项目有几个众所周知的好处。 我想强调以下几点:
- 来自不同组织和公司的人员的贡献和反馈。 Tobiko 项目尚未实现这一点,因为所有贡献者都是 Red Hat 的员工。 Federico 在上次 OpenStack PTG 期间向 Neutron 社区介绍了 Tobiko,希望会有更多人参与该项目。
- 由于 CI 作业在上游运行,因此反馈周期更短。 这已经到位,因为 Tobiko CI 作业会在最新的 OpenStack 版本上执行每个新的 Tobiko 补丁。 因此,一些 OpenStack bug 在非常早期的阶段就被发现了。 Tobiko 正在 Neutron 的定期作业队列中运行,这意味着它每天检查 master 分支的 gates,这是 Tobiko 的一项了不起的成就。
一起构建软件
从我作为组织和团队以及项目的一部分的经理的角度来看,我确定了几个关键点,这些关键点有助于项目更快地成长并实现我们正在寻找的价值:
- 经验:在项目初期,我认识到需要一位经验丰富的开源社区成员加入团队,以帮助处理与社区相关的主题。
- 劳动分工:我们决定提升更多人担任核心审查员的角色,以加快开发周期并在团队成员之间分担责任。
- 教育:我们需要更多地关注该项目,以吸引更多人加入这项工作。 我们在公司内外的相关会议中组织了讲座,发送了包含新功能和成就示例的电子邮件,并普遍帮助推广该项目。
构建软件和参与开源社区一直是一种有趣、有教育意义且令人满足的体验。 它比以往任何时候都更能教会我开源的价值,我很高兴有机会与一群非常有才华和积极性的人一起从事这项工作。
感谢 Federico Ressi、Slawek Kaplonski、Pini Komarov、Eduardo Olivares Toledo、Alex Katz、Omer Scwartz、Assaf Muller 和 Arie Bergman。
如果您对 OpenStack 测试感兴趣,请加入我们的项目!
评论已关闭。