刚入职新公司做一些什么贡献_如果您有全职工作,如何为Kubernetes做贡献
刚入职新公司做一些什么贡献 当我在IBM产品安全事件响应团队工作时,我于2018年10月开始为Kubernetes (K8s)做出贡献。 我被分布式系统所吸引,但在日常工作中无法与它们合作,因此我的导师Lin Sun建议我在业余时间为开源分布式系统做出贡献。 我对K8感兴趣,再也没有回头!我主要在Kubernetes特殊兴趣小组(SIG)的sig测试,sig存储和sig发布中工作。 我最著...
刚入职新公司做一些什么贡献
当我在IBM产品安全事件响应团队工作时,我于2018年10月开始为Kubernetes (K8s)做出贡献。 我被分布式系统所吸引,但在日常工作中无法与它们合作,因此我的导师Lin Sun建议我在业余时间为开源分布式系统做出贡献。 我对K8感兴趣,再也没有回头!
我主要在Kubernetes特殊兴趣小组(SIG)的sig测试,sig存储和sig发布中工作。 我最著名的代码贡献是在Saad Ali的领导下实现了插件管理器 。 插件管理器是管理插件注册/注销的控制器。 如果插件(如CSI或设备插件)的注册失败,这将为Kubelet插件注册重试和指数退避逻辑。
我于2019年1月成为K8s的成员,并于2019年7月加入IBM Open Technology团队,成为开源贡献者和开发者倡导者,目前我在Knative进行贡献, Knative是一个基于Kubernetes的平台,用于部署和管理无服务器工作负载。
欢迎新的Kubernetes贡献者,因此,如果您想遵循我的道路,并开始在业余时间贡献力量,请继续阅读。
您开始对Kubernetes做出贡献所需的技能
任何版本控制系统(例如git,svn)
K8s的源代码托管在GitHub上,因此了解如何使用Git或其他版本控制系统非常重要。 首先,请熟悉以下常见命令 。
高朗
我来自C / C ++背景,在开始之前不了解任何Golang。 如果您熟悉面向对象的编程,那么Golang应该相当容易掌握。 我建议您在学习K8s代码库时学习Go 。 我的同事黄伟向我介绍了Ultimate Go编程视频系列,这极大地帮助了我。
其他需求
在您的提交可以合并到K8s代码库中之前,您必须签署贡献者许可协议 (CLA)。 另外,请注意Kubernetes的GitHub存储库中的社区准则,行为准则,如何设置开发环境以及“ 开始之前 ”中所述的其他事项。
如何选择您的第一个Kubernetes问题
在Kubernetes中找到需要处理的事情的第一种方法是查看未解决问题的列表。 您可以按标签过滤问题列表,例如“良好的第一期”和“需要帮助”,这表明该问题是新来的用户。 有时候,问题可能贴错标签; 也许问题的技术复杂性被低估了,并且被错误地标记为“良好的第一问题”。 因此,如果“好问题”似乎比您预期的要复杂,请不要感到惊讶。
查找需要处理的事情的第二种方法是在代码库中搜索“ TODO”。 有数百个待办事项用于降低优先级。 这是学习代码库并从某人的TODO列表中剔除一项的好方法-双赢!
如何处理问题
阅读所有链接的问题或请求请求(PR),以帮助您了解问题的背景和问题。 如果问题描述不清楚,请确保在花费时间之前与问题创建者联系以获得更清晰的理解。 如果是错误,请确认您可以重现该错误。 请注意,这可能会花费大量时间。 我花了很多时间来设置环境以尝试重现错误。
一旦有了解决方案的想法,在进行PR之前,先与Slack的问题创建者联系以验证您的方法是一个好主意。 如果您一周内未收到创作者的回音,请进行PR,以便该人员可以使用具体解决方案进行审查。
起初,我感到困惑的是,在就某个问题打电话给Dib之后,我应该多快提交PR。 由于我必须在全职工作之外从事K8的工作,所以我也想知道这将如何影响我的工作与生活平衡。 浏览了问题和其他PR后,我发现我需要至少在两周内提供PR或状态更新。 我认为,如果您的初始实现尚未经过测试,则可以进行初始PR,这样就可以尽快获得有关您是否步入正轨的反馈。
在开发解决方案时,请确保添加单元测试或集成测试以确认该错误已修复或该功能按预期工作。 K8S使用叫做持续集成/不断发展(CI / CD)系统船头 ,它运行的PR所有单元和集成测试它是否具有/ OK对测试标签。 如果您不是Kubernetes项目的成员,CI作业将不会自动运行。 在这种情况下,我建议您首先在本地运行测试,然后在相关的SIG Slack频道上要求Kubernetes GitHub组织的成员在您的PR上发表评论/ ok-to-test 。
如何加入Kubernetes社区
对于日常通信, Kubernetes Slack非常适合直接与其他贡献者进行消息交流并提出问题。 我建议您加入您最感兴趣的SIG渠道(例如sig-cli,sig-storage,sig-testing等)。
KubeCons是与其他贡献者面对面交流的好地方。 2019 年 11月和2020年在北美有1个,3月/ 4月在欧洲有1个,7月在亚洲有一个。 我向所有有抱负的,新的和经验丰富的贡献者强烈推荐以下两项活动:
- Kubernetes贡献者峰会 :这是KubeCon正式开始前一天的全天免费活动。 有针对新的和现有的贡献者的讲习班,专注于学习和发展。
- 交流+指导会议:这里是与许多CNCF项目(包括Kubernetes)经验丰富的开源资深人士会面的地方。 您将与其他两个人一起在类似吊舱的环境中配对,以探讨技术问题和社区问题,甚至可以对自己选择的问题进行配对编程。
其他贡献方式
除了编写代码外,还有许多其他贡献方式。 审阅代码很重要,因为它可以帮助现有的审阅者和维护者进行他们的审阅工作,并提供多种意见。 这也是学习K8s代码库的最佳方法之一!
角色手册,以了解有关发布团队中不同角色的更多信息。 我屏蔽了Test Infra潜在客户的两个版本,直到我们使流程自动化并取消了角色。成为阴影使我学到很多东西,包括有关CI / CD自动化和项目管理的信息,这些产品背后是影响世界各地的公司的高度可见的产品。 发布团队继续努力使所有角色自动化任务并消除手动任务,以获得更好的CI / CD,这给我留下了特别深刻的印象。
如果您有兴趣成为阴影,请查看正式的申请流程 。
如果您在业余时间使用Kubernetes,请注意以下几点:有每周一次的发布团队会议,但是不需要参加所有会议的影子。 会议通常在美国太平洋时区的工作时间内进行,持续半小时。 幸运的是,我的工作足够灵活,我可以每周两次或两次预定一间会议室,与发布团队一起参加会议。
全职工作时如何管理时间
设置每周要用于K8s贡献时间的小时数很有帮助,因为很容易陷入开发活动。 当您的日常工作或生活忙碌时,请不要参与K8赛车,这一点也很重要。 K8s开发社区中的停机时间通常与发布削减之前的发布代码冻结期一致。 这是您休息的好时机-因为在此期间其他贡献者的参与较少,因此您不太可能收到有关PR或Slack消息的答复。
让您的团队和经理了解您的新爱好也是一件好事,因为分享您的知识可能会有所帮助。 如果您的团队或公司使用Kubernetes(或任何容器技术),则您将从K8的内部知识中受益。 如果不是这样,那么与您的开发团队分享Kubernetes中的行业趋势,软件工程设计模式和体系结构设计决策仍然是很棒的。 考虑举办有关这些主题的每月讲座,或介绍您在KubeCon和其他会议上学到的知识。
摘要
贡献给K8是我有过的最有意义的经历之一。 编程过去只是工作,但现在也成了业余爱好。 如果您的日常工作不太苛刻,我强烈建议您尝试一下。
资源资源
- Kubernetes Slack (邀请自己!)
- 贡献者指南
- 贡献者备忘单
- 社区成员角色
- IBM的Kubernetes教程
- Ultimate Go编程视频系列
- Brad Topol,Jake Kitchener和Michael Elder 撰写的企业版Kubernetes
翻译自: https://opensource.com/article/19/11/how-contribute-kubernetes
刚入职新公司做一些什么贡献
更多推荐
所有评论(0)