淘宝陈皓微博引发关于 Git 和 GitHub 讨论

  • 郑柯

2013 年 2 月 18 日

话题:GitHubDevOpsGit语言 & 开发文化 & 方法

2 月 18 日,已经转战淘宝的著名技术人陈皓发布了一条微博,对淘宝内部的共享开放平台提出自己的见解:

今天了解了一下淘宝的共享开放平台,感觉面对阿里内各种特殊异化的业务的需求,再加上各种降权开关,性能优化,这个平台要干的事越来越复杂,承载的业务逻辑越来越多,越来越不好维护。采用服务化模块化的解耦可以做到灵活性,但是还是不够。感觉可能需要像 Linux+Git 的方式才能适应高速开发。

他又补充了一条微博,指出:

可尝试使用 Linux+Git 的方式,让各个业务团队把代码 fork 过去自行定制,一些定制过后的有价值的代码稳定后可以回到主干,各个 fork 出去的分支可以互相 merge。而当主干代码升级后,各个 fork 出去的代码同样可以享受主干的升级。只有 Git 可以干这样的事。(不过,这需要对代码有强大掌控能力的团队)

同在淘宝工作的拔赤认为:

淘宝里舍得花时间玩 git 的人太少了

虽然淘宝千丫指出:“咱有 git 的”,但拔赤说:

嗯,多数人仅仅拿 git 存代码,真真有些浪费啊,呵呵 对此,淘李福认为: 你说的挺对,不过目前的困难主要还是代码安全的问题,很多工程师想用 git,但是没有内部开源就不能自由 fork 淘宝玉伯: 如果能推动公司购买 GitHub 企业版就好了,很多问题都可以解决,很多内部平台都可以节省掉。我试着推动过公司去购买,最后集团只搞了个半残的免费的 GitLab …… 企业版不是将代码存放在 GitHub 网站上,而是在内网部署一个 GitHub,代码很安全,就如我们安装 Jira、Confluence 等软件一样。 …… 小团队不用购买企业版,开通私有库就好。目前我自己掏银子给团队买了些私库用,实在不想折腾公司的 SVN。

敲代码的张洋提到:

我也曾多次吐过这个嘈。不过我这种小啰啰也就是想一下而已。力荐 Github 企业版啊

同在淘宝的玄澄的问题是:

具体可以替代哪些内部平台?

淘李福回复:

目前 github + trello + travis + puppet + capistrano 可以符合研发过程的全部需求,唯一的缺失环节是联调和系统测试环节的自动化,这块我们正在尝试

玉伯也指出:

和程序员相关的平台基本都可以用 GitHub 企业版替代,比如源码管理、文档、QC、CR、CI,甚至发布、管控等都可以。其实我觉得阿里味也可以用 GitHub 企业版替代。

不仅仅是淘宝,豆瓣也有人出现,andyh说:

豆瓣内部有 code,高仿 Github,今天一周岁。

在知乎上,可以搜索到豆瓣负责技术管理的耿新跃在 2012 年 4 月发布的一段话:

豆瓣在用 git,不过历史遗留的东西还在 svn 里,某些原因导致迁移到 git 上还有困难 (比如我们目前有些地方依赖 svn 的目录级权限控制),在逐步解决中

另外,我们不单用了 git,还用 github 发布开源项目,内部还买了 github enterprise 用作日常开发,大家用 pull request 的方式来实现 code review 和交流,效果不错。

当然,github enterprise 比较贵,我们目前只在部分团队用,同时我们在尝试自己做一个类似的东西,基本上是在 trac 基础上增加 github 的功能。

对于陈皓提出的 Linux+Git 方案,火星前哨站 3的看法是:

要求相当高,不光是代码掌控能力,还包括架构设计能力

onedear提出一个问题:

有价值的代码回到主干, 这个是否有专门的人来做这个工作?

余肖誉回复:

一般是权威人做的工作,这个世界,这个工作做得最好的是 Linus Torvalds 本人

Row_Li已经认识到了这样做的关键:

跟咱们很神似,不过咱们没有相关团队掌控代码。最终弄成现在不堪入目。基本不想看那鸟代码第二遍

@deljuven有同样看法:

这是个理想的状态,需要许多人一直持续不断的努力~~ 但是觉得能把分支理顺的人实在太少了 == 说句实在话,我一直觉得我们的分支太少了 ==

morejam建议:

这个陈首席应该有经验,搞网络设备的,各种开局,各种新需求各种从主线拉分支。

对此,陈怀临回应

这个 TOT 和 Branch 的研发代码的问题,是个很复杂的事情 …… branch 之间不能做 merge。branch 出现一定要去“死”。必须保证 TOT clean,回 TOT 要手工 sync。

小米科技米聊产品研发经理瞿晋萍认为:

用 Git? 由此造成的多版本问题在快速开发,各个业务组独立发展的情况下会不会得不偿失?还是传统点,基于一个与业务无关的 framework/mechanism, 各个业务在上面开发 plugin/policy

丸子常在的一句话可作为本文的总结:

中国和美国软件企业的真正差距之一,软件要拥有优秀的管理设计思想才可以应对未来复杂的业务需求 ,要不然基本上就会这样,越做越复杂,越做质量越差,越做需要的精力越大。

大家都在提 GitHub 的企业版,不妨让我们看看GitHub 企业版都提供哪些功能:

  • 代码审查:其中包括未来风格的代码审查、评论提交、分支分析、对比视图等功能。
  • 团队管理:30 秒即可让用户访问代码,不需 SSH key,同时提供进度信息主动更新。
  • 工业标准的 OVA:OVA 是 Open Virtualization Format(简称 OVF)的一种实现,OVF 是一种开放标准,用来定义对虚拟机中运行的虚拟应用和软件进行打包和分发的标准。GitHub Enterprise 版本以 OVA 格式分发,兼容 VMware 和 VirtualBox。
  • 企业级的安全性:通过启用 SSL 和私有模式,强制整个团队使用最安全的连接。
  • LDAP 和 CAS 集成:GitHub Enterprise 版本可以直接集成到支持 LDAP 和 CAS 团队管理的基础设施中。

当然,还有出色的社区支持。

目前,GitHub 企业版的知名用户包括:暴雪、Rackspace 和在线交易网站 Etsy。

GitHubDevOpsGit语言 & 开发文化 & 方法