我们讨论了开源开发人员面临的挑战,以及他们所面临的挑战如何影响整个IT生态系统。
照片-James Sutton-不飞溅开源-互联网的基础
根据Linux Foundation的统计,财富2000强公司中有72%的公司使用开源工具来解决他们的问题。 同时,有55%的人在商业产品中使用开源。 开源软件分布在数据中心中,例如Facebook,Rackspace,NASA和
AT&T都 在使用它。 许多云提供商和IT公司甚至建立了
Open Compute Project 。 她正在开发一种开放标准服务器机架体系结构(Open Rack)和云数据中心的模块化服务器要求(OpenCloud Server)。
流行的开源产品中很大一部分是大型项目,例如Kubernetes,TensorFlow或Ansible。 它们是由大型IT公司开发和资助的。 但是也有爱好者支持的小型产品(例如
cURL )。 他们通常在自愿的基础上并在空闲时间这样做。 这里有陷阱。
为什么批评这种模式
开源的概念意味着每个人都可以修改源并纠正其中的错误。 集体努力可以提高代码库的质量并减少错误的数量。 但不幸的是,这种模型并不总是有效。
开源项目中很大一部分更改是由一个小型团队或一个维护人员进行的。 例如,
在cURL存储库中的25,000个
提交中,有14,000个属于作者-Daniel Stenberg。 长期以来,OpenSSL库的开发人员人数
不超过四人。 大多数提交都是
由其中之一-史蒂夫·汉森(Steve Henson)
做出的 。 因此,在这种情况下,很容易忽略和“跳过”错误。
因此,五年前在OpenSSL中发现了软件中最大的漏洞之一
-Heartbleed 。 它允许未经授权地读取服务器或客户端上的内存。 然后,易受攻击的网站数量
估计为50万。 该补丁立即发布,但早在2017年,有20万个受Heartbleed影响的站点正在运行。
照片-James Sutton-不飞溅许多开源项目都遇到资金问题。 由于社区的捐赠和公司合同的收入,
存在相同的OpenSSL
,每年的金额不超过一百万美元。 该项目的前首席执行官
表示 ,出现Heartbleed的原因之一就是缺乏资金。 工程师即使进行咨询也可能很难筹集资金。 据丹尼尔·斯特伯格(Daniel Stenberg)说,国际公司经常向他求助,以帮助解决cURL中的问题。 但是每次他要求为工作付费时,由于某种原因,对话结束了。
“有时,开发人员在业余时间从事开源项目是一种爱好。 因此,放弃某些应用程序也就不足为奇了。 如果没有人想让这个项目继续下去,那么围绕它而形成的社区就会瓦解。
在最坏的情况下,系统用户可能会成为黑客攻击的目标。 一个例子就是去年对npm事件流模块的攻击 。”
该项目的作者多米尼克·塔尔(Dominic Tarr)转而从事其他工作,无所事事。 一些用户建议接管模块支持。
Tarr同意并授予他访问GitHub和npm上的存储库的权限。 随着时间的流逝,新的维护人员
向实用程序中
引入了一个脚本,该脚本可以窃取比特币钱包数据并将其上传到其服务器。 鉴于事件流每周有190万次下载,该漏洞影响了许多用户。
如何解决这种情况
根据美国国家经济研究局的数据,开源开发的主要动力是经济利益。 因此,开源开发人员正在寻找将其货币化的方法。 例如,他们将部分模块转让给限制性甚至商业许可。 MongoDB,Redis和其他公司都采用了这种方式。
我们已经更详细地
谈到了这种情况。 开发人员认为,即使将代码部分商业化,也将开拓额外的收入来源,并吸引新人加入该项目。 但是,这种模型通常会受到IT社区的敌视。
人们认为这种方法与开源软件的概念相矛盾。 但是,它并不适合所有人。 2017年,Caddy Web服务器
宣布了 HTTP / 2
的商业许可证。 但是由于某种原因,一个月前,该项目再次
返回开源。
照片-Artem Beliaikin-不飞溅全球Internet基础结构取决于开源项目。 因此,重要的是要注意他们的支持。 并且朝着这个方向努力。 Linux基金会定期有新居民。 大型公司正在对开源进行越来越多的
投资 。 也许这样的举措将有助于避免重复类似Heartbleed的故事。
关于1cloud.ru博客的其他阅读:
云将节省超预算的智能手机吗
苹果为何更改了对应用程序开发人员的要求
1cloud云架构演进
Linux内核5.3的新增功能-图形驱动程序,虚拟化和其他更新
为什么主流浏览器开发人员再次拒绝显示子域