AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

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

关注

评论

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

“InfoQ 的朋友们-Geek青年说·北京站”即将开讲,快来!

InfoQ写作社区官方

GEEK 话题讨论 InfoQ 的朋友们 热门活动

【音视频专题】音频质量评估方法那些事

Hanson

音视频

两个开源免费的软件Typora和PicGo,成了我写东西的新宠。

彭宏豪95

写作 Typora 图床 5月日更

学习笔记:03 | 判断与循环:给你的程序加上处理逻辑

Nydia

学习

背靠背,脸对脸

zhoo299

随笔杂谈 5月日更

Stacking集成学习算法

容光

综资全生命周期管理助力网络运营更高效

鲸品堂

软件开发生命周期 应用 资源管理

华为云MCP多云跨云的容器治理与实践

华为云原生团队

开源 容器 云原生 集群 多云管理平台

程序员的基础技能

风翱

程序员 5月日更 基础技能

PaaS容器化部署思考

lenka

5月日更

“新内容 新交互”全球视频云创新挑战赛复赛启幕

阿里云CloudImagine

音视频

5分钟速读之Rust权威指南(一)

wzx

rust

成长

ES_her0

5月日更

不服不行!腾讯、阿里Android高级面试真题汇总,成功入职阿里

欢喜学安卓

android 程序员 面试 移动开发

浅谈实时语音质量监控系统

攻城先森

音视频 nlp 实时语音 引航计划

如何让网络音频或本地音频文件发布到频道中

anyRTC开发者

音视频 WebRTC RTC sdk

有道技术沙龙 | JAVA下午茶

有道技术团队

Java

区块链技术如何成为中国数字化转型最新驱动力

CECBC

区块链

网络攻防学习笔记 Day13

穿过生命散发芬芳

5月日更 网络攻防

Crontab 的特殊字符

耳东@Erdong

Linux crontab linux运维 5月日更

Git命令: add、cherry pick

程序员架构进阶

git 自我提升 28天写作 5月日更 工作流程

区块链将开启新一轮颠覆式创新

CECBC

区块链

Dubbo 事件通知

青年IT男

dubbo

职场中低调的老实人,该如何表现自己的亮点

小天同学

成长 职场成长 工作体会 5月日更

灵隐寺也没能拯救的“爱情”

徐说科技

爱情 情感 初恋

bzz币挖矿软件开发|bzz币挖矿系统APP开发

Hive改表结构的两个坑|避坑指南

数据社

大数据 hive 面试 5月日更

《2021中国开源发展蓝皮书》发布——中国开源接近世界先进水平

禅道项目管理

开源 开发 报告

狗尾续貂之Neutron网络部署架构的第N+1种方式

焱融科技

容器 云原生 高性能 部署 网络架构

零基础学习 NLP-DAY5 - 恶补 Python - 基础 2

Qien Z.

Python if 5月日更

太现实了!2021年阿里+腾讯+快手offer都已拿到!值得一看

欢喜学安卓

android 程序员 面试 移动开发

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