【编者的话】本文是Docker用户命名空间功能实现作者写的一篇关于开源社区的文章。他的观点是一切的成功都离不开社区的鼎力支持,所以当你加入一个开源项目的时候,尽量去真正的参与其中,帮助其他人,建立社区影响力。
考虑到潜在的国际读者,这个博客的标题借鉴自一个老的美国总统竞选词,“ 傻瓜,经济才是关键啊! ”不过,我是什么意思呢?在过去的一周,因为我在Docker 用户命名空间 的工作,收到了很多的祝贺。这真的一个很好玩的事情,因为这荣耀的瞬间我体会到了 斯诺登 的感觉,“哦,不,又一页页的Twitter通知,我可没有时间!”当然,完成一个看似艰巨的事情,而且是很多Docker用户期待已久的新功能,这感觉还是非常棒的!
虽然只比平时多了几个读者(我的博客在最近5天的访问比过去12个月的总和还多!),我觉得还是值得我停下编程的步伐,为社区的力量多写几句话。
首先,用户命名空间并不是从我开始。它源于Linux内核,也许你听说过的另一个开源社区,无数人经过数年的艰苦努力把它变为现实。其次,用户命名空间只存在在Docker中,因为,a)为了支持 Go语言标准库 ,在 2014年下半年 ,由 Mrunal Patel 和 Michael Crosby 又加入一个开源项目,b)为了支持开源 libcontainer 项目兼容性,目前已经是 开放容器联盟 的RunC实施和库,也同样先加入进来。
所以,你可能会说“那没有问题,但你在Docker中做的PR已经被合并。”当然,不过这一切都离不开社区的鼎力相助。真心希望如果你问任何一个在健康的开源社区中工作的开发人员他们是否单枪匹马,只在需要向GitHub仓库提交PRs时才冒泡,他们会说:“绝对不是!”每个贡献者工作上取得的成功都离不开社区提供的指导和帮助。在这个过程中我曾经卡壳多次,需要一些其他的看法,思维和观点,以便在过程中进行清晰的设计和修改。在后期的审核环节我们甚至把GitHub上的Eric Biederman( Linux用户命名空间的维护者/核心贡献者 )拉了进来,改变了我们的思维,让我们想出用户和组ID映射范围本身的方案!
所以,现在是我对了不起的 Docker社区 说:“谢谢你!”的机会。我的工作离不开社区众多成员的鼎立支持和启发,但我会更进一步并做个惊人的事情,我提到人的名字,非常有可能就被不小心遗漏了。但是,为了防止只是说说而已,下面的都是实现Docker用户命名空间值得感谢人:
Michael Crosby :今年年初和我一起坐在Docker HQ的沙发上,并帮我写了初始化的实施步骤/目标清单。另外,在准备该功能合并的过程中他已经修复了几个libcontainer严重错误。
Mrunal Patel:一个将用户命名空间兼容到Go语言的小组成员,提供了大量的反馈和指导,并在整个过程中帮助调试。
Alexandr Morozov :帮我进行了整体设计,修正了几个问题,审查代码,做测试/反馈提供,很大程度改善质量代码。
Jess Frazelle :使用她容器中的“ 特殊类 ”做了大量的测试!她为守护进程运行集成了测试组件,设置了专门的CI目标端,
自然也成了一个狂热的爱好者(显然包括直接在她的Linux主机上运行,任何人都知道这是一个很大的荣誉)。
Diogo Monica / Nathan McCauley :Docker的安全团队已经成了这个功能的啦啦队,Diogo 和 Nathan在设计和最初的目标上添加了他们自己的评论和反馈,并在整个过程中督促我们前进。
Madhu Venugopal:Madhu和他的 libnetwork 开发团队重构了整个网络命名空间管理的代码,
以便当包含用户命名空间时,命名空间排序/链接可以在Linux的限制下一起工作。如果没有这次有效的重构,我们决不可能合并用户命名空间!
那么,我为什么要在这个漫长的博客张贴几个tweets表示感谢?因为,我的希望是,如果你正在准备加入开源社区,你真的需要接受我的建议,真正参与进来。获取IRC频道,满足关键人群的交流,帮助没人愿意工作的bugs,清理文件,如果他们可以使用一些帮助。采取一切必要措施,以成为社区值得信赖的一部分。最终你会发现,当你在一个困难的bug,PR或功能上需要一些帮助时,在你选择的社区有很多,因为你已经在你周围建立起的人际关系。傻瓜,社区才是关键啊!
更多阅读:
原文链接: It’s the community, stupid. (翻译:朱高校)