写点什么

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

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

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

关注

评论

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

Integer.valueOf(String) 方法之惑

Steven

小令观点 | 人脸识别遇到了什么关键性难题?

令牌云数字身份

人脸识别 难题攻克

【DBA100人】白鳝:一直往上走,从程序员到数据库专家

OceanBase 数据库

数据库 oceanbase

SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 深层网络连体视觉跟踪的演变

Geek_7ubdnf

神经网络

小令观点 | 数字世界里,拿什么来保护你的身份安全?

令牌云数字身份

身份安全 人脸识别 安全技术

又一创新!阿里云 Serverless 调度论文被云计算顶会 ACM SoCC 收录

阿里巴巴中间件

阿里云 Serverless 云原生

portraiture2024最新版磨皮插件下载安装教程

茶色酒

Portraiture2023 Portraiture

国内外开源数据可视化工具对比:DataEase相较于MetaBase有何优势

搞大屏的小北

DataEase Metabase 数据可视化工具对比 对比

软件测试/测试开发丨Google 测试总监聊如何经营成功的测试职业生涯

测试人

软件测试 自动化测试 测试开发 职业生涯

软件开发入门教程网之Git 分支管理

雪奈椰子

git git pull cannot lock ref git 学习

作业帮:探索多云架构下的数据库集群解决方案

OceanBase 数据库

数据库 oceanbase

SA-Siam:用于实时目标跟踪的孪生网络A Twofold Siamese Network for Real-Time Object Tracking

Geek_7ubdnf

神经网络

前端面授培训课程哪里好呢

小谷哥

DataEase 数据源插件开发——如何替换 STGroupFile 模板文件

搞大屏的小北

数据可视化工具 DataEase STGroupFile 模版替换 数据源插件

开源数据可视化/自服务BI工具哪家强?

搞大屏的小北

数据可视化工具 DataEase 行转列

SiamFC:用于目标跟踪的全卷积孪生网络 fully-convolutional siamese networks for object tracking

Geek_7ubdnf

图像处理

CLIPPO:纯图像的CLIP,参数减半且更强大!

Zilliz

机器学习

Kubernetes HPA 的三个误区与避坑指南

阿里巴巴中间件

阿里云 Kubernetes 云原生

中华财险进击数字化

OceanBase 数据库

数据库 oceanbase

数据分析原来还可以这么搞?

搞大屏的小北

数据分析 知乎 数据分析工具

如何用 Excel 做数据分析,提升你的工作效率?

搞大屏的小北

提升效率 Excel 数据可视化 DataEase

带你来吃瓜!Andy Pavlo教授带您一文回顾数据库的2022年

StoneDB

MySQL 数据库 HTAP StoneDB 企业号 1 月 PK 榜

目标跟踪相关知识总结

Geek_7ubdnf

图像处理

自编码器 AE(AutoEncoder)程序

Geek_7ubdnf

自编码器

SiamRPN:High Performance Visual Tracking with Siamese Region Proposal Network 孪生网络

Geek_7ubdnf

神经网络

堆叠降噪自动编码器 Stacked Denoising Auto Encoder(SDAE)

Geek_7ubdnf

图像处理

转租、重组、裁员,Salesforce给中国学徒带来了哪些启示?

ToB行业头条

IoT设备接入物联网平台华北2(北京) 节点开发实战——实践类

阿里云AIoT

小程序 监控 物联网 消息中间件 弹性计算

DataEase数据集定时同步任务报错解决

搞大屏的小北

异常 报错 DataEase 数据集定时同步任务

培训学习大数据开发技术怎么样

小谷哥

DataEase 在 Mac 系统下的 jar 包部署

搞大屏的小北

DataEase Mac 系统 jar 包部署

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