關(guān)于淘寶共享開放平臺的技術(shù)討論
2月18日,已經(jīng)轉(zhuǎn)戰(zhàn)淘寶的著名技術(shù)人陳皓發(fā)布了一條微博,對淘寶內(nèi)部的共享開放平臺提出自己的見解:
今天了解了一下淘寶的共享開放平臺,感覺面對阿里內(nèi)各種特殊異化的業(yè)務(wù)的需求,再加上各種降權(quán)開關(guān),性能優(yōu)化,這個平臺要干的事越來越復雜,承載的業(yè)務(wù)邏輯越來越多,越來越不好維護。采用服務(wù)化模塊化的解耦可以做到靈活性,但是還是不夠。感覺可能需要像Linux+Git的方式才能適應(yīng)高速開發(fā)。
他又補充了一條微博,指出:
可嘗試使用Linux+Git的方式,讓各個業(yè)務(wù)團隊把代碼fork過去自行定制,一些定制過后的有價值的代碼穩(wěn)定后可以回到主干,各個fork出去的分支可以互相merge。而當主干代碼升級后,各個fork出去的代碼同樣可以享受主干的升級。只有Git可以干這樣的事。(不過,這需要對代碼有強大掌控能力的團隊)
同在淘寶工作的拔赤認為:
淘寶里舍得花時間玩git的人太少了。
雖然淘寶千丫指出:“咱有g(shù)it的”,但拔赤說:
嗯,多數(shù)人僅僅拿git存代碼,真真有些浪費啊,呵呵 對此,淘李福認為: 你說的挺對,不過目前的困難主要還是代碼安全的問題,很多工程師想用git,但是沒有內(nèi)部開源就不能自由fork 淘寶玉伯: 如果能推動公司購買 GitHub 企業(yè)版就好了,很多問題都可以解決,很多內(nèi)部平臺都可以節(jié)省掉。我試著推動過公司去購買,最后集團只搞了個半殘的免費的 GitLab …… 企業(yè)版不是將代碼存放在 GitHub 網(wǎng)站上,而是在內(nèi)網(wǎng)部署一個 GitHub,代碼很安全,就如我們安裝 Jira、Confluence 等軟件一樣。 …… 小團隊不用購買企業(yè)版,開通私有庫就好。目前我自己掏銀子給團隊買了些私庫用,實在不想折騰公司的 SVN。
敲代碼的張洋提到:
我也曾多次吐過這個嘈。不過我這種小啰啰也就是想一下而已。力薦Github企業(yè)版啊。
同在淘寶的玄澄的問題是:
具體可以替代哪些內(nèi)部平臺?
淘李福回復:
目前 github + trello + travis + puppet + capistrano 可以符合研發(fā)過程的全部需求,唯一的缺失環(huán)節(jié)是聯(lián)調(diào)和系統(tǒng)測試環(huán)節(jié)的自動化,這塊我們正在嘗試。
玉伯也指出:
和程序員相關(guān)的平臺基本都可以用 GitHub 企業(yè)版替代,比如源碼管理、文檔、QC、CR、CI,甚至發(fā)布、管控等都可以。其實我覺得阿里味也可以用 GitHub 企業(yè)版替代。
不僅僅是淘寶,豆瓣也有人出現(xiàn),andyh說:
豆瓣內(nèi)部有 code,高仿 Github,今天一周歲。
在知乎上,可以搜索到豆瓣負責技術(shù)管理的耿新躍在2012年4月發(fā)布的一段話:
豆瓣在用git,不過歷史遺留的東西還在svn里,某些原因?qū)е逻w移到git上還有困難(比如我們目前有些地方依賴svn的目錄級權(quán)限控制),在逐步解決中 另外,我們不單用了git,還用github發(fā)布開源項目,內(nèi)部還買了github enterprise用作日常開發(fā),大家用pull request的方式來實現(xiàn)code review和交流,效果不錯。
當然,github enterprise比較貴,我們目前只在部分團隊用,同時我們在嘗試自己做一個類似的東西,基本上是在trac基礎(chǔ)上增加github的功能。
對于陳皓提出的Linux+Git方案,火星前哨站3的看法是:
要求相當高,不光是代碼掌控能力,還包括架構(gòu)設(shè)計能力。
onedear提出一個問題:
有價值的代碼回到主干,這個是否有專門的人來做這個工作?
余肖譽回復:
一般是權(quán)威人做的工作,這個世界,這個工作做得最好的是Linus Torvalds本人。
Row_Li已經(jīng)認識到了這樣做的關(guān)鍵:
跟咱們很神似,不過咱們沒有相關(guān)團隊掌控代碼。最終弄成現(xiàn)在不堪入目?;静幌肟茨区B代碼第二遍。
@deljuven有同樣看法:
這是個理想的狀態(tài),需要許多人一直持續(xù)不斷的努力~~ 但是覺得能把分支理順的人實在太少了==說句實在話,我一直覺得我們的分支太少了==
morejam建議:
這個陳首席應(yīng)該有經(jīng)驗,搞網(wǎng)絡(luò)設(shè)備的,各種開局,各種新需求各種從主線拉分支。
對此,陳懷臨回應(yīng):
這個TOT和Branch的研發(fā)代碼的問題,是個很復雜的事情 …… branch之間不能做merge。branch出現(xiàn)一定要去“死”。必須保證TOT clean,回TOT要手工sync。
小米科技米聊產(chǎn)品研發(fā)經(jīng)理瞿晉萍認為:
用Git? 由此造成的多版本問題在快速開發(fā),各個業(yè)務(wù)組獨立發(fā)展的情況下會不會得不償失?還是傳統(tǒng)點,基于一個與業(yè)務(wù)無關(guān)的framework/mechanism, 各個業(yè)務(wù)在上面開發(fā)plugin/policy
丸子常在的一句話可作為本文的總結(jié):
中國和美國軟件企業(yè)的真正差距之一,軟件要擁有優(yōu)秀的管理設(shè)計思想才可以應(yīng)對未來復雜的業(yè)務(wù)需求 ,要不然基本上就會這樣,越做越復雜,越做質(zhì)量越差,越做需要的精力越大。
大家都在提GitHub的企業(yè)版,不妨讓我們看看GitHub企業(yè)版都提供哪些功能:
- 代碼審查:其中包括未來風格的代碼審查、評論提交、分支分析、對比視圖等功能。
- 團隊管理:30秒即可讓用戶訪問代碼,不需SSH key,同時提供進度信息主動更新。
- 工業(yè)標準的OVA:OVA是Open Virtualization Format(簡稱OVF)的一種實現(xiàn),OVF是一種開放標準,用來定義對虛擬機中運行的虛擬應(yīng)用和軟件進行打包和分發(fā)的標準。GitHub Enterprise版本以O(shè)VA格式分發(fā),兼容VMware和VirtualBox。
- 企業(yè)級的安全性:通過啟用SSL和私有模式,強制整個團隊使用最安全的連接。
- LDAP和CAS集成:GitHub Enterprise版本可以直接集成到支持LDAP和CAS團隊管理的基礎(chǔ)設(shè)施中。
當然,還有出色的社區(qū)支持。
目前,GitHub企業(yè)版的知名用戶包括:暴雪、Rackspace和在線交易網(wǎng)站Etsy。