Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rai...

2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rails 2025

https://kaigionrails.org/2025/talks/falcon8823/#day1

CI/CD環境が高速であることは、開発物の信頼性を維持しながら高速に成果をユーザに届けることを可能にします。CI/CD環境が遅いと、失敗に気づくのも遅くなり修正サイクルはどんどん重くなっていきます。特に我々のプロダクトを提供しているライブイベント業界においては、イベント当日に万が一問題があれば、本番環境への即時修正対応が求められるため、CI/CDの速度は開発体験だけではなく、ビジネス価値にも直結しています。
本セッションでは、Railsアプリケーションのrspecを2分台で1500examples以上を完了させるために、並列実行による工夫を中心に、CI/CD実行環境の最適化をどのように試行錯誤したかを紹介します。

Avatar for Hayato OKUMOTO

Hayato OKUMOTO

September 27, 2025
Tweet

More Decks by Hayato OKUMOTO

Other Decks in Programming

Transcript

  1. 2025年9月26日 2 分 台 で 1 5 0 0 e

    x a m p l e s 完 走 ! 爆 速 C I を 支 え る 環 境 構 築 術 株式会社TwoGate 取締役CTO 奥本 隼
  2. TwoGateのCI環境 GitLab CE + GitLab Runner DockerコンテナベースのCI環境 EC2にてAuto Scaling +

    Spot Instanceで運用 iOSアプリビルド用にMac miniをオンプレでも管理
  3. parallel_tests gem Rubyのテストフレームワークの並列実行をサポートする RSpec / Minitest / Turnip / Cucumberなどに対応

    マルチプロセスでの並列実行をサポート そのまま実行すると…? DatabaseCleanerも同時実行されて、テストできない…
  4. rake parallel:spec w/tmpfs 条件 8コアCPU で実行 + ストレージをtmpfsに 実行環境 EC2

    c7i.2xlarge (8vCPU/16GB) 実行時間 5分 (元:29分38秒) 6倍スピードアップ
  5. 物理マシンにする 👊👊👊 CPU: Ryzen 9 / RAM: 64GB / SSD:

    NVMe 4.5GHz / 32コア 実行時間:32並列 / 1分59秒!! 約30分のCIが2分で完了(15倍)
  6. コストメリット 32core / 64GBのマシンを手に入れるには EC2 c7i.8xlarge: 1,294.27USD/month = 19.5万/月 オンデマンドインスタンス

    物理: 24万円 = 減価償却4年: 5,000円/月  仮にspotインスタンスでも10倍ぐらいの価格差