AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

  • 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:131161
用户头像

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

关注

评论

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

企业的文档管理策略

小炮

文档管理

HDFS 细粒度锁优化,FusionInsight MRS有妙招

华为云开发者联盟

hdfs NameNode 元数据 FusionInsight MRS FGL

开发一个社区网站,只要20分钟?

华为云开发者联盟

ide 敏捷开发 devcloud 网站开发

模块二

Geek_2ce415

「v2.4」千呼万唤的图形化编排,来了!

Jianmu

持续集成 低代码 开发工具 开源项目 节点编排

又一国际知名律师事务所选择福昕PDF

联营汇聚

Fastjson官方再次披露高危漏洞,包括rocketmq、jeecg-boot等近15%的github开源项目受影响

墨菲安全

安全 idea插件 Fastjson 依赖漏洞检测 墨菲安全

末流985,秋招斩获多家大厂offer 经验分享

大数据梦想家

面经分享 大数据开发

eKuiper 1.5.0发布:实现无缝式工业数据采集+边缘流处理

EMQ映云科技

物联网 IoT emq 开源之夏 5月月更

IoT技术的最后决战!百万大奖究竟花落谁家?

华为云开发者联盟

IoT 华为云 iotda NSBD-IOT

小区适合投放自助洗车机吗?

共享电单车厂家

自助洗车加盟 小区投放自助洗车机

避免惊群以及负载均衡的原理与具体实现

C++后台开发

nginx 负载均衡 后端开发 C++后台开发 惊群

没有店面店铺可以做自助洗车吗?

共享电单车厂家

自助洗车加盟 自助洗车店面

英特尔开源项目推动SYCL标准采用,打破单个厂商封闭生态系统

科技之家

7 款最棒的开源 React UI 库测评 - 特别针对国内使用场景推荐

蒋川

JavaScript react.js 开源 UI 组件库

6月月更“粽”头戏,大家一起来参与吧!

InfoQ写作社区官方

热门活动 6月月更

十一、云原生网络微隔离

穿过生命散发芬芳

5月月更 微隔离

深入 HTTP/3(2)|不那么 Boring 的 SSL

SOFAStack

互联网 TLS HTTP3.0 QUIC协议 HTTP API

Linux 使用 cp 命令强制覆盖功能

AlwaysBeta

Linux 运维

是开自助洗车店还是传统洗车店好?

共享电单车厂家

自助洗车加盟 开自助洗车店 传统洗车店

百度智能小程序巡检调度方案演进之路

百度Geek说

为什么穷人越穷,富人越富?

大数据梦想家

程序人生

大数据学习必备 | 推荐几个牛X 的 github 项目,助你事半功倍

大数据梦想家

大数据 学习资料 Github'

云原生时代,热门监控工具对比与使用场景分析

云智慧AIOps社区

云原生 监控 Grafana Prometheus 监控宝

聚焦无障碍阅读,福昕捐出2000套福昕高级PDF编辑器

联营汇聚

自助手动洗车设备洗车怎么样?

共享电单车厂家

自助洗车加盟 自助洗车机洗车 自助手动洗车设备

TiDB 查询优化及调优系列(四)查询执行计划的调整及优化原理

PingCAP

平衡人工智能的性能要求,实现可信AI在银行业务场景的高质量应用

易观分析

人工智能

PingCAP Clinic 服务:贯穿云上云下的 TiDB 集群诊断服务

PingCAP

数据行业中的建模是什么?

清林情报分析师

数据分析 行业分析 数据建模 业务思维 模型思维

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