写点什么

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

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

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

关注

评论

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

低代码实现探索(二十)功能的路径

零道云-混合式低代码平台

hw9-毕业项目设计

WWH

架构实战营

模块五

Only

架构实战营 「架构实战营」

Three.js 入门指南

devpoint

WebGL 3D渲染 three.js 1月月更

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

loT

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

loT

【架构实战营】模块九作业

liu🍊

毕业设计

Geek_cb2b43

低代码实现探索(二十一)微流动作返回值类型

零道云-混合式低代码平台

Go 语言快速入门指南:Go 指针

宇宙之一粟

指针 Go 语言 1月月更

架构训练营 毕业设计

吴霏

架构训练营 「架构实战营」

手把手教程|通过部署 Apache Superset 实现 Amazon S3 的数据可视化

亚马逊云科技 (Amazon Web Services)

analytics

微服务通信设计模式

俞凡

架构 微服务

一条 Git 命令减少了一般存储空间,我的服务器在偷着笑

沉默王二

云原生训练营 毕业总结

张大彪

云原生

为什么您的企业需要移动CRM系统

低代码小观

移动 CRM CRM系统 客户关系管理系统 企业管理工具

特聘专家朱嘉明:2022,数字经济迈入历史新阶段

CECBC

ReactNative进阶(十九):React Native 按钮 Touchable 系列组件使用详解

No Silver Bullet

​React Native 1月月更 Touchable

16 Prometheus之Exporter详解

穿过生命散发芬芳

Prometheus 1月月更

设计电商秒杀系统

Mars

架构实战营 「架构实战营」

架构实战营-毕业设计

瓜子葫芦侠

「架构实战营」

一文带你快速了解 Java 线上问题快速诊断神器 Arthas

zuozewei

性能测试 Java性能 性能分析 Arthas 1月月更

5Why根因分析法:通过好问题引出一个好答案

石云升

1月月更 分析方法

zip文件自动打包

你?

当使用Vue2+Babel时,如何实现组件重新渲染

吴脑的键客

Vue babel

架构实战营-毕业设计

21°Char

基于Mysql,ssm食材采购系统

叫练

ssm 餐厅采购

Hoo虎符研究院 | 投资前沿——过去一周顶级投资机构动向

区块链前沿News

虎符 Hoo 虎符交易所 区块链投资

架构实战营模块九作业

孙志强

架构实战营

架构实战营 第 4 期 模块五作业

架构实战营 模块五 「架构实战营」

电商秒杀系统设计

天天向上

架构实战营

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