3月24日傳出消息,GitHub封禁了一個屬於微軟的前端開源項目Aurelia,理由是「項目中有兩名來自伊朗的外部貢獻者」。
作為全球最大的開源軟體代碼的託管平臺,GitHub理應是全球軟體開發者、開源軟體企業、用戶心目中公平、開放、無私和優質服務的聖地。
但是GitHub封禁用戶帳號、禁止某些用戶訪問的事件時有發生,這次竟然封禁了自己公司——微軟的開源項目,不得不讓業界錯愕。
雖然 GitHub執行長致歉隨後迅速表示「這次的確是個錯誤」,但是開發者們顯然不買帳:
GitHub 封禁項目的行為是否太隨意了?
這樣的行為難道不是與開源信念背道而馳嗎?
如果有一天,像GitHub這樣的託管平臺禁止中國用戶訪問自己的開原始碼,我們又該如何應對呢?
1、封禁、歧視,GitHub與GitLab難分高下
「一覺醒來,發現Aurelia網站被關了,大量歸檔都沒辦法訪問了。之前也沒有收到正式的通知,這對我們是毀滅性的行為!」
Rob Eisenberg說。他是微軟首席UX工程師,也是這個名叫「Aurelia」的前端項目的負責人。
Aurelia是微軟開發的JavaScript框架,已開源了5年,由一家美國公司管理。JavaScript是一種高級的解釋性程式語言,與HTML、CSS一起被認為是網際網路內容工程的三大核心技術,它可用於生成交互式的動態網頁,並且能夠提供視頻遊戲等在線程序。
當3月24日Aurelia的前端項目被微軟自己GitHub封禁時,在微軟工作的Rob Eisenberg 還不得不通過發Twitter並知會GitHub的方式,來解決公司內部的問題。
GitHub的支持帳號隨後給了他一個不痛不癢的回覆:如果你認為自己被錯誤標記了,你可以向GitHub申訴啊。可以參看我們的說明網頁。
正式申訴後,GitHub重新啟用該項目的組織帳戶。Rob隨後向公眾解釋了封禁原因:因為我們有兩名來自伊朗的外部貢獻者(非GH組織成員),所以GitHub自動標記並封禁了帳號。
事件不斷發酵,被頂到了HackerNews頭版,GitHub CEO不得不也對此表示了歉意:關閉此帳戶顯然是一個可怕的錯誤。我們正在調查具體過程,並更改規則以確保此類問題不會再次發生。
火爆的GitHub應用學習視頻 資料來源:Bilibili
過去一年在開源軟體上有3236個Contributions,又勤奮又活躍的俄羅斯小哥Nikolay 的GitHub 帳號最近也被封了。
「3月9日,GitHub在沒有通知我的情況下突然就封了我的帳號。一開始我都沒發現,還是有人給我發郵件,說我的託管庫已停止工作,並問我為什麼刪除 GitHub 帳戶。」
更讓人崩潰的是,如果有人上到俄羅斯小哥的GitHub頁面,那上邊顯示的是「404未找到」,甚至都不是一個「該用戶帳戶暫時無法訪問」的頁面。
這位俄羅斯小哥開始向GitHub申訴,並且在Medium上全程直播的申訴過程,引來眾多開發者圍觀。
讓Nikolay最不能接受的是,帳號被封后,除了他自己以外,所有人對庫中所有 issue(問題)的評論都瞬間消失了,其中一些評論其實是很有價值的。
GitHub如果想要阻止你登陸,它可以保證你的代碼不會丟失,但不能保證你在 issues/pull-requests/commits/etc 中的評論不會丟失。可笑的是,GitHub 一直宣揚「共享」和「共建」,但卻能輕易地阻止人們登陸花費了大量時間和精力共同創建的原始碼和知識庫社區,這就是所謂的「寬大包容」嗎?
GitHub搞封禁,並不是第一次。2019年,GitHub開始按照國籍對帳號進行限制,理由是這些國家違反了美國的貿易控制法律。被限制的帳號所有人的國籍包括俄羅斯、伊朗、敘利亞、古巴等「受美國制裁」國家。
被禁的伊朗開發者憤而發帖控訴,「GitHub是以為我在造原子彈嗎?」「GitHub曾是對每個人來說都是開源和自由的平臺,但是它現卻限制伊朗的帳戶貢獻開源。「
GitLab成為程式設計師必備工具 資料來源:Bilibili
無獨有偶,2019年11月,全球第二大開源軟體代碼託管平臺GitLab在其最新聲明裡表示,部分職位將不再為中國和俄羅斯居民提供offer。
GitLab在聲明中稱,為了保證客戶的數據安全,不得不啟用「職位國家封鎖」令,而名單上的封鎖國家只有兩個:中國、俄羅斯。
那些有權限訪問客戶數據的員工,也不被允許移居到這兩國。
聲明說,這麼做是為了讓員工沒有後顧之憂、百分百地投入工作,消除由於權限限制產生的「二等公民」,這樣大家就能平等積極地工作了。
面對員工的質疑,GitLab高管Eric回復到,封鎖只限於能接觸敏感數據的職位,因為在這兩國國境線以內的員工都有可能洩露數據,這完全是為了客戶數據安全著想。
GitLab說,這是在當前地緣政治環境之下行業內的普遍做法,而他們的解決方案是最人道的。
同時GitLab在2019年因為給第三方公司提供用戶數據而被曝光,不得不出面道歉。這次面對輿論壓力,GitLab卻表現得十分「硬氣」。
GitLab CEO說,此政策是自己突破重重阻礙才得以制定的,來之不易,此舉對於公司透明度的提升有重要意義。
此消息流出後,質疑者眾多。如有人質疑GitLab所謂信息洩露的理由,全球80%的國家都存在信息洩露風險,甚至美國自己就被ABC評選為全球黑客數量第二多的國家。怎麼不對這些國家的員工都進行限制呢?
GitLab CEO的說辭是被質疑最多的。封鎖中國是因為谷歌退出了中國市場,而谷歌對於GitLab的發展至關重要,那封鎖俄國又是什麼原因呢?
很顯然,保護客戶數據信息安全只是託辭,出於政治原因對於個別國家的變相制裁才是真正目的。
封禁、歧視為什麼這麼敏感?開源軟體代碼託管平臺的作用主要有兩個:
一是協議存儲代碼庫,完成代碼版本管理,即允許不同的用戶和開發者將本地的Git代碼庫上傳到了雲端,並且允許其他人為這個項目貢獻代碼;
二是給用戶提供一個技能與交流的空間,供眾多的開發者和愛好者下載、評論和修改別人的代碼,共同完善同一個項目,為開源軟體的發展奠定了基礎。
因此說,開源軟體代碼託管平臺為開源軟體發展提供了一個代碼存儲、管理、下載、交流等的平臺,是開源軟體發展必不可少的一個重要環節。目前全球比較大的代碼託管平臺就因為龐大的用戶數量和上千萬的開源軟體代碼庫而受到行業的高度關注。
2、微軟、谷歌入局代碼託管平臺,意欲何為?
GitHub與GitLab是全球最大的兩家開源軟體代碼託管平臺。GitHub被微軟收購,GitLab被谷歌投資。
看看全球主要的開源軟體代碼託管平臺。
全球著名的開源軟體代碼託管平臺
資料來源:網絡公開資料
為什麼微軟和谷歌要將手伸向開源軟體代碼的託管平臺?為什麼GitHub和GitLab都想得到對手的資源與開發者?
GitHub和GitLab兩家公司之間的恩怨情仇由來已久。與GitLab相比,微軟控制的GitHub更有實力說話。
GitHub創建於2008年。目前GitHub已吸引了2800萬開發人員和超過8500萬個存儲庫。該平臺上有超過150萬家公司。蘋果、亞馬遜、谷歌和許多其他大科技公司都用 GitHub。
2018年6月微軟斥資75億美元全面收購GitHub。雙方都表示,GitHub仍舊是一個開放的平臺,致力於支持開發人員使用任何工具以及將代碼部署到任何平臺。
儘管用戶眾多,Github並沒有賺錢。作為一家獨立的公司,它不賺錢,未來的發展就可能受限,也可能不會長久。
微軟收購Github後,將Github作為一個獨立實體來運營。
收購消息公布後,依然是引發了開源領域眾多開發者對該收購案件的爭議。
很多人認為,GitHub與微軟的商業合作會影響其獨立性。
受這一消息的影響,GitLab口碑一度大漲,它也順勢推出了從GitHub到GitLab一鍵遷移的工具。但不久之後GitLab也「歸順」Google了。
GitLab是由兩個烏克蘭程式設計師開發的。雖然推出的時間要晚於GitHub,但由於個人項目的低成本、保密性強的優勢,也贏得了很多開發者的青睞,被認為是GitHub最強勁的競爭對手。阿里巴巴、NASA、英特爾等國際大公司都曾是它的重要客戶。
2017年10月,GitLab獲得了由Google領投的2000萬美元C輪融資,用於開發 DevOps軟體和工具。雖然Google在GitHub上也十分活躍,但Gitlab依然被部分人視為是 Google系的產品,具備與微軟競爭的能力。
當微軟收購GitHub消息確認後,GitLab將其代碼庫從Microsoft Azure移到Google雲平臺(GCP)。
GitLab的Google雲平臺遷移項目負責人Andrew Newdigate解釋說,GitLab正在採取措施改進服務的性能和可靠性。
具體來說,該公司之所以這麼做,是相信Kubernetes才是未來,他們想依靠Kubernetes運營GitLab。Kubernetes「使大規模的可靠性成為可能」,GCP是自然選擇,畢竟谷歌發明了Kubernetes, GKE擁有最健壯、最成熟的Kubernetes支持。
當GitHub被爆出限制被美國貿易制裁國家的帳戶時,GitLab猛賺一波好評。
歷史總是驚人的相似,幾個月之後,GitLab發表聲明公開歧視中俄的政策。而此舉一出恐怕它將徹底告別中國開發者用戶,GitHub也要推出一鍵遷移的連結,接收大批拒絕GitLab的中俄用戶了吧。
3、中國需要自己的開源軟體代碼託管平臺嗎?
幾乎所有的商業軟體,都有相應的開源軟體對應;開源軟體已經應用到我們生活的方方面面。數據顯示,開源軟體與商業軟體應用逐漸達到對半開的程度。
開源軟體的貢獻者來自世界不同的國家,同樣開源軟體也回饋全球,在世界不同的國家得到應用。
如果開源軟體託管平臺實施封堵政策,一個國家不能訪問、下載大部分的開源軟體,包括自己國家管理的開源項目,那麼影響將是災難性的。
由此引出一個話題:中國到底需要不需要自己的開源軟體代碼託管平臺?
中國工程院倪光南院士介紹說,開放原始碼軟體在世界的發展證明了這種模式不僅是商業模式,也是研發模式、推廣模式、產業化的模式,是成功的。特別是隨著新一代信息技術的發展,大家越來越看到作為平臺往往都採用基於開源的技術。開源軟體的發展有利於我們實現引進、消化再創新,國產作業系統基本上基於開源軟體的作業系統。
在另一個開源熱點領域,2020年,國產AI開源框架「亮劍」TensorFlow、PyTorch,華為開源MindSpore,曠視科技宣布開源天元,清華大學計算機系圖形實驗室開源AI框架計圖(Jittor),以及之前國產AI開源框架,如百度PaddlePaddle、騰訊Angel、阿里X-DeepLearning等,表明中國AI框架的發展代表了國內從應用驅動向更內核的技術研究進發了。
2019年,美國總統川普籤署 13873號行政命令,以審查和禁止會對美國通信網絡、關鍵基礎設施、數字經濟以及國家安全構成 「不可接受風險」的涉及信息技術和通信的交易。該行政命令覆蓋了廣泛的信息技術、軟體和硬體,開源並沒有得到豁免。根據行政命令,開源/開放(Open)必須平衡保護國家安全的需求。
專家分析說,美國認為開源要求也要受到出口法律的管制。比如Github更改了用戶協議,按照他們的說法,開原始碼平臺上的上傳下載也要受到美國出口法律的管制,如何規避這種風險,是很多國家在開源軟體發展中面臨的新問題。
因此,倪光南建議,可考慮在中國設立一些開源項目的代碼託管平臺,並研究多個代碼託管平臺如何能同步和協調工作,以規避出口管制之類的風險。
中國工程院院士、鵬城實驗室主任高文認為,當今世界,開源軟體和開源社區的蓬勃興起有力地推動了全球開源生態領域的創新發展。但美國的管制條例成了高懸在我開源領域和開發者頭上的達摩克利斯之劍,在爭端的大背景下,危機更是一觸即發。在此特定歷史背景下,鵬城實驗室願積極承擔歷史使命,從AI和RISC-V等開源項目與代碼託管方面切入,逐步推動我國開源生態領域和開發者環境的良性發展。
接受記者採訪的阿里雲陳緒博士認為,要有中國本土的開源軟體基金會,要有中國本土的開源協議,有中國本土發起的成功開源項目,要有中國本土的代碼託管平臺。
永洪科技高級副總裁&研發部總經理邵文龍告訴中國軟體網,中國需要發展自己的代碼託管平臺,確保開原始碼的安全。一方面,國內企業大量依賴開源組件,如果沒有自己的開原始碼託管平臺,將會嚴重受制於人;另一方面國內有大量的開源提交,這些提交如果同樣會受到封禁的影響,甚至出現自己提交的開原始碼,自己卻無法使用這種極端情況。因此,維護自主可控的開原始碼託管平臺不但是必要的,而且是緊迫的。
當然,政策法律對開源軟體代碼託管平臺的影響也在開源平臺服務商的考慮範圍之內。GitHub COO Erica Brescia表示,因為擔心美國政府的限制,GitHub正考慮在中國成立子公司。北京方面對該公司在華擴張計劃 「持非常鼓勵的態度」。GitHub此舉是打消中國用戶和開發者的顧慮。
不得不否認,目前中國的開源軟體代碼託管平臺很少,力量很弱。
近年來,國內包括開源中國、騰訊、阿里、華為、鵬城實驗室等在內的公司和機構也在代碼託管上進行新的嘗試。
碼雲Gitee 是由開源中國出品,專為開發者提供穩定、高效、安全的雲端軟體開發協作平臺,無論是個人、團隊或是企業,都能夠用Gitee實現代碼託管、項目管理、協作開發,更有代碼質量分析、項目演示等豐富功能等體驗。
據介紹,碼雲Gitee開發者超過500萬,託管項目超過1000萬,匯聚幾乎所有本土原創開源項目,並於2016年推出企業版,提供企業級代碼託管服務,成為開發領域領先的SaaS服務提供商。
碼雲與GitHub國內訪問速度對比
2019年7月,深圳鵬城實驗室推出了「iHub開源託管平臺」(iHub平臺,網址:https://www.ihub.org.cn)。該平臺定位於面向以漢語為母語的開發者,優選、匯聚全球人工智慧和RISC-V等開源項目與代碼,與國內優勢單位國防科技大學Trustie課題組深度合作,力爭打造我國規模最大的高水平開源託管平臺。
iHub開源託管平臺發布
華為也打造一個開源平臺,名為華為開原始碼託管平臺,https://code.opensource.huaweicloud.com/home。但是與GitHub不同的是,華為開原始碼託管平臺並不允許普通開發者託管自己的代碼,主要是華為官方發布的開原始碼。也就是說,這一平臺不會支持普通用戶以自助的方式創建自己的開原始碼倉庫。
阿里雲代碼託管 https://code.aliyun.com/,以及騰訊雲和Coding合併而來的騰訊雲代碼託管 https://coding.net等,也與華為代碼託管平臺類似。
陳緒博士認為,除了已投入巨頭旗下的 CODING、碼雲等平臺,還有其他的開原始碼託管平臺在孕育中,主打點就是中立和中國本土概念。一旦國際的開源平臺對 IP 進行封殺,這些本土代碼託管平臺就成為救命稻草。
KubeSphere容器平臺社區經理周鵬飛告訴中國軟體網,國內有公司早已開始針對這一現象,開發了國產的代碼託管平臺,如碼雲 Gitee、Coding 等,國內也有很多企業選擇將代碼託管在 Gitee 和 Coding,如openEuler、SofaStack。發展自己的代碼託管平臺有助於聚集國內的優秀開源軟體,豐富國內的開源軟體生態,並且在一定程度上刺激國內企業參與和投入國產開源事業。
因為GitHub開始按照國籍對帳號進行限制,開源也開始有了國界,很難預料某一天這一制裁是否會影響到我們。因此,要大力支持國內公司發展自己的開源軟體代碼託管平臺,也建議國內開原始碼託管平臺能夠進一步提升用戶體驗和推廣力度。
中國軟體網認為,目前國內也出現了一些代碼託管平臺,其中有完全開放的代碼託管平臺,也有一些企業內部的代碼託管平臺。
首先,中國的軟體代碼託管平臺大多是商業性的、不是全員開放的,目前還沒有出現像GitHub、GitLab一樣的大型開原始碼託管平臺。
第二,中國的軟體代碼託管平臺還沒用匯聚起與GitHub、GitLab一樣的實力,沒有聚集更多的開發者、公司和用戶。如目前GitHub平臺上的開發者匯集了2700萬人,託管代碼多達8000萬。而碼雲Gitee開發者超過500萬,託管項目超過1000萬。
第三,發展開源文化,鼓勵更多的人參與開發,共享代碼,發展壯大軟體和應用。目前開源軟體進一步深入人心,成為軟體研發方式的兩極之一,進而超越商業開發成為軟體研發的主流。更多的人將會從發起和運營開源項目中獲益,並直接或間接地獲得財富。開源文化培育對中國開源軟體代碼託管平臺而言是一個挑戰。
那麼,中國如何建設和運營自己的開源軟體代碼託管平臺呢?
羅馬不是一天建成的。
中國軟體網認為,要打造中國自己的開源軟體代碼託管平臺,需要時間,更需要有魄力的企業家;要有投入,也要能賺錢;要提供服務,也要會運營,讓代碼託管平臺越辦越好。
金山雲合伙人、雲計算產品中心總經理劉濤告訴中國軟體網,一個代碼託管平臺,如何能夠發展壯大成被開發者廣泛認可,且功能強大完備的平臺?開原始碼託管平臺的發展壯大,很難用行政命令或者政府推廣的方式真正壯大起來,但是政府可以扶持一些國內做的好的平臺。
陳緒博士說,開源是雲計算公司建立生態的重要手段。微軟收購Github既可以得到其社區以及技術資源,同時,雙方的合作又可以為微軟提供一個新的連接點,從而滿足其開發人員在各種平臺包括Azure雲上構建應用的需求,對於微軟包括雲平臺Azure Cloud在內的多個平臺開發應用也會提供一定的基礎。
同樣,谷歌投資GitLab也意在擴大其開發者隊伍,發展更多的生態力量。
那麼,中國有沒用雲服務企業挺身而出,做大做強中國自己的開源軟體代碼託管平臺呢?