什么是持续集成?

问题描述:

什么是持续集成?它有哪些好处?什么是持续集成?

This是迄今为止我读到的最好的解释。

+7

福勒几乎总是有最好的解释=) – Rulas 2009-01-20 23:35:30

+0

我对他对事物的想法感到惊讶! CLEAR – Perpetualcoder 2009-01-21 01:07:22

这是一种确保您的软件开发过程的所有方面都排列起来以允许每日创建您的产品的工作版本的做法。它被称为极限编程的一部分。

这涉及到构建自动化,自动化测试,日常检查,使用源代码存储库等方面的事情。但最终目标是帮助整个项目按照核心敏捷原则运行,以便交付早期和经常。这反过来又帮助您充分利用用户的反馈意见等。

最简单的方法是,只要将检入项制作成一些版本控制系统(CVS等),就可以重建项目。这可以扩展到包括运行测试,一直到生成CD映像,将其安装在VM中,安装产品并对其执行完整测试。

它具有突出显示代码更改时尽可能早地破坏系统的简单优势。它不仅检测代码中的中断,还突出显示谁造成了中断。这种心理效应在签入之前鼓励好的测试非常有效!

+1链接到福勒的页面。我个人认为只要有东西没有编译就知道它“很好”,因为我们有一个单一版本(是的,我们在生产版本上开发;我们很棒)的糟糕做法。在我离开之前,我们还没有完成综合测试阶段。

过了一段时间,它确实减少了大量编码更改(与“检查并祈祷我的更改不会发生冲突”相比)。最终,大多数开发人员为了从CC.Net托盘图标中获得确认而开始进行小的更改。总体而言,我发现非常让人欣慰的是,如果我们不得不这样做,我们可以立即发送一个构建。如果我们只进行了几次烟雾测试,我认为压力水平会大幅降低。

只是为了刷新。此时,持续集成(CI)和持续交付(CD)之间存在巨大差异。虽然大多数上述CD的帖子我会尝试展示CI现在如何扩展CD定义。拥有构建软件包并自动部署新版应用程序所需的所有工具是CD的重要组成部分。除了这种测试自动化(基于三级验证:常规健康检查,详细统计和历史条目)和正确的治理之外,您还可以创建一个非常好的CI。仅仅因为这样一个扩展的定义才能建立非凡的云工具。想想muleESB或esbeetle.com。尽管只有第二个支持ESB和ETL组件,但它们都是自然的。

我希望它有帮助。