こんにちは、ほとけです。
ベースマキナは、GitHub ActionsのランナーをBlacksmithに置き換えました。結論から言うと、Blacksmithは心の底からお勧めできるサービスです。ほとんどノーコストでCIの速度向上・コストカットが実現できました。
Blacksmithとは
Blacksmithは「GitHub Actionsの代替ランナーを提供する」というかなりピンポイントな課題を解決するサービスです。セールスポイントはその価格と実行速度です。GitHubの公式と同一のコア・メモリー数のランナーが半額、しかもハードウェア性能は公称で2倍、キャッシュのダウンロード速度は4倍です。つまり、同レベルのランナーに置き換えるだけでコストカット・速度向上が見込めるわけです。
そんな夢のような話があるのかと思うかもしれませんが、真実です。そして、畳みかけるようですが、驚くべきことに公式ランナーからの移行のステップはほぼこれだけです。
- Blacksmithにサインアップ
- GitHub ActionsのWorkflowファイルの
runs-on
をBlacksmithのものに変更(BlacksmithのWebコンソールに移行ツールも用意されています)
論より証拠ということで、この後は実際の統計情報をお見せします。
実行速度の比較
実際にGitHubの公式ランナーとBlacksmithのランナーでの実行速度を比較してみます。
これはベースマキナフロントエンドのCIの統計情報を抜粋してきたものです1。
ジョブ | ランナー | 平均実行時間 | 平均キュー時間 | 失敗率2 |
---|---|---|---|---|
unit test | GitHub Actions 2vcpu | 3m 20s | 3s | 6% |
unit test | Blacksmith 4vcpu | 1m 1s | 14s | 3% |
lint | GitHub Actions 2vcpu | 1m 38s | 3s | 8% |
lint | Blacksmith 2vcpu | 1m 7s | 14s | 7% |
もともとはどのジョブもGitHub Actionsデフォルトの2vcpuのランナーを使っていましたが、Blacksmithへの移行に際して、律速となるunit testのジョブを4vcpuのランナーに変更しました。同一スペックのランナーで半額になるのだから、倍のスペックのランナーにしても単価は変わらないのです。
結果としては、unit testはランナーの価格は据え置きで2倍以上速くなっているので、トータルのコストは半分以下になっています。また、同スペックのランナーを使っているlintではunit testほどではないにしても高速化しており、かつランナーの価格が半分なので、こちらもトータルのコストは半分以下となります。
両者ともキュー時間は増えていますが、トータルで言えばほぼ無視できる数字でしょう。
ここまで本当に都合のいい話しかしていないのですが、公平を期して言えば、バックエンドでは1点トラブルに遭遇しました。結合テストがflakyになり、結構な頻度で無変更なコードのテストが失敗するようになってしまったのです。ただし、確証は無いものの、今のところは「我々のテストがもともと不安定であり、高速化したことでそれがより顕著になったのではないか」という仮説を持っています。テスト実行の並列数を調整したところひとまずは落ち着きを見せました。そのせいで本来期待できるレベルの速度向上を享受できていないためそこは今後の課題になりますが、もちろんコストカットにはなっております。
まとめ
このように、GitHub ActionsのランナーをBlacksmithに置き換えるだけで爆速爆安のCI環境が手に入りました。
個人的には、Y Combinatorの投資先がAI系サービスで占められているようなAI全盛時代に、ピンポイントだが技術者が日々直面している課題を、まっすぐな技術的アプローチで解決するこうしたサービスは最高にかっこいいと思っており、正直に申し上げますとブチ上がりました。
皆様もぜひぜひお試しください。
宣伝
ベースマキナは、2025年10月18日に開催されるHono Conference 2025にゴールドスポンサーとして協賛しており、当日はブースも出展しています。社員一同、皆様とお会いできることを楽しみにしております。協賛の背景については弊社代表timakinがエントリーを書いておりますので、こちらも合わせお読みいただけると幸いです。
ベースマキナはHono Conference 2025にゴールドスポンサーとして協賛・出展します! – ベースマキナ エンジニアブログ