我们将持续集成移回开发人员机器

主要观点:通过运行 Rubocop 风格规则、Brakeman 安全扫描和模型 - 控制器 - 系统测试,基于远程 BuildKite 的持续集成设置需约 5 分 30 秒来验证代码变更可用于 HEY,而基于 Intel 14900K 的 Linux 盒子能在不到一半时间内完成,M3 Max 也不会慢太多,所以 37signals 打算将持续集成带回开发者机器;多核开发者机器在过去五到七年有了很大飞跃,以前在本地机器上在合理时间内运行所有检查和验证是不可想象的,现在 14900K 有 20 多个核心,M3 Max 有 16 个,M2 MacBook 也有 8 个,都能进行大量并行工作;HEY 是一个相当大的代码库,约 55000 行 Ruby 代码,由约 5000 个测试用例和 300 多个系统测试验证,几乎所有测试都通过全栈并访问数据库,不是模拟的;现代开发者 CPU 性能提升最令人满意的部分是简化堆栈的可能性,安装、操作和维护远程 CI 设置很复杂,要么自己处理硬件复杂性,要么为基于云的设置支付高额费用,简化是一大进步;但简化的未来不是平均分配的,像 Shopify 或 GitHub 短期内无法在本地对其数百万行代码运行所有测试,但大多数 web 应用更接近 HEY,小团队应去除尽可能多的移动部件;到达另一边后要继续烧毁复杂性的桥梁,迫不及待要烧毁 37signals 的所有远程持续集成桥梁,进步是一场篝火。
关键信息:不同硬件在验证代码变更上的时间对比,多核处理器的性能提升,HEY 的代码规模及测试情况,简化堆栈的好处及局限性。
重要细节:提到 BuildKite 基于的持续集成设置时间,各种处理器的核心数,HEY 的 Ruby 代码行数、测试用例数等。

阅读 10
0 条评论