在DevOps中管理软件工件

如果您创建软件,那么您肯定会在此过程中创建许多软件工件。工件是软件交付过程的自然副产品,并且世界杯2022赛程时间表 高效和安全的方式对于确保您的交付链的健康和可靠性至关重要。

本文解释了什么是软件工件,为什么它们对DevOps团队很重要,以及如何最好地处理它们世界杯2022赛程时间表 作为DevOps战略的一部分。

什么是软件工件?

软件工件是作为软件交付过程的一部分而产生的任何类型的对象(例如持续集成/持续(CI/CD)交付管道).

工件可以是源代码、文档、容器映像、软件许可证或团队在构建软件时生成的任何其他类型的文件或资源。实际上,您可以将软件工件视为软件交付过程的“废气”。它们是在DevOps团队工作时自然产生的。

团队通常将工件存储在构件库,它为管理团队创建的所有工件提供了一个安全的、集中的位置。

为什么软件工件对DevOps很重要?

软件构件可以存在于任何类型的应用程序开发环境中——它们并不是采用DevOps的组织所独有的。

然而,工件在DevOps中扮演着特别重要的角色,原因如下:

资源再利用2022世界杯阿根廷预选赛赛程

DevOps团队以重复发布的方式交付软件。有时,他们可能需要重用来自较早发布周期的工件来帮助生成较晚的发布周期。

例如,以前版本中的文档工件对于识别该版本中的已知问题可能是必要的,以便在下一个版本中解决这些问题。或者,开发人员可能会从应用程序中删除一些源代码,只是为了在稍后的时间发现他们需要重新合并代码。

在这样的情况下,团队可以重用早期发布周期中的工件,以保持当前的工件快速有效地运行。

团队协作

DevOps发布周期由各种不同的阶段组成,例如开发、测试、部署和生产管理。过程中的每个步骤通常由不同的团队“拥有”,该团队在完成其工作时产生不同类型的工件。例如,开发人员创建源代码,而测试团队创建二进制文件,IT团队生成文档以跟踪生产中出现的问题。

通过在整个DevOps组织中共享工件,这些不同的团队可以更容易地相互协作。例如,开发人员可能希望查看IT团队创建的文档,以便发现产品中出现的问题,然后开发人员可以在下一个发布周期中修复这些问题。

快回滚

在团队需要执行回滚(这意味着将应用程序恢复到早期版本)的情况下,工件是至关重要的资源。DevOps团队通常使用回滚来解决生产环境中出现的问题。通过回滚到已知稳定的较早版本,团队可以在修复问题的根本原因时最大限度地减少对用户的干扰。

为了执行回滚,团队需要来自应用程序早期版本的容器映像或二进制文件等工件。如果他们手头没有这些构件,他们将不得不从头开始重新构建应用程序。这可能需要一些时间,当团队需要立即回滚部署以纠正影响最终用户的问题时,这是一个问题。

在DevOps中处理软件工件的最佳实践

至少,简单地以集中的方式存储工件是确保您的DevOps团队在需要时能够访问所需工件的基本步骤。但是团队也应该坚持其他的最佳实践,这些实践可以帮助他们充分利用手头的工件。

保持工件与元数据同步

软件工件通常具有与之关联的元数据。元数据是上下文信息,比如工件是何时创建的,或者它属于哪个发布周期。

在某些情况下,访问元数据与拥有工件本身同样重要。在管理工件时,努力确保元数据与工件一起可靠地存储,并且即使在工件更新或移动时,它们的元数据也保持完整。

在整个团队中共享工件

如上所述,能够在DevOps组织之间共享工件可以帮助不同的团队协作和协调他们的活动。因此,最好的工件管理策略是允许所有团队成员访问他们需要的工件。您应该避免每个团队单独存储其工件,使其他团队难以访问它们的做法。

实施软件工件访问控制

控制谁可以访问工件的访问控制对于安全管理工件是必不可少的。尽管在团队之间共享工件通常是有益的,但是有些工件本质上可能是敏感的,并且并不是所有的团队都应该能够访问所有的工件。

例如,如果工件包含私有用户数据,则应该以只有有理由需要该数据的工程师才能访问它的方式存储它。同样,文档工件有时可能包含敏感信息,这些信息可以帮助攻击者找到系统或应用程序中的弱点,因此为文档设置访问控制非常重要。

适当地保留工件

DevOps团队可能需要在工件创建后很长一段时间内访问工件。即使您认为您不需要再次使用工件,也可能会出现需要使用工件的情况。例如,您永远不知道何时需要查看旧源代码或应用程序二进制文件来研究安全事件。

出于这个原因,建立保留策略是一个最佳实践,它允许您存储工件,只要您可能合理地需要访问它们。尽管由于存储限制,无限期地保留每个工件并不总是实际的,但是您应该根据将来需要它们的可能性和存储它们的成本,为不同类型的工件设置保留策略。相对不重要的工件,或者消耗大量空间的工件,可能不需要像较小的或任务关键的工件那样长时间保留。

充分利用您的软件工件

软件工件是DevOps团队的重要资源。它们有助于将风险降至最低,并增强协作和效率。这就是为什么实现一个安全的、集中的工件管理平台是明智的,比如JFrog Artifactory,它允许团队存储任何类型的工件,只要他们需要,同时维护粒度访问控制和元数据。