Technical teardown of the Rust CLI that speeds up our tests by 6x - Rust CLIでテストを6倍速くした仕組みを徹底解剖

CI時間を劇的短縮する実戦的テクニック:Offloadが“テストを6倍速く”した内部アーキテクチャ

要約

Offloadはテストの発見をローカルで行い、準備済みのクラウド「サンドボックス」を大量に並列実行してCPUボトルネックを解消するRust製オーケストレータ。キャッシュ化されたイメージ・バッチ実行・並列リトライでスループットを大幅に改善する。

この記事を読むべき理由

日本でもモノリポ/大規模CIで「書くよりテストが遅い」課題が増加中。Offloadは並列実行とイメージ差分配布で回帰確認やE2Eの待ち時間を短縮でき、開発ループの高速化に直結する実運用ヒントが得られる。

詳細解説

参考となる最小例(Rustのトレイト概念):

pub trait TestFramework {
    async fn discover(&self, paths: &[PathBuf], filters: &str, group: &str)
        -> FrameworkResult<Vec<TestRecord>>;
    fn produce_test_execution_command(&self, tests: &[TestInstance], result_path: &str, fail_fast: bool) -> Command;
}

準備差分を使う例(概念的なbash):

BASE_COMMIT=$(cat .offload-base-commit)
mkdir -p /tmp/offload-upload
./scripts/generate_patch_for_offload.sh $BASE_COMMIT > /tmp/offload-upload/patch
offload run --copy-dir="/tmp/offload-upload:/offload-upload" {args}

実践ポイント

興味があるチームは、既存CIでのボトルネック計測→Offloadでのプロトタイプ(数十〜百並列)を試してみることを推奨。