DevOps术语有时起源于其作者介绍的产品。

结果,存在一些用模糊术语描述的标准动作。在混合团队和大型异构环境中,我们需要就条款达成共识,以了解我们的实际工作。


发布:特定于Ant / Ivy的术语,表示将伪像放入二进制存储库中。另外,有人会说“将内容更新发布到网站上”。到位。

如何处理这种歧义(理想情况下,请参阅“成功案例”)?在面向交付的压力环境中,术语含义的探索性讨论并不总是受欢迎;也许周围已经有更好的条件了?

有关术语的定义,请参见参考资料。

评论

好问题!这是一个真正的问题!我将尝试在下面提供我的意见。希望对您有所帮助。

#1 楼

这些术语实际上定义得相当好,有些作者只是通过使用诸如“发布”之类的术语来进行部署,在发布网站等内容构成其自身流程也构成部署的情况下,因为没有多余的东西发布后的部署步骤。有时,由于所有工件都是公开的,因此他们将单词发布同时用于上载和发布。这就造成了不必要的混乱。为了清楚起见,以下是定义:

环境定义:






构建环境-构建过程的环境设置。

运行时环境-执行过程(测试/分期/生产)的环境设置。 br />


building-在构建环境中创建工件的过程

上传-将工件从构建环境移至存储库。

发布-将工件在存储库中公开。

下载-将工件从存储库移至运行时环境

安装-将工件应用于运行时环境

部署-在运行时环境中使用工件

交付-使工件对客户可用



注意:人们经常使用这些术语中的任何一个来一起指一个或多个先前的术语。

评论


似乎您是指与产品无关的来源;请分享一个链接。

– Peter Muryshkin
18年9月13日在6:34

这些是跨越该领域三十多年工作的数十种不同平台和产品中最常用的术语。会有一些细微的差异,但是主要是由于误解。您可以从中获得关于这种答案的权威信息,但我尚未完成有关该主题的书。因此将没有链接。随意链接到这个答案。

–吉里·克劳达(Jiri Klouda)
18-09-13在7:09

这个问题的目标是“由于误解”。不确定对本书的引用是否具有讽刺意味,但是如果没有,祝您好运并期待它!

– Peter Muryshkin
18/09/13在7:48



误解来自我回答的最后一行。如果您考虑一会儿。通过数十种软件包管理工具,工件管理工具等来查看术语的各种用法。您会发现,在大多数情况下,某人对某物使用了不同的术语,这是因为他们的过程跳过了之前或之后的阶段。后。就像发布网站实际上意味着交付给客户或在SaaS中部署通常意味着交付或打包形式那样,是通过安装来完成部署。

–吉里·克劳达(Jiri Klouda)
18-09-13在9:05

造成混乱的第二个原因是发布是交付给客户的,但他们后来进行了自己的部署。那是两个不同的生命周期过程相互交叉并误认为一个过程的地方。例如,当您发布一个jar文件时,该文件是客户的交付物,客户将其接收后,将其部署到他们的生产服务器中,从而为开发人员提供内部服务。您的生命周期过程与他们的生命周期过程混在一起,使部署和交付的顺序混乱,使交付似乎先于部署。

–吉里·克劳达(Jiri Klouda)
18-09-13在9:11

#2 楼

首先,我们要弄清楚我们在说什么。我们将工作放在将工件存储在工件存储库中的操作中。

我个人比较愿意避免使用deploy,因为:



发布意味着您提供了一个供他人使用的工件。这个词似乎起到了作用。将工件推送到私有存储库时,它会有所减弱。然后,您将进行私人发布。这是一种较小的邪恶。仍然很有意义。

绝对不合适。在单个存储库中推送单个工件绝不是部署。部署意味着某种分散,将工件分散在多个环境或机器上。在这里,我们要处理的是部署的前提条件;不会自行部署。

[成功?]故事

关于它的价值,上次我面对的是命名将工件推到工件库的工作,我当时是在看板环境中工作。团队达成了一项协议,称该工作为

,因为在合并请求之后构建的每个软件包都是潜在的发行候选版本,因此对其进行了版本控制,然后推送了。

经过深思熟虑

到今天为止,我会使用“发布(可能是私下)”这个词来形容一个更好的词。
不能令人满意。请随时在下面的评论中留下您的想法!

评论


嗨,@ avil.elkharrat,谢谢分享!这个问题侧重于既定条款的模糊性。我们说“在这种情况下,这里没有部署不是一个术语”并没有太多的意义,因为在Maven世界(庞大而成熟的)中,它是!因此,每个社区都认为它们具有“更好”的语义。

– Peter Muryshkin
18/09/13在11:07



亲爱的彼得,我不确定我是否收到您的评论。你能澄清一下吗?我很高兴能更正我的答案,以更适当的方式回答您的问题。

–avi.elkharrat
18-09-14在8:04

Maven因在几乎所有方面都犯错而臭名昭著。但是主要的问题是,尤其是Java和Maven仅占整个开发生命周期的很小一部分。仅仅因为Maven在Java中很强大并不意味着它真的那么大。同样,如果工件在运行服务的计算机上的本地存储库中,则将其视为已部署。我会在自己的回答中谈到自动化。

–吉里·克劳达(Jiri Klouda)
18-09-18在9:17

查看此链接,他们确实在其中使用术语直接在Maven站点上下载,上传和发布到存储库。仅仅是这也构成了Maven世界中的部署,因此他们可以自动消除差异,从而掩盖差异。 maven.apache.org/guides/introduction/…

–吉里·克劳达(Jiri Klouda)
18-09-18在9:18

正如我在评论中提到的那样。如果存在两个不同的实体,其中一个实体发布到远程存储库,另一个实体(或自动化)远程同步到本地并安装并重新启动服务,则对于第一个实体,将工件发布到远程存储库的行为构成一个部署。

–吉里·克劳达(Jiri Klouda)
18-09-18在9:22