GitHub Actionsのサードパーティーマネージドランナーの紹介

この記事は はてなエンジニア Advent Calendar 2023 の 2024年1月4日 の記事です。


GitHub Actionsの実行環境であるランナーには、GitHubが提供するGitHub ホステッド ランナーと、自分でランナーを用意・管理するセルフホステッド ランナーの大きく二種類があります。

最近はGitHub ホステッド ランナーにもラージランナーが用意されるようになり、ある程度ランナーのスペックを選べるようにもなりましたが、他のCIサービスと比べてもスペックの割にコストが高めである感じは否めません。一方でセルフホステッド ランナーにはスペックを自分で調整できる自由度がありつつも、管理する手間とコストが掛かってきます。

こうした隙間を突くように、サードパーティーによるマネージドなセルフホステッド ランナーを提供するサービスが増えつつあります。基本的には runs-on: に各サービスが提供するランナーの名前を指定するだけで、その名前に応じた環境(CPUアーキテクチャーやスペック、OS)を選べる、という形になっています。

自分が見かけたり調べたり実際に使ってみたものをいくつか紹介してみようと思います。

BuildJet

はてなでも昨年から一部のチームで使用していて、CI/CDの速度向上の恩恵を受けています。管理画面はあまりいけていなくて、vCPU数上限がある割にはどれだけ消費されているかのリアルタイムの数値やグラフでの確認ができなかったりするので、キャパシティプランニングが難しいですね(上限に引っ掛かるとジョブの起動待ち状態になるので、悲鳴ベースで対処していくしかない)。

BuildJetのPricing

Namespace

  • 単なるGitHub Actionsのマネージドランナーというだけではなくて、Dockerイメージのリモートビルダーや、開発環境としてのKubernetesクラスターの作成もできたりする
    • Webアプリケーションのプレビュー環境機能なども
  • キャッシュのアップロード・ダウンロードではなく、キャッシュ用のボリュームをアタッチすることでの高速化が最近サポートされたようでとても良さそう
  • Pricingはプラン毎にシート数やコミコミのリソースが決まっている(超過分は別途)、という形なので若干複雑

NamespaceのPricing

GitRunners

  • 雰囲気としてはBuildJetに近そう
  • コスト的にはGitHub ホステッド ランナーとBuildJetの中間
    • 並列数の制限はなさそうなので、BuildJetのvCPU上限の拡張に課金するよりもいいケースもありそう
  • 1vCPUを選べるのが特徴的(GitHub ホステッド ランナーやBuildJetは最低2vCPU)
  • 個人で少し触ってみた程度だが、管理画面はBuildJetよりもいけていそう
  • Upcoming featuresのアピールが気になる
    • Persistent storage for all ephemeral runners and flamegraph visualizations to analize workflows runtimes.

    • 前者はNamespaceのCache Volumesに相当するものっぽい
    • 後者はボトルネックを見つけるのに便利そうで、やはり管理系の機能には力を入れていそう

GitRunnersのPricing

WarpBuild

  • Argonautというクラウドサービスのデプロイツールからピボットしたサービスらしい
  • こちらもBuildJetと近しい雰囲気
    • CPUパフォーマンスがいい
    • x86_64もARMもサポート
  • 並列数の制限もなし!
  • SSHデバッグ可能というのは面白そう・便利そう
    • この時の課金がどうなるのかは気になる
  • PricingもGitHub ホステッド ランナーの半額なので、BuildJetと同様
    • vCPUの選択肢が2X、4X、16Xとなっていて、8Xがないのが悩ましいかもしれない
  • Coming soonにも期待したい
    1. Faster distributed caching
    2. Windows and MacOS runners
    3. Custom runner images ... and more!

WarpBuildのPricing

Cirrus Runners

まとめ

ということで、自分の知る範囲でざっくりとGitHub Actionsのマネージドランナーについて紹介してみました。改めて調べてみると、新サービスが増えたり、各サービスで機能追加の予定も出ていたりして楽しみが増えました。逆にBuildJetは最近あまりアナウンスやブログの投稿がなかったりするのは気がかりですね。他にも同種のサービスをご存知の方がいたらぜひ教えてください!