封禁丑闻不断,开源代码托管动了谁的奶酪?

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也意在扩大其开发者队伍,发展更多的生态力量。

那么,中国有没用云服务企业挺身而出,做大做强中国自己的开源软件代码托管平台呢?

2020中国企业服务十大趋势系列

扫码填写问卷

有效问卷会收到我们赠送的星巴克咖啡一杯

快来填写吧!

发布了662 篇原创文章 · 获赞 266 · 访问量 90万+

猜你喜欢

转载自blog.csdn.net/Z1Y492Vn3ZYD9et3B06/article/details/105445152