android项目基础架构

开源不仅是开放您的代码,还在于构建一个支持人员的支持基础架构。 为了创建一个充满活力,不断发展和令人兴奋的项目,社区需要能够参与使项目保持活力的治理,文档,代码和实际结构。 如果总体“配置单元”运行良好,则它将吸引更多具有各种技能的个人参与该项目。

尽管许多项目都在争取“一切都开放”,但基础设施通常是封闭的。 通常,只有少数人运行基础架构并保持亮起。 他们有时无法招募帮助,因为,好吧,您无法真正将王国的钥匙交给所有人。 在授予贡献者访问项目基础结构之前,需要一定程度的信任。

在过去的几年中,诸如AnsibleChefPuppet之类的基础架构工具已被广泛采用。 现在可以将开源项目基础结构作为代码开放,并且具有与其他任何贡献者相同的访问级别。 这使过程对贡献者可见,并使社区能够扩展。 您不再受限于只有少数高级访问者可以访问的问题。

为此,我们在研究Gluster时学到了一些东西:

  • 公开决策:使用公共邮件列表进行基础架构相关的讨论和规划。 让社区参与决策过程的每个部分。 具体来说,请避免宣布私下做出的决定。
  • 将基础架构定义为代码:使用Ansible,Puppet或任何其他使贡献者能够推动基础架构发展的配置管理工具。 使用Jenkins Job Builder定义Jenkins作业。 开发人员和更广泛的社区可以以很少的开销定义新的工作。
  • 定义基础架构的所有权:定义基础架构的清晰所有权,并针对故障进行公共验尸。 这种透明性将帮助您的社区信任您的工作。
  • 明确贡献之路:为基础设施贡献定义一条清晰之路。 正如我的朋友伊丽莎白·克鲁姆巴赫·约瑟夫Elizabeth Krumbach Joseph)所说:“如果您需要root用户访问权限才能完成工作,那是一个错误。”

当您尝试开放基础结构时, 遇到问题。 这是我们遇到的一些问题以及如何解决它们。

  • 您将更改现状:在更改基础结构流程时,将更改事物的工作方式。 您的团队可能会对更改有所不满。 确保您提前宣布计划。 逐块进行更改,以便您可以很快发现任何“损坏”。 通过解决影响生产力的问题,使您的团队站在您的一边。
  • 您将需要修复太多的东西:您的基础架构中将有很多需要修复的东西。 小心不要把它变成ak牛刮胡毛 ,这似乎是由一千个毫无意义的不同步骤组成的,所有这些步骤都是一次发生的。 想象一下要刮a牛! 如果要执行任务并发现其他需要修复的内容,请记录下来以备后用,而不要立即修复它们。 您的进度会很慢,但是请确保进度稳定。 重要的是不要被您前面的工作淹没。
  • 您将破坏事情:对流程和基础架构进行大规模更改时,您将破坏事情。 确保对失败进行公开验尸。 制定计划,避免将来出现这种特殊的错误模式。
  • 感觉工作将永远不会结束:我们将秘密告知您:它将永远不会完成。 基础架构随项目需求而变化。 没有“完成”这样的事情。 您将始终有其他需要解决的问题。

我们将带给您的最重要的事情是,打开基础架构不仅很重要,而且围绕它的文档和流程也很重要,这样每个人都可以做出贡献。