开源浪费的隐藏成本

减少低效可以节省时间和资源,并增强对软件供应链的信任。

译自 The Hidden Cost of Open Source Waste,作者 Mitchell Johnson。

开源重塑了软件开发,推动创新,促进协作,并使团队能够比以往任何时候都更快地构建软件。然而,除了这些好处之外,还有一个经常被忽视的挑战:管理其组件的低效率。自动化依赖管理——如果自动化是可靠的——提供了一种方法来应对这些挑战,方法是简化流程,减少人工工作,并使团队能够专注于创新,而不是重复的软件成分分析 (SCA) 任务。

问题的范围很大。根据Sonatype的2024年软件供应链现状报告,平均每个应用程序包含150个依赖项,其中90%是传递依赖项——通过其他库间接引入的依赖项。这些传递依赖项占已知漏洞的96%,这使得它们既需要解决又难以追踪。尽管开发团队尽了最大努力,但许多团队缺乏有效应对这些挑战的策略或工具。

除了技术复杂性之外,还有一个战略问题:组织如何平衡对速度的需求与对强大安全性的需求?随着开发周期缩短和安全威胁日益复杂,这种平衡行为定义了当前的软件供应链管理格局。解决低效率,而不是选择其一,才是解决问题的关键。

低效率的真正影响

开源低效率对组织的影响远远超出了技术问题。首先,它们会降低生产力。开发人员花费多达35%的时间来解决依赖关系问题或管理漏洞——这些时间本可以更好地用于构建新产品、偿还技术债务或引入自动化以提高成本效率。

高效的供应链管理带来的一个可喜的结果是更强的安全性。通过解决依赖关系低效率问题,组织自然会降低其面临供应链攻击等风险的可能性。虽然这些攻击在2024年激增了156%,但主动管理确保尽早减轻漏洞,将潜在风险转化为建立信任和弹性的机会。

也许最难以捉摸但同样具有破坏性的后果是信任的丧失。当软件无法满足安全性和弹性的预期时,它会影响用户和公司可靠性的整体认知。企业依靠安全的供应链来履行承诺,而这些系统中的低效率会迅速损害甚至最强的声誉。一旦失去信任,几乎不可能赢回。

了解根本原因

这些低效率的核心是需要更高的可见性。直接依赖项相对容易跟踪,但埋藏在软件堆栈深处的传递依赖项更难管理。这些看不见的元素会显著增加组织的攻击面,但它们往往直到为时已晚才被注意到。

过时的依赖项加剧了这一挑战。根据报告,80%的应用程序依赖项一年以上未升级。虽然并非所有这些组件都会引入严重的漏洞,但未能解决这些问题会增加未检测到的安全漏洞的风险,并增加软件供应链的不必要复杂性。这种缺乏及时的更新使开发团队背负着不断增加的技术债务,并且更有可能遇到本可以避免的问题。

软件快速迭代带来了新的挑战。依赖项可能几周内就过时,形成一个难以管理的动态目标,如果没有自动化和可行的洞察力,则难以应对。团队常常疲于奔命,效率低下,在被动维护上花费的时间越来越多。自动化通过扫描风险并优先处理高影响的修复来弥合这一差距,确保团队专注于最重要的问题。

提供可见性和自动化的先进工具可以减轻这些挑战。通过映射整个依赖关系树并突出显示过时的组件,它们为团队提供了及时采取知情行动所需的洞察力,从而显著提高漏洞修复效率。

解决开源浪费的实用步骤

优化软件供应链不仅仅是解决低效率问题——更是为了创造更好的开发者体验。自动化在这里至关重要,它减少了人工工作,使开发人员能够专注于创造性的、高价值的工作,而不是重复性的依赖项管理任务。将安全和依赖项管理集成到开发早期生命周期中,自动化工具有助于使开发更快、更愉快、更有成就感。

同样重要的是采用上下文感知工具,将自动化与优先级排序相结合。并非所有漏洞都相同,基于可利用性、业务影响和应用程序暴露评估风险的自动化工具允许团队有效地分配资源。这种有针对性的方法确保快速解决关键问题,而不太紧急的问题不会分散对更紧迫任务的注意力。

最后,改进对整个依赖关系树(包括传递依赖关系)的可见性至关重要。自动化解决方案提供了关于依赖关系如何交互以及风险所在的可行洞察,使团队能够就更新、替换或删除做出明智的决策。这种洞察力减少了不必要的复杂性,并构建了一个更可靠、更具弹性的软件供应链。

这些措施并非要做更多工作,而是要更聪明地工作。组织可以通过采用战略性的、数据驱动的实践并在每个阶段利用自动化来收回损失的生产力,同时显著降低成本。自动化工具和更智能的工作流程避免了返工的费用,并最大限度地减少了解决漏洞所花费的时间,使团队能够将资源集中在交付创新功能上。

释放开源的潜力

虽然管理开源存在挑战,但如果有效地解决了低效率问题,机遇远大于风险。自动化是这里的关键推动因素,它帮助组织简化依赖项管理,并将开源浪费转化为优势。

减少低效率可以节省时间和资源,并增强对软件供应链的信任。自动化工具使开发人员能够将精力投入到构建创新功能上,而客户和合作伙伴则受益于更安全、更可靠的产品。通过将自动化集成到每个开发生命周期阶段,团队可以主动管理风险,同时加快交付时间。

开源已成为现代软件开发的基石。通过减轻隐藏成本并利用自动化来增强流程,组织可以确保它仍然是创新的可持续和安全的基石,并将推动未来多年的发展。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注