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。