淘宝陈皓微博引发关于Git和GitHub讨论
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。