Sonatype 在七月份发布了第三份年度软件供应链状态报告。报告指出,当组织主动管理软件应用中开源组件的质量时,能够提升开发人员28% 的生产力(通过减少人工治理的方式),减少30% 的总体开发成本以及提升48% 的应用质量(应用程序漏洞被尽早移除,从而减少了在产品中的发生率)。分析还显示,那些采用自动化治理工具的团队所开发的应用程序将缺陷组件的占比降低了63%。
Derek Weeks 是 Sonatype 的 VP 和 DevOps 倡导者。他告诉 InfoQ:
数据来自许多不同的源头。历史经验数据从 Maven Central (Java)评估得来。同时,Sonatype 已经分别为 NPMJS.org (Javascript)、 NuGet Gallery (.Net)和 PyPi.org (Python)建立了索引库。我们一整年都在研究并持续密切关注市场的新闻动态,包括开源软件组件、质量、实践和规约。
该报告还强调了软件开发中开源组件的消费增长。Java 组件的年度下载量同比增长了 68%(2016 年为 520 亿),JavaScript 下载量增长了 262%(2016 年为 590 亿),而对 Docker 组件的需求预计在未来 12 个月将增长 100%(即 120 亿次下载)。
Weeks 说道:
创新为王,速度至关重要,开源则是核心。 由于速度至关重要,不论是开发人员、CIO 还是 CEO 都会说,如果需要花费 15 分钟的事情可以用 1 秒钟解决的话,有什么理由不选择后者呢? 这解释了为什么人们选择从互联网下载,而非从头开始构建。
报告指出,使用开源组件的组织面临的挑战之一是开源软件(OSS)项目平均需要 233 天时间才能修复已知的漏洞。其中只有 15.8%的 OSS 项目能够主动修复漏洞。
Weeks 说道:
大多数开源项目或许并不知道有这些漏洞。也许安全研究人员无法有效地将其发现与项目联系起来。又或许没有足够的人来了解项目本身的安全编码实践,以便评估和修复漏洞。这仅仅是个人推测。
Sonatype 声称,高功能(high-functioning)的 DevOps 组织正在利用机器自动化来控制流经其软件供应链的开源组件的质量,从而提高软件健康度。
Weeks 说道:
人们需要对软件开发中采用的开源组件了解得一清二楚。意识改变行为。现在就为你的软件列出所需组件的清单吧。一旦有了这份清单,您就可以进行更好的评估。我们比以往更需要这种意识。如果想了解所采用的组件状态是否良好,那么越早建立清单越好。如果您将这一信息提供给开发者的话,他们就可以在编码周期早期做出选择并执行安全编码实践。
我们问 Weeks 是否存在安全技术人才短缺的问题。他说道:
既对也不对。IT 行业的每一个新动向总伴有技术人才的短缺。但 IT 行业不断发展的方式是通过寻找工具和解决方案来进行自动化。当我们说应用程序缺少安全方面的技术人才的时候,无异于说我们通过手工的方式来评估应用程序的安全性。如果将分析或安全这部分工作进行自动化,那会怎样呢?我们会因此在组织中更富有成效地工作。技术和自动化可以解决技能短缺的问题。我们通过创新来寻找出路。
查看英文原文: Active Management of Open Source Components Delivers Measurable Improvements Claims Sonatype Report
感谢薛命灯对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论