標籤:

華為雲 ServiceComb 抄襲 Go Micro 代碼

2017年6月19日在(LC3)開源峰會上,華為宣布開源了微服務框架 ServiceComb,華為稱它是 FusionCloud 解決方案中 PaaS 平台的重要組成部分,內置了高可靠性運行、動態治理等運維階段的高級能力。

並在2017年12月4日獲得全票通過,進入Apache孵化器。

但在13天前,Asim Aslam在GitHub上開的一個問題單(issue)引起了軒然大波,他覺得有人將他開發的go-micro代碼拿來改頭換面後,做成了一個新的微服務框架。

今日在微博上也引起了關註:

相關人員在Github上作了回復。現將他們在Github上的互動內容編譯如下:

這不是靈感來自go-micro的項目。它簡直照搬照抄了代碼。我實際編寫的代碼隨處可見。也許有人該出面談談如何可以利用go-micro,而不是只是獲取代碼。

Asim你好,我同意利用go-micro,而不是只是獲取代碼的觀點。但我們在談論靈感來源時,我指的是micro介面設計和插件思路,它們很贊,很感謝那些部分,我們已經改變了選擇器(selector)等組件的許多實現,或者說改變了介面。所以我們有2個文件夾,「vendor」用來放我們從未改變的那些庫,而「third_party」用來放我們作了一些改變的庫,我們會將所有go-micro代碼放在那裡,之後你可以再次檢查我們的代碼,看看我們是否正確處理了你的代碼。

致以誠摯的問候!

  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/
  • github.com/ServiceComb/

以上是來自micro的所有文件,我會將它們移到third_party文件夾。

Asim你好,我已更改了代碼,請再檢查一下,我這樣可以嗎?多謝!我為沒有將那些文件移到third_party文件夾表示真誠的歉意,是我的錯。

另外還有好多地方你只是照搬了代碼,沒有參考許可證。你的確認識到所有micro項目都採用apache2許可證,這意味著你必須註明代碼從哪裡獲取並致以謝意,哪怕在修改之後。

TCP transport

你的:github.com/ServiceComb/

micro的:github.com/micro/go-plu

還有,這是華為官方項目還是不相干的獨立項目?我覺得一家公司不該有這樣的行為。

這是我頭一回搞Go開源項目。我承認我犯了些錯誤。你可否給出一些建議,以便更妥當地利用go-micro?目前我們有一個不同的註冊中心模型(registry model),我們可能很難直接利用go-micro代碼,也許我們以後可以探討相關的一些細節。

謝謝指出這一點,go-micro是一種出色的框架,我受益匪淺。我確實很感謝你所做的工作。

你可以告知你的電子郵箱嗎?那樣我們可以通過郵件進一步探討,非常感謝!

我覺得不需要在除GitHub這個公共論壇之外的其他任何論壇探討這個話題,大家在這裡都看得見。

請問這是華為官方項目嗎?

go-micro的許可證和版權已包含在go chassis的初始提交版中,見此[1]

現在,go-micro的版本已添加到ROOT目錄中的通告文件中。

[1]github.com/ServiceComb/

謝謝你這麼做。不過你還是沒有回答我的問題:這是華為的官方項目嗎?

將許可證包含在third_party中並不能成為拷貝其他地方的代碼,轉而用作自己介面的理由。針對代碼作了修改的地方,你必須向創作者致以謝意。我看到這個做法後來已改正。

請回答我的問題:這是華為的官方項目嗎?

Asim你好,

感謝幫助我們糾正許可證問題,以尊重原始創作者的版權。go-chassis目前是放在Github上的一個一般性開源項目,但我們確實計劃將它合併到Apache ServiceComb(孵化中),後者是華為捐獻的項目。這對你來說是個問題嗎?我不是很清楚你說的華為官方項目是指什麼意思。你可以就此明確一下嗎?

我覺得go-micro的可插入式設計確實很出色。go-chassi使用go-micro的客戶機、伺服器、選擇器、編解碼器和transport等模塊以獲得可插入性,但是go-chassis擁有另外一些高級的服務治理功能,比如容錯、斷路器、負載均衡、監控和熱重新配置。

不管怎樣,如果我們可以利用go-micro,同時又回過頭來將一些變更貢獻給上游,那就太棒了,我非常樂於參與任何這種討論。

Asim隨後逐句作了針對性的答覆(內容已經過編輯):

我不是很清楚你說的華為官方項目是指什麼意思。

我是問,你在華為搞這個項目嗎?這項工作得到華為的資助嗎?這是在公司上班時間搞的嗎?這就是官方項目的真正含義。

go-chassis擁有另外一些高級的服務治理功能,比如容錯、斷路器、負載均衡、監控和熱重新配置。

這些是micro以不同方式來處理的問題。我們有一個名為wrappers的中間件介面,可以添加額外功能:github.com/micro/go-plu。還在go-os方面付出了努力,但需要開發者團隊才能推進工作:github.com/micro/go-os

不管怎樣,如果我們可以利用go-micro,同時又可以回過頭來將一些變更貢獻給上游,那就太棒了,我非常樂於參與任何這種討論。

貢獻代碼誰都歡迎。插件在go-plugins中加以維護:github.com/micro/go-plu。如果正如你所說你在構建更高級的功能,看起來這功能像是生態系統的一部分:micro.mu/explore/

如果這是華為官方項目,我們很有興趣與華為合作,就像我們與Sixt合作那樣。

謝謝建議。作為開源開發者,幾個項目作為一個社區協同運作是常見的做法。但是建立起商業合作關係可能需要一點時間,也許我們以後可以在另一個帖子中談論此事。

一位旁觀者稱:

我覺得這是個官方項目。像華為和小米等許多中國大公司(不好意思我也來自中國)並不很重視「開源」。它們從開源項目竊取源代碼的做法很常見。無論怎樣,華為在這個項目上還算做得比較好,至少它讓你知道這一點。

推薦閱讀:

蘋果的教訓,華為的啟示,魅族楊柘該做出什麼樣的選擇?
三星Note 8又來了,中國用戶憑什麼買單?
華為為何在美遭禁?
華為數通HCIE備考及考試全過程記錄第三篇

TAG:華為 | 抄襲 |