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

开发 前端
2016年4月23日华为开发汇上海站,有讲师提到了一个新颖的名词——“内源”,本文是这次沙龙有关“内源”概念的心得体会。华为开发者汇(Huawei Developers Gathering, HDG) 是华为开发者社区在2016 年的系列线下沙龙 ,旨在为广大开发者分享华为内部、合作伙伴以及社区成员的干货,营造一个自由、开放、分享的技术交流平台。是华为一个重要的技术交流活动,将在全国各个地区举办。

说起GitHub,资深开发者可能都如数家珍。

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

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

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

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

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

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

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

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

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

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

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创始人胡智勇引述的一句《马太福音》来说:“引到永生,那门是窄的,路是小的,找着的人也少。”

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

华为开发者社区  

责任编辑:王雪燕 来源: 51CTO
相关推荐

2022-05-18 09:48:07

ArmGitHubGitLab

2018-06-28 15:46:54

微软GitHub开发者

2023-01-09 10:19:38

2020-08-31 15:26:44

开发技能代码

2022-03-24 15:24:47

开源软件供应链安全

2020-07-07 16:58:21

开源技术 工具

2015-02-27 11:05:12

开源云计算程序员

2022-05-09 08:35:43

面试产品互联网

2012-08-01 16:41:31

红帽RHELOpenShift

2020-12-31 11:28:09

GitLabCICD

2011-07-18 09:28:44

开源开放

2013-08-09 10:41:58

2016-10-18 21:10:17

GitHubBitbucketGitLab

2024-01-19 16:35:23

2018-03-24 20:27:58

GitHub代码开发者

2013-09-04 09:35:46

2013-09-11 09:57:00

2012-12-25 11:59:00

GitHubHadoopOpenStack

2015-10-08 09:25:05

比特币存储开源

2020-03-27 12:00:14

GitHub开源移动应用
点赞
收藏

51CTO技术栈公众号