リモートキャッシュとは?
リモートキャッシュは単一のマシン上ではなく共有ストレージにホストされたビルドキャッシュで、あるrunnerや開発者が生成したキャッシュ出力を別の者がダウンロードして再利用できます。どこかで行われた作業をあらゆる場所での高速化に変えます。Bazel、Turborepo、Gradleといったツールはまさにこの理由でリモートキャッシュをサポートしています。
なぜ重要か
エフェメラルなCI runnerでは、マシンが破棄されるとローカルキャッシュも消えるため、次のjobはゼロから再ビルドします。リモートキャッシュはrunnerより長く存続し、新しいエフェメラルなマシンが以前の作業を再利用できるようにします。マネージドrunnerプラットフォームは、隔離と速度の両方を得るために、エフェメラルなrunnerとリモートキャッシュを組み合わせることがよくあります。
関連する概念
- 安全であるにはcontent-addressedでhermeticなビルドが必要である
- 書き込みが信頼できない場合、cache poisoningがリスクとなる
- 小さなartifactではネットワーク転送コストが節約を相殺しうる
関連ガイド
What Is a Build Cache?A build cache stores intermediate build outputs so unchanged work can be reused across runs instead of recomp…
What Is a Hermetic Build?A hermetic build depends only on explicitly declared, pinned inputs and is isolated from the host, so it prod…
What Is an Ephemeral Runner?An ephemeral runner is a CI worker that runs exactly one job on a fresh machine, then is destroyed, giving ev…