2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

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

关注

评论

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

C++ Workflow异步调度框架 - 架构设计篇

1412

c++ 开源 workflow 异步调度 网络框架

〖Docker指南⑦〗docker-compose快速入门

步尔斯特

Docker

〖Docker指南⑨〗本地一键部署微服务项目到阿里云服务器

步尔斯特

Docker

BI 如何让SaaS产品具有 “安全感”和“敏锐感”(上)

葡萄城技术团队

SaaS BI 数据可视化

融云 IMKit Web 端上线,带你感受开发效率的参差

融云 RongCloud

去中心化NFT交易平台开发

开发微hkkf5566

〖Docker指南⑧〗Docker私有镜像仓库|阿里云|Registry|Harbor

步尔斯特

Docker

数据湖基本架构

五分钟学大数据

数据湖 6月月更

NFT链游系统开发|DeFi+NFT技术搭建

薇電13242772558

NFT 链游

一对一直播源码部署,是系统上线运行的开始

开源直播系统源码

软件开发 一对一直播 一对一直播源码 直播系统源码

〖Docker指南②〗Docker常用命令汇总

步尔斯特

Docker

〖Docker指南⑩〗轻量级监控及管理工具Portainer

步尔斯特

Docker

波场TRX链DAPP智能合约系统开发技术搭建

开发微hkkf5566

InfoQ 极客传媒 15 周年庆征文|实战 MySQL 高可用架构

悟空聊架构

架构 运维 悟空聊架构 热门活动 InfoQ极客传媒15周年庆

印尼Widya Robotics携手华为云,让建筑工地安全看得见

华为云开发者联盟

人工智能 安全 华为云 modelarts 机器视觉

〖Docker指南⑤〗学习Dockerfile,看这一篇就够了

步尔斯特

Docker

哈尔滨等保测评公司有哪几家?叫什么名字?

行云管家

网络安全 等保 等保测评 等级测评 哈尔滨

C++ Workflow异步调度框架 - 基本介绍篇

1412

c++ 开源 workflow 异步调度 网络框架

企业为什么要部署专属的IM即时通讯软件?

BeeWorks

〖Docker指南⑥〗快速入门Docker的五种网络模式

步尔斯特

Docker

〖Docker指南④〗docker容器卷

步尔斯特

Docker

Substrate技术及生态5月大事记 | Square One计划启动,波卡上线XCM!

One Block Community

区块链 技术 波卡生态

〖Docker指南③〗Docker镜像的深度解析

步尔斯特

集成底座流程测试总结

agileai

测试流程 集成底座 企业服务总线 主数据平台 统一身份管理平台

什么是基于安全标记的访问控制机制?有什么特性?

行云管家

网络安全 等级保护 安全标志 访问控制机制

物联网低代码平台权限管理,保障平台安全!

AIRIOT

物联网 低代码开发 低代码开发平台 快速开发平台

InfoQ 极客传媒 15 周年庆征文|PassJava网站生产级事故复盘

悟空聊架构

运维 前端 passjava 悟空聊架构 InfoQ极客传媒15周年庆

去中心化DEFI质押流动性挖矿项目开发案例(逻辑分析)

开发微hkkf5566

【高阶知识】用户态协议栈之Epoll实现原理

C++后台开发

后端开发 epoll Linux服务器开发 C++后台开发 户态协议栈

告警消息何去何从?在飞书中飞起来

Rancher

Kubernetes k8s rancher

从云服务器 SSRF 漏洞到接管你的阿里云控制台

火线安全

云安全

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