开放项目基础设施的 4 种方式

了解如何构建一个支持性基础设施,吸引人们做出贡献。
374 位读者喜欢这篇文章。
putting the pieces together

Opensource.com

开源不仅仅是开放你的代码,还包括构建一个支持性基础设施,吸引人们做出贡献。 为了创建一个充满活力、不断发展和令人兴奋的项目,社区需要能够参与到治理、文档、代码和实际维持项目运行的结构中。 如果整个“蜂巢”运作良好,它会吸引更多具有不同技能的人加入到项目中。

尽管许多项目都在努力实现“开放一切”,但基础设施通常对贡献是封闭的。 通常,只有少数人运行基础设施并维持运行。 有时他们无法招募到帮助,因为,你真的不能把王国的钥匙交给每个人。 在授予贡献者访问项目基础设施的权限之前,需要一定程度的信任。

在过去的几年里,像 Ansible, Chef, 和 Puppet 这样的基础设施工具已经被广泛采用。 现在可以将项目基础设施作为代码开源,并提供与其他贡献者相同的访问级别。 这使得该过程对贡献者可见,并使社区能够扩展。 你不再受限于只有少数高水平的贡献者才能访问的问题。

鉴于此,以下是我们参与 Gluster 项目时学到的一些经验:

  • 公开做出决策: 使用公共邮件列表进行与基础设施相关的讨论和规划。 让社区参与决策过程的每个部分。 特别是,避免宣布私下做出的决定。
  • 将基础设施定义为代码: 使用 Ansible、Puppet 或任何其他配置管理工具,使贡献者能够驱动基础设施开发。 使用 Jenkins Job Builder 定义 Jenkins 任务。 开发人员和更广泛的社区可以用很少的开销定义新任务。
  • 定义基础设施的所有权: 通过对失败的公开事后分析来定义基础设施的明确所有权。 这种透明度将有助于你的社区信任你做好你的工作。
  • 清除贡献的道路: 为基础设施贡献定义清晰的路径。 正如我的朋友 Elizabeth Krumbach Joseph 所说,“如果你需要 root 权限才能完成你的工作,那这是一个 bug。”

当你尝试开放你的基础设施时,你将会遇到问题。 以下是我们遇到的一些问题以及如何解决它们。

  • 你将改变现状: 当你改变基础设施流程时,你将改变事物的工作方式。 你的团队可能会对这些变化感到不满。 确保你提前宣布你的计划。 分块进行更改,以便你可以尽快发现任何“损坏”。 通过修复影响其生产力的事情,让你的团队站在你这边。
  • 你将想要修复太多的东西: 你的基础设施中会有很多需要修复的东西。 谨防将其变成 牦牛剃毛(yak shave),这似乎是由一千个毫无意义的不同步骤组成的,所有步骤同时发生。 想象一下试图给牦牛剃毛! 如果你试图执行一项任务并发现其他需要修复的东西,请记录下来以供以后使用,而不是试图立即修复它们。 你的进度会很慢,但要确保它是稳定的。 重要的是不要被你面前的工作压垮。
  • 你将破坏东西: 当你对流程和基础设施进行大规模更改时,你将破坏东西。 确保你对你的失败进行公开的事后分析。 制定一个计划,以避免将来出现这种特定的错误模式。
  • 感觉工作永远不会结束: 我们会告诉你一个秘密:它永远不会完成。 基础设施随着项目的需求而变化。 没有“完成”这样的事情。 你总会有其他需要修复的东西。

我们要留给你的最重要的事情是,开放基础设施很重要,但基础设施周围的文档和流程也很重要,以便每个人都可以做出贡献。

标签
User profile image.
Nigel 是 Gluster 的 CI 架构师,在印度工作。 他热爱开源,因为它使他能够为不断增长的知识库做出贡献。 他是 Mozilla 的贡献者,当他不工作时,他喜欢做饭或长跑。 没人确定他是否真的睡过觉。

贡献者

评论已关闭。

Creative Commons License本作品采用 Creative Commons Attribution-Share Alike 4.0 International License 授权。
© . All rights reserved.