对于软件开发人员来说,编写在其机器上工作的代码已经非常困难了。但即使这样,从那里到产生价值的软件还有很长的一段路要走——因为软件只有在生产过程中才产生价值。


我的软件交付哲学的精髓是构建软件,使其始终处于可以投入生产的状态。我们称之为持续交付因为我们一直在运行a部署管道测试该软件是否处于要交付的状态。

获奖的书,通过第一版和戴夫•法利是关于如何建立这些管道的手册。

持续集成

持续交付是关键理念,但它的基础更为人所知持续集成(CI)。连续集成是连续输送管道的第一步,这意味着每个开发人员都在不断地与其他开发人员集成他们的工作。通常这意味着每个开发人员每天至少登录一次themainline

Kent Beck创造了这个术语continuousintegration作为90年代极限编程的一部分。在thoughtworks,我们在1999年的一个重要项目中首次使用了CI。从那次经历中,我和Matt Foemmel编写了第一个版本持续集成的文章thissite。这是在web上获得CI的概述的最佳位置。

要比我的文章更深入,你可以联系到PaulDuvall的书在持续集成。这提供了设置和使用CI环境的详细指南。

持续交付还是部署?

我们听到的一个常见问题是“持续交付和持续部署之间的区别是什么?”这两个术语都是相似的,并且是在同一时间创造的。我认为这是关于部署到生产环境的频率的业务决策。持续交付是指将应用程序保持在始终能够部署到生产环境中的状态。持续部署实际上是将每个更改部署到生产环境中,每天或更频繁地。

杰兹已经再讨论这种微妙的,但importantdistinction。

自动CI和Go

ThoughtWork的第一个CI项目的特性之一是构建aCI服务器来帮助CI自动化。虽然CI作为一种实践并不要求服务器,许多团队发现CI服务器是有帮助的。马特的第一台CI服务器变成了CruiseControl-一个开源的CIserver,已经有很多年了CI服务器。从那时起,许多其他CI服务器,开源和商业化,已经出现了。

在最后这一部分,我们用过很多这样的工具,但是想要把它们扩展到持续交付的世界。在00年代的各种项目中,我们将围绕CI服务器的工具放在一起构建部署管道。随着我们知识的增长,我们将这种经验转化为一种工具,可以在我们熟悉的sowell企业环境中轻松地设计和管理部署管道。bet188足球这个工具叫做

自动化是持续集成和交付背后的核心策略。因此,您需要自动化构建的工具,因此,构建您的软件是可以用一个单一指令来完成的。像make和ant这样的工具是自动化构建的流行工具,但是我发现它们是令人沮丧的工具。因此,我很喜欢耙,Jim Weirich提供的构建工具。我collectedtogether我的笔记用耙,我希望这能帮助其他人使用它。