从25分钟到7分钟,我们用了这些方法提升Rails CI的效率

2020 年 6 月 18 日

从25分钟到7分钟,我们用了这些方法提升Rails CI的效率

最近,我们在 Gusto 创下了一个新纪录:6 分 29 秒。

这是我们为 Gusto 最大的一个应用程序,一个 Rails 单体程序运行测试套件所花费的时间。6 分 29 秒是公司的持续集成(CI)流水线启用以来的最快纪录。上一次 CI 套件跑出这样的成绩,公司的规模还很小,而现在我们共有全球数百名工程师在使用这个 Rails 单体应用,为全美 1% 的小型企业提供支持。

对 Gusto 而言,高速 CI 流水线并不只是做做样子,我们把它视为一种竞争优势,代码部署越快,那么客户的业务开展也会越快。随着 CI 速度的提升,工程师的生产率也在提高,CI 时间每缩短一分钟,Gusto 每位工程师每周可增加 2%的拉取请求。

我们的目标很简单,希望让测试套件的速度成为一个参数的函数,这个参数就是:我们愿意花多少钱?将基础架构简化到这个层面后,就更容易做成本效益分析,例如如果想要将构建速度从 7 分钟提升到 5 分钟,那么需要花费 1 美元。

这篇文章介绍了我们是怎样加快测试套件速度的,其中涉及一个 Rails 单体程序和一个主要用 React 编写的 JavaScript 单页应用程序(SPA),这些经验适用于所有速度较慢的测试套件。

我的同事 Kent 说,构建软件有 3 个步骤:

让它跑起来(Make it work)

原文链接:【 https://www.infoq.cn/article/ZmFEUXHa7V6bRIAdYL0k 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 6 月 18 日 09:14 2062

评论

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

【第十周作业】

Aldaron

CentOS7 下Docker安装、启动

xcbeyond

Docker 软件安装

5大法则助你 成为更出色的开发者

三钻

编程 敏捷开发 程序员成长 经验分享 学习法

Git分支管理策略及简单操作

王坤祥

git git flow

VSCode配置同步|VSCode高级玩家宝典之第三篇

三钻

效率工具 程序员人生 vscode 开发工具

职业发展的迷茫与困境:你真的了解晋升机制吗?

伴鱼技术团队

职业规划 技术管理 技术交流 职业成长 技术人生

你真的懂怎么写`服务层`吗?

三钻

php 后端 服务 程序员成长 架构思维

写给想学和在学编程的你们,学习编程的7个好处

三钻

软件开发 编程之路 程序员成长 经验分享 学习法

【第十周】学习笔记

Aldaron

国内外低/零代码的有哪些代表?

代码制造者

编程语言 低代码 零代码 信息化 开发应用

你还应该知道的哈希冲突解决策略

vivo互联网技术

哈希冲突

图解JavaScript——代码实现(六种异步方案,重点是Promise、Async、发布/订阅原理实现,真香)

执鸢者

原理 异步 Promise Async

docker-compose构建springcloud微服务项目

xcbeyond

Java Docker Docker-compose springboot

SpringCloud服务注册与发现(Eureka)

xcbeyond

Java SpringCloud Eureka 服务注册与发现

一文道尽“表驱动法”

架构精进之路

编码 表驱动法

前端必看的8个HTML+CSS技巧

三钻

JavaScript html html5 css3 前端

用“易于改编”原则,提升编程水平,写出更好的代码

三钻

前端 后端 程序员成长 经验分享 编程风格

国家央行数字货币的优势与挑战

CECBC区块链专委会

数字货币 央行 商业银行

更优雅的编写JavaScript

三钻

JavaScript 前端 程序员素养 经验分享 ES6

DSN 主流项目调研 0——IPFS&&Filecoin白皮书总结

AIbot

区块链 分布式存储 分布式文件存储 IPFS Filecoin

DSN主流项目调研1——Storj和Arweave的简介

AIbot

分布式存储 区块链+ 分布式文件存储 Storj Arweave

VSCode常用快捷键大全|VSCode高级玩家宝典之第一篇

三钻

效率工具 程序员人生 vscode 快捷键 学习方式

分布式定时任务调度框架实践

vivo互联网技术

分布式 大数据任务调度 框架

LeaRun快速开发平台,快速开发.net/java项目

力软.net/java开发平台

带你体验Vue2和Vue3开发组件有什么区别

三钻

JavaScript Vue 前端 Vue3 React

解读CDN的应用场景与产品价值

巨侠说

CDN

6个高效学习编程的方法

三钻

程序人生 前端 后端 编程学习 学习法

区块链技术在银行业的运用

CECBC区块链专委会

区块链 信息安全 金融

IDEA直连服务器,进行项目Docker部署,实现一键部署、启动

xcbeyond

Java Docker idea插件

VSCode插件大全|VSCode高级玩家之第二篇

三钻

程序员人生 vscode 编辑器 插件 技巧

华章25周年活动——《迁移学习》限量5折!

华章IT

从25分钟到7分钟,我们用了这些方法提升Rails CI的效率-InfoQ