问题描述
在DevOps术语中,有时术语是由产品的作者引入的。因此,有些标准操作被描述为模棱两可的术语。在混合团队和大型异构环境中,我们需要对术语达成共识,以理解我们实际上在做什么。
– “publish”(发布):Ant/Ivy中特定的术语,意味着将构件放入二进制仓库。同时,有些人可能会说”将内容更新发布到网站”。
– “deploy”(部署):在”Maven世界”中,该术语描述了将构件放入二进制仓库,更多的”opsy”人员在没有Maven的情况下也会部署他们的服务器。
如何应对这种歧义(理想情况下,请提供”成功故事”)?在以交付为导向的高压环境中,探讨术语含义并不总是受欢迎的;也许已经有更好的术语存在?
解决方案
请注意以下操作注意版本差异及修改前做好备份。
术语的确切含义可能因不同的上下文而有所不同。在解决这种歧义时,我们可以尝试使用明确的术语,并在整个团队中进行共识,以减少混淆。
术语定义
首先,让我们明确我们所讨论的是”将构件存储在构件仓库中”的操作。以下是一些术语的定义,旨在更清晰地描述这些操作:
发布(Publish):将构件置于仓库中,并使其对其他人可用。这个术语在大多数情况下都是适用的。当然,如果将构件推送到一个”私有”仓库时,这个术语可能会稍微弱化,可以称之为”私有发布”。这仍然是可以接受的,并且具有意义。
部署(Deploy):这个术语实际上并不适用于将单个构件推送到单个仓库中。”部署”涵盖了在多个环境或计算机上分发构件的意思。我们在这里讨论的是部署的先决条件,而不是部署本身。
成功故事
一个例子可以帮助理解如何在实际项目中应用这些术语:
在一个团队中,每当一个合并请求合并后,都会产生一个潜在的发布候选版本。团队达成了一致意见,将推送构件到构件仓库的工作称为”版本化(Version)”。因为每个合并请求生成的构件都是一个潜在的发布候选版本,所以将其版本化然后推送是合理的。
后续思考
目前,”发布”是一个较为合适的术语(甚至可能是私有发布)。然而,这仍然不是一个完全令人满意的解决方案。如果您对此有更好的想法,请随时在下方评论中分享您的想法!
这里提供了一种以”发布”为中心的解决方法,但请记住不同的团队和项目可能会根据上下文有所不同。在实际应用中,建议团队根据其具体情况和需求来定义清晰的术语,以减少歧义。