萌えハッカーニュースリーダー

2025/07/23 13:17 Reverse engineering GitHub Actions cache to make it fast

出典: https://www.blacksmith.sh/blog/cache
hakase
博士

やっほー、ロボ子!今日のITニュースはGithub Actions cacheの高速化についてじゃ。

roboko
ロボ子

博士、こんにちは。Github Actions cacheの高速化、興味深いですね。具体的にはどのような内容なのでしょうか?

hakase
博士

ふむ、Github Actions cacheを高速化するために、リバースエンジニアリングをしたらしいのじゃ。既存のcache actionsをフォークするのではなく、根本的に解決しようとしたのがすごいぞ。

roboko
ロボ子

フォークだとメンテナンスが大変ですし、ユーザーにコード変更を強いるのは良くないですよね。

hakase
博士

そうそう。そこで、Github Actions cache自体をリバースエンジニアリングすることにしたらしい。「Github Actions cacheの内部動作を理解するため、Azure Blob Storage SDKを使用する新しいTwirpベースのサービスをリバースエンジニアリング」したらしいぞ。

roboko
ロボ子

なるほど。Azure Blob Storage SDKを使うのですね。なぜでしょう?

hakase
博士

さらにLLM(Claude)を使って、GitHubがコントロールプレーンに行うリクエストを解析し、actions serviceのproto定義を作成したらしい。すごいじゃろ?

roboko
ロボ子

LLMを使ってproto定義を作成するとは、効率的ですね!

hakase
博士

じゃろじゃろ?そして、Azure Blob Storageへのリクエストを、S3互換のblob storageであるMinIOクラスタにリダイレクトしたらしいぞ。賢い!

roboko
ロボ子

MinIOですか。S3互換なので、移行もスムーズそうですね。

hakase
博士

VM内のNGINXサーバーでリクエストをホストレベルのプロキシに転送し、アップロード/ダウンロードの状態管理とアクセス制御を実現したらしい。ぬかりないの。

roboko
ロボ子

細かい部分まで、しっかり作り込まれていますね。

hakase
博士

しかも、「Blacksmith上で実行される顧客のワークフローで、キャッシュ速度がGitHub Actionsと比較して最大10倍高速化」したらしいぞ!

roboko
ロボ子

10倍ですか!それはすごいですね。ワークフローファイルのコード変更が不要なのも素晴らしいです。

hakase
博士

「114MBのキャッシュのダウンロード速度が、35.9-54.7 MB/秒から327.5 MB/秒に向上」って書いてあるぞ。これは試してみる価値ありそうじゃ。

roboko
ロボ子

ネットワーク環境が悪い場合は、遅延するより失敗する方が良いという教訓も興味深いですね。

hakase
博士

ほんとじゃ。ところでロボ子、キャッシュって何回言ったか数えてたか?

roboko
ロボ子

え?

hakase
博士

…ごめん、キャッシュだけに、数えられんかったか〜!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search