NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

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

关注

评论

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

Arbitrum 为什么能领跑以太坊 Layer 2?

Footprint Analytics

blockchain Layer 2

解析 WebSocket 与 HTTP 协议的关键区别

Apifox

编程 程序员 网络协议 HTTP websocket

招聘严峻期我最终拿到5个Offer的一些经验分享(附面试题)

测试人

面试 软件测试

殊荣双至,天翼云边缘计算再获两项大奖!

天翼云开发者社区

云计算 边缘计算 云服务 边缘安全

tiup与prometheus迁移

TiDB 社区干货传送门

迁移 管理与运维

cad设计绘图Autodesk AutoCAD 2025完整版中文破解工具

Rose

AutoCAD 2025 CAD2025

Windows自定义后台进程并设置为开机启动

GousterCloud

windows 自定义 后台进程 开机启动

我和 TiDB 的故事:十年理财之路之 TiDB 如何让我收益达到30万的

TiDB 社区干货传送门

新版本/特性解读

云服务器几核几G配置应该怎么选择?

Finovy Cloud

服务器 云服务器

就业寒冬,我是如何拿到5个offer的(附面试题)

霍格沃兹测试开发学社

TiDB 7.5.1 资源管控测试

TiDB 社区干货传送门

性能测评 7.x 实践

标准库unsafe:带你突破golang中的类型限制

华为云开发者联盟

Go golang 开发 华为云 华为云开发者联盟

京东为openKylin新增SBOM利器,保障软件供应链安全和可追溯性!

京东科技开发者

用百度和神策做埋点为何pv差异很大?

ClkLog

数据分析 开源软件 用户画像 埋点分析系统

阿里云实时计算Flink的产品化思考与实践【下】

Apache Flink

探秘Kubernetes:在本地环境中玩转容器技术

SEAL安全

Kubernetes 容器 云原生 本地环境

【重磅干货】大模型时代,开发者云上成长指南

华为云开发者联盟

华为云 华为云GaussDB 华为云开发者联盟 华为云CodeArts 华为云盘古大模型

使用云压测回放 GoReplay 录制的请求

腾讯云可观测平台

GOREPLAY

玩转云端|天翼云边缘安全加速平台AccessOne实用窍门之上传下载极速推进,纵享丝滑体验!

天翼云开发者社区

云计算 边缘计算 云服务 边缘安全

【4月20日 成都见】MySQL vs TiDB,看看如何利用分布式架构实现更简单,更可靠的应用实践!

TiDB 社区干货传送门

社区活动

移动端提高pdf预览清晰度

京东科技开发者

万界星空科技漆包线工厂生产管理软件

万界星空科技

mes 万界星空科技 漆包线mes 漆包线

TiDB 三中心"脑裂"场景探讨

TiDB 社区干货传送门

从银行资产规模看TiDB上线杭州银行核心到底意味着什么?

TiDB 社区干货传送门

数据库前沿趋势

吴晓波频道:基于数据飞轮更懂会员需求 提升业务价值

Geek_2d6073

通过TiOperator恢复共享存储备份数据

TiDB 社区干货传送门

迁移 集群管理 管理与运维 安装 & 部署 备份 & 恢复

快讯!TiDB v8 发版!超硬核 v8 引擎!

TiDB 社区干货传送门

【论文速读】| 通过间接提示注入危害现实世界中的LLM集成应用

云起无垠

一文读懂MES和ERP的区别

万界星空科技

制造业 ERP mes 万界星空科技 生产管理软件

万界星空科技WMS仓储管理包含哪些具体内容?

万界星空科技

wms 万界星空科技 仓库管理系统

IPQ6018, IPQ6010, IPQ6000-Exploring the high-performance WiFi chip series

wifi6-yiyi

wifi6 IPQ6010

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