UDN-企业互联网技术人气社区

板块导航

浏览  : 1622
回复  : 0

[其它] 从GitHub到“GitLab plus” —— 用开源的方式做“内源

[复制链接]
刘莉莉11的头像 楼主
发表于 2016-5-11 13:57:52 | 显示全部楼层 |阅读模式
        2016年4月23日华为开发汇上海站,有讲师提到了一个新颖的名词——“内源”,本文是这次沙龙有关“内源”概念的心得体会。华为开发者汇(Huawei Developers Gathering, HDG) 是华为开发者社区在2016 年的系列线下沙龙 ,旨在为广大开发者分享华为内部、合作伙伴以及社区成员的干货,营造一个自由、开放、分享的技术交流平台。是华为一个重要的技术交流活动,将在全国各个地区举办。
    
  说起GitHub,资深开发者可能都如数家珍。

  作为全球最大的社交编程及代码托管网站,GitHub以其开创性的软件开发方式,吸引了大量程序员和开源项目入驻。“Social Coding(社交化编程)”是其引以为傲的特性。

  如果你的代码属于开源项目,那公布到GitHub的好处不言自明。全世界的开发者都能帮你Review代码,帮你扩展功能。哪怕萍水相逢也没关系,只要他们对这个项目感兴趣即可。
  
wKioL1cqvPvTuweRAADrksrw43A530.jpg-wh_651x-s_1171627872.jpg

  从技术上讲,在GitHub为一个项目贡献代码非常简单。点击项目首页的“fork”按钮,然后将修改后的代码加入到刚才保存的代码库中,最后通过“pull request”机制向项目负责人申请代码合并。只要项目负责人同意,别人递交的代码就在主库中生效了。

  GitHub的首席执行官Chris.Wanstrath说过:“在我理想的世界里,协同工作将比独立工作简单的多。在那个世界中,软件开发会是一个充满欣喜的过程,我认为GitHub正在推进这一愿景的实现。”

  OK,一群陌生人为了同一个目标协同工作的确很Cool,但那些私有项目怎么办?比如那些不便公开,只能在同事之间交流的代码。

  有的朋友可能会说了,可以购买GitHub的Private repositories(私有仓库)版本啊。

  那我们的代码特别敏感,而且我们公司有防火墙屏蔽GitHub怎么办?

  在上海站的华为开发者沙龙上,讲师们不约而同的提到了一个名叫“GitLab”的东西。

  GitLab是一个自托管的开源仓库软件。和GitHub的用法类似,程序员只要会Git这样的版本控制系统,就可以轻松管理自己的代码。它还提供问题列表、Wiki等功能,并且支持Markdown,相当于内网版本的GitHub。

  听上去不错,很多创业公司都部署了这个GitLab。这样既不用在GitHub上花钱买私有仓库,又可以享受Git一贯的便捷体验,安全度还很高。
  
wKiom1cqvFjhta1fAABiemt-3Ao507.jpg-s_3029323377.jpg

  But……

  我们是一个追求开发效率的大厂怎么办?我们不光要托管和维护大量的代码,还要让开发人员更有积极性,让整个生产环境更加智能化……那就不是单纯装一个GitLab能做到的了。

  这时,华为的架构师又向大家提出了一个“内源平台”概念。

  在参加华为上海站的开发者沙龙之前,笔者也没听过“内源平台”的说法。

  经过华为的几个讲师布道后终于明白,原来他们说的“内源”是指在内部开放的闭源代码平台,或者说是专门对内的“开源”。

  原来,他们的理念是“用开源的方式做内部开发平台“。

  乍一听好像没什么,但再认真想一下GitHub的最大亮点就明白了 。和传统的内部开发平台相比,Social Network对开发者的激励作用太强了。你的代码只有你的组长或老板看时,你可能只是应付一下差事;而你的代码被一群人看,一群人讨论,甚至一群人修改时,那这劲头就完全不是一个量级了 —— Yep, you are the Rockstar.

  华为就是这样干的。

  据了解,华为现在有两套内源平台,分别叫做“Code Club”和“iSource”,几乎都引入了 “Social Coding”概念,其创始人分别是胡智勇和庄表伟。

  比如路由器研发团队在内源平台上公布了一套代码,防火墙团队的开发者看到后发现有可以扩展的地方,马上就可以把自己实现的功能代码递交过去。然后路由器团队的负责人经过审核发现这个功能很好,就可以合并到主库。这个递交代码的防火墙团队开发者ID也将被加到这套代码的贡献者列表里。

  又或者防火墙团队的开发者想要加入一个新功能,看到路由器研发团队已经实现了。那这个时候他完全可以直接把代码拿过来用,避免重复开发,加快研发进度。

  按照iSource创始人庄表伟的说法,内源平台的一个重要的作用就是互通有无,降低研发成本。

  当然,除了“Social Coding”之外,华为的内源平台还和生产环境紧密连接。比如智能的软件测试,自动化部署,持续集成等等。这就不再是简单的GitLab可以搞定了,至少得二次开发或是重构,以达到“GitLab plus”级别。

  看到这里大家可能已经明白了,“内源”也是可以做成一个生态的。

  目前,华为的“Code Club”已有17,000+用户,14,000+项目仓库,并且对接到公司其他研发工具平台和系统。而“iSource”支持的都是动辄2000人以上的Big Team,发展势头也很迅猛。其“内源”热度可见一斑。

  两套平台虽然有相似之处,但两个创始人打造产品的风格倒是完全不同。胡智勇倾向于“自下而上“的变革,而庄表伟更倾向于“从上而下”的推进。当然,两人都是在为内源开发更有效率、更有活力这一愿景在努力,各有各的好处。

  需要注意的是,这样的内源平台比较适合产品线较多的大中型企业。出于成本和复杂度的考虑,可能不太适合产品线较少的创业型公司。毕竟这么有意思的平台,人多才能玩的起来。

  用开源的方式做内源,不仅要在技术方面下功夫,还要运营和沟通等方面花很多心思。如何说服各团队开放自己的代码,如何设定内部访问的权限,如何顶住高并发,如何奖励那些贡献度较高的员工,如何让平台把大量用户和不同的生产环境连接在一起……这都是值得探讨的问题。

  内源之路并不平坦。用Code Club创始人胡智勇引述的一句《马太福音》来说:“引到永生,那门是窄的,路是小的,找着的人也少。”

  但我们不能轻易放弃,对吗?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部