10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

管道式的持续集成解决方案好吗?

  • 2007-09-29
  • 本文字数:941 字

    阅读完需:约 3 分钟

敏捷开发的最佳实践之一就是持续集成,它使团队成员可以有规律地将他们的代码与基线集成并运行所有的单元测试和系统测试。在大多数团队中,当代码检入后, 持续集成服务器都能很快地自动完成这个工作。通常在项目初期一切都很顺利,但有时当团队或代码基线变得很大时,持续集成的速度就会开始下降。构建内容在增 加而反馈速度却在下降,构建一次可能要花上一小时甚至更多才能知道成功与否,而些时,有人可能已经将他们的代码检入到构建失败的版本中了。

为了解决这个问题,很多团队使他们的持续集成“管道化”,即分阶段进行构建。运行轻量级的构建,这个构建仅包括执行速度较快的那些测试,这样团队可以较快的得到初步结果,而更大范围的构建会在后台运行。而那些较慢的功能 / 集成 / 系统测试会在随后的阶段执行。 Simon Stewart 认为这种解决方案是有好处的

这就是我们为什么最终会采用构建管道来做解决方案。较迟的构建比较早的构建会执行的更慢一些,但一切是按照能够提供更快反馈的方式来组织的。我们知道我们 只需要手工测试这些构建,让它们穿过管道的终点,假如我们向其中增加一些阶段,那么我们对应用程序按照预期方式执行的自信就会随之增加。如果我们足够聪明 (快看!我们又一次拉动了“聪明”这根杠杆!)的话,我们还可以把应用部署到越来越现实的环境中,并且把它当作管道的一部分来在上面运行测试,而这些是我 们在使用开发工作站时从来没有想到的事情。

然而,不是所有人都认为这是个好主意。 ThoughtWorks 的 Julian Simpson 把它叫做“厄运管道(pipeline of doom)”。他认为,我们是在用管道(一个慢速构建机制)来回避这个问题,而不是解决这个问题。这种方法只能给我们虚假的信心,认为我们的集成是成功的。开发人员一直在几个迭代中使用这些不好的代码,这只能加剧问题。

我发现管道方法存在另一方面的问题,那就是在开发者检入代码之前不会迫使他们运行功能测试,这就相当于你不让他们通过重构去改进代码。而假如大家运行它们 时感到痛苦的话,他们就有动力去解决它们。那些测试相当于给你当头棒喝:你必须小心又小心,否则,你可能在一天内只能运行很少的几次测试。

那么,你的团队使用了阶段化持续集成了吗?对你来说,效果如何呢?

查看英文原文 Is a Pipelined Continous Integration a Good Idea?

2007-09-29 05:131341
用户头像

发布了 100 篇内容, 共 25.0 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

基于云的技术架构设计实践-第5篇

hackstoic

数据分析 云原生 数据可视化 业务分析 签约计划第二季

如何验证你的产品创意?

石云升

产品思维 28天写作 12月日更

架构实战营模块1课后作业

墨宝

Hoo虎符研究院 | Arweave调研报告

区块链前沿News

Arweave Hoo虎符 虎符交易所 虎符研究院 去中心化存储

我所理解的微服务

gevin

微服务 微服务架构

我粗心,有救吗?

Justin

心理学 成长 28天写作

「从0到1如何快速实现cli工具」

速冻鱼

大前端 cli JavaScrip 签约计划第二季 12月日更

Week1学习总结

guodongq

「架构实战营」

模块一作业

whoami

「架构实战营」

架构实战 模块一作业

mj4ever

架构实战营

毕业总结

小智

架构训练营

微信业务架构图&&“学生管理系统”毕业架构设计

guodongq

「架构实战营」

TypeScript 之 Class(下)

冴羽

JavaScript typescript 翻译 大前端

架构实战营-模块1-作业

Pyel

「架构实战营」

第一周作业

lv

日本公司诚招IT开发技术者

马农驾驾驾

Java c++ php Python 日语

彻底弄懂死锁

李子捌

Java、 28天写作 12月日更

架构实战营三期--模块一作业

木几丶

架构实战营 #架构实战营

Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)

不脱发的程序猿

Python qt GUI设计 Qt Creator 菜单栏、工具栏、状态栏

Spring AOP(一) AOP基本概念

程序员历小冰

spring aop 28天写作 12月日更

学习总结

Anlumina

「架构实战营」

Rust 元宇宙 15 —— 细节和重构

Miracle

rust 元宇宙

技术架构演进的思考

gevin

架构演进

从实习到秋招成为一名安全工程师,我经历了什么

网络安全学海

面试 网络安全 信息安全 渗透测试 WEB安全

第一模块作业

Anlumina

「架构实战营」

微信业务架构图&学生管理系统毕业架构设计

Spring

架构实战营

GrowingIO Terraform 实践

GrowingIO技术专栏

运维 SRE Terraform 项目实践 资源编排

Git 报错:unable to update local ref

liuzhen007

28天写作 12月日更

消费类电子线上问题定位,分析和解决落地

wood

硬件产品 28天写作 线上故障

记录-今年最骄傲的一件事(2)

将军-技术演讲力教练

透过全球首个知识增强千亿大模型,看到中国AI差异化发展之路

脑极体

管道式的持续集成解决方案好吗?_研发效能_Amr Elssamadisy_InfoQ精选文章