「お金で解決」が全てではない!大規模WebアプリのCI高速化 by すてにゃん

PHPerKaigi 2026
レギュラートーク(20分)

「お金で解決」が全てではない!大規模WebアプリのCI高速化

stefafafan すてにゃん stefafafan
7

20000以上のテストケース数を誇るWebアプリについて、2025年5月時点で9並列で約11分かかっていたCIを最終的には5分で終わるように改善しました。また、高速化を終えた後、コスト最適化という面での改善も実施しました。その過程で苦労したことや乗り越えたことなどを事細かに紹介します。

アピールポイント

  • CI高速化において、ただお金で殴れば早くなる (例えば並列数を増やすなど) ではなく、コスト最適化も両立させることができたという話をします。

話す予定のトピック

  • テスト高速化で実施したこと
    • ボトルネックの計測 (Workflowの時間を計測、プロファイラを利用した分析)
    • 並列実行の最適化 (ジョブ・プロセス毎のテスト時間均一化含む)
    • テストデータの改善 (Factoryの見直しや不要なデータ作成の削減)
    • MySQLの最適化 (tmpfs、my.cnf最適化、ダンプのキャッシュ)
    • Flakyテストへの愚直な対応
  • コスト削減に向けて実施したこと
    • サードパーティマネージドランナーの調査
    • 物理マシンを購入し、セルフホステッドランナーとして活用
    • セルフホステッドランナーが落ちた際のフォールバック方法の検討
    • ubuntu-latestをubuntu-slimやself-hostedに置き換え
    • GitHub Actionsの課金体系を理解し、1秒で終わるジョブも1分として切り上げられるため、Jobの見直し
  • 「委員会」を通じた改善