借助 JFrog Artifactory 中的发布生命周期管理(Release Lifecycle Management)实现“发布优先”的能力

更新: swampUP 2023 大会推出的发布生命周期管理(Release Lifecycle Management) 包括创建 Xray 策略的能力,以阻止包含恶意包、CVE 等的 Release Bundle晋级和/或分发。请继续阅读本文,了解有关 Release Lifecycle Management 的更多信息。

每家企业都有软件构建和发布的工作流程。研发规模较小的企业可能会在软件发布之前进行少量的自动化测试,而研发规模较大的企业可能会进行数百项漏洞扫描、验证和审查,涵盖从技术到法律的方方面面。无论企业的软件构建和发布的工作流程如何,最终目标都是一样的:发布足够成熟且安全的软件。

而企业实现这个最终目标的难点在于,软件构建和发布的过程千头万绪、非常复杂,经常是权宜之计,会随着企业的发展而不断演变。不同的开发团队使用的软件工具不同,软件开发生命周期 (SDLC) 各个阶段所使用的软件工具也千差万别。可能需要人工操作、软件工具之间的定制化集成、以及多个二进制制品包和组件的整合才能进行发布。

当今世界,软件供应链的威胁既存在于企业外部,也存在于企业内部,国内外对软件供应链的恶意攻击在 2021 年至 2022 年期间增加了 40%。这种情况令人焦虑不安。企业开发团队需要建立唯一可信源,使企业能够全面掌控软件发布流程,确保待发布软件的完整性和安全性,实现自动化流程,尽可能减少人为操作过失造成的风险。

构建可信、自动化的软件发布流程

JFrog 提出了“发布优先”的软件供应链管理方法。通过聚焦软件开发的结果(即软件发布),我们可以反向构建软件发布流程。首先要问这样一个问题:“发布安全和可信的软件需要做些什么?”

JFrog的答案是:作为发布安全和可信软件的唯一可信源,需要构建六个核心要件:

1.尽早将包含所有不同开发语言的软件包和组件的版本定义为一个不可变的实体
2.配置“环境”,使之与企业的发布生命周期阶段相匹配,并为版本中包含的组件提供必要的制品仓库
3.让软件供应链中所有团队和各种软件工具在同一个平台管理并获取相关信息和证据,以采取确保软件供应链安全和质量的措施
4.流畅地将软件版本从一个环境晋级到另一个环境,而不是在发布流程中的任何一点重新构建
5.通过定义策略来控制软件版本如何或何时推送,包括安全漏洞扫描、许可证合规验证和运营需求保证
6.将软件版本分发到需要使用的地方,确保在软件交付的“最后一公里”有可信的监管链路

介绍:JFrog Artifactory 中的发布生命周期管理(Release Lifecycle Management

JFrog 长期以来一直支持企业更好地管理软件供应链的各个环节,先是推出了 JFrog Artifactory全语言通用制品管理工具,接着是 Build Info,后来又提出了 Release Bundle 的概念。这些软件工具已经被一些世界上技术先进且规模庞大的软件公司所采用。

对于JFrog最新推出的“发布优先”方法来说,JFrog Artifactory 中的发布生命周期管理(Release Lifecycle Management)是向前迈出的一大步。Release Lifecycle Management 带来了全新和增强的 Artifactory 功能,提供了构建模块,有助于实现软件发布管理的标准化并更好地保护软件供应链。

Release Lifecycle Management 在现有软件工具集的基础上,提升到一个更高的层级,使企业更容易采用这些最佳实践,同时为实现更强大的功能奠定基础。

发布生命周期管理(Release Lifecycle Management) 对 JFrog 用户的意义

此版本的最大变化之一是引入了全新的 Release Bundle,我们称之为 Release Bundle v2 (RBv2)。RBv2将 Release Bundle 概念引入 Artifactory,让用户可以在 SDLC 的早期将潜在的软件版本定义为由多个构建输出、软件包和二进制文件组成的唯一不可变实体。该实体在分发、生产或消费的过程中可以被视为一个整体。

现在,发布生命周期管理(Release Lifecycle Management)可以帮助企业实现:

  • 配置定制化环境,使各种环境与企业软件发布生命周期的各个阶段相匹配,并为每个软件版本中包含的组件提供必要的制品仓库
  • 在 SDLC 的早期创建一个签名的、不可变的 Release Bundle (RBv2),它定义了包含所有不同开发语言的二进制软件包和组件的潜在候选版本
  • 将 Release Bundle 晋级到目标环境(SDLC 阶段),而不需要使用定制化脚本
  • 创建并应用 Xray的安全 策略来阻止 Release Bundle 的晋级或分发
  • 将 Release Bundle 分发到边缘节点以优化使用
  • 获取软件版本的元数据信息,用于追溯和报告针对 Release Bundle 采取的操作

通过采用JFrog的发布生命周期管理(Release Lifecycle Management)功能,企业的研发团队将受益于:

  • 增强的可追溯性,包括每个软件版本的状态(例如,谁推送了某一个软件版本,目前软件版本处于哪个阶段,软件版本何时被推送的)
  • 更容易实现的自动化发布流程(例如,研发团队自定义设置 Artifactory,需要在哪个阶段晋级 Release Bundle,Artifactory会处理好剩下的事情)
  • 更高的安全性和更低的出错几率,因为一切都被封装在一个不可变的、签名的 Release Bundle 中(也就是说,不存在残留或部分发布,所以当软件版本成熟后,谁都不能破坏它)
  • 单一的记录系统,涵盖企业开发的所有软件

此外,JFrog 的用户不论级别,都可以使用这个新发布的功能,即使是 Pro 客户也不例外。和所有 JFrog的 功能一样,借助 CI 插件,创建 Release Bundle、晋级和分发 Release Bundle 等操作都可以在JFrog的 UI、CLI 中触发,也可以通过 CI 工具触发。

发布生命周期管理 (Release Lifecycle Management)的下一步

这个新功能令人兴奋,更加令人期待的是企业能利用这个功能来做什么。

JFrog正在开发新的控制面板,可以显示所有软件版本的状态,包括问题和风险。随着JFrog平台的成熟,JFrog也开始着眼于收集和存储针对软件操作的第三方证据。

但我们无法凭空做到这一切。我们需要您的指引来了解您如何使用这些功能,以及它们支持哪些有价值的实践。所以,请尝试这个新功能,并向我们提供反馈。我们将与您一起塑造最强大的软件供应链管理平台。