写点什么

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

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

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

关注

评论

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

基于 Smart Meter Web,深入实践 KWDB 跨模查询

KaiwuDB

豫见 AI,聚力前行 | 北大明天正式成为和鲸科技河南省总代理

ModelWhale

AI 人工智能+ 科研智能一体机

“凭什么说你比我先?”——没有上帝时钟,如何判断“谁先谁后”?

poemyang

分布式 分布式系统

平凯数据库(TiDB 企业版)敏捷模式数据库试用

TiDB 社区干货传送门

TEM 试用

百度学术AI重构:上线AI学术搜索、AI论文图谱、AI阅读等数十项能力

极客天地

大数据-95 Spark 集群 SparkSQL Action与Transformation操作 详细解释与测试案例

武子康

Java 大数据 flink spark 分布式

【TiDB 高可用实践】基于Haproxy+keepalived实现负载均衡

TiDB 社区干货传送门

TiDB第四届征文-运维开发之旅 TiDB第四届征文-业务场景实战

BeeWorks Meet内网视频会议软件,支持纯内网使用

BeeWorks

即时通讯 IM 私有化部署

灵码产品演示:Maven 示例工程生成

阿里云云效

Java 阿里云 云原生

付费广告 VS 达人营销:哪个更适合出海品牌?

Wolink

跨境电商 出海 海外营销推广 沃链Wolink 达人营销

社区活动 | TiDB 社区第四届专栏征文大赛联合墨天轮开启,TiDB 业务场景实战、运维开发攻略两大赛道,BOSE 降噪耳机、大疆手持云台、投影仪、运动手环、礼品卡等重磅礼品等你来拿!

TiDB 社区干货传送门

社区活动

TEM on 腾讯云试用小结

TiDB 社区干货传送门

管理与运维 TEM 试用

TiDB集群运维管控试用

TiDB 社区干货传送门

TEM 试用

离线部署tidb-8.5.3

TiDB 社区干货传送门

菲律宾最大广播电视媒体集团ABS-CBN与微帧正式达成合作,为亚太地区观众提供极致视觉服务

微帧Visionular

1688商品评论API调用全流程:从注册到Python实现

tbapi

1688商品评论接口 1688商品评论API 1688API 1688评论API 1688商品评论采集

如何从CST软件中导出多层dxf文件

思茂信息

仿真 cst 电磁仿真 CST Studio Suite

域名SSL证书和IP SSL证书有什么区别?选择哪个好?

防火墙后吃泡面

哈尔滨三级等保的重要价值:筑牢安全防线与助力发展

等保测评

NocoBase 本周更新汇总:优化及缺陷修复

NocoBase

开源 低代码 无代码 版本更新

两种 TiDB 备份方案任你选择:NFS or S3(内含操作实践/备份/恢复)

TiDB 社区干货传送门

TiDB第四届征文-运维开发之旅 TiDB第四届征文-业务场景实战

灵码产品演示:Maven 示例工程生成

阿里巴巴云原生

阿里云 通义灵码

哈尔滨三级等保办理流程详解:规范步骤与操作要点

等保测评

Gateway 网关坑我! 被这个404 问题折腾了一年?

程序员小富

Java 网关

DeepSeek vs GLM激辩:华为开发者空间部署BISHENG平台轻松构建终极AI辩论赛

华为云开发者联盟

毕昇 企业 AI 应用 华为开发者空间

哈尔滨三级等保实施核心要点:强化安全防护与管理体系

等保测评

玩转n8n测试自动化:核心节点详解与测试实战指南

测吧(北京)科技有限公司

基于海外舆情监测数据反向指导的本地化营销策略

沃观Wovision

跨境电商 出海企业 沃观Wovision 舆情监测系统 海外舆情监测

AI 玩转网页自动化无压力:基于函数计算 FC 构建 Browser Tool Sandbox

阿里巴巴云原生

阿里云 Serverless 云原生

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