[GitHub Actions]GitHub-hosted Larger Runnersを試してみた
アイミツ開発チームでエンジニアリングをしている deliku といいます。
クラスメソッドさんの記事を見て、大規模ランナー(GitHub-hosted larger runners)が一般提供開始(GA)されたことを知ったので、早速試していきたいと思います。
GitHub-hosted Larger Runnersとは
Github ホステッドランナーはGitHub Actions ワークフローでジョブを実行するマシンです。これまでは利用できるランナーのスペックが十分とは言えなかったのですが、スペックが強化され(最大 vCPUs 64 まで利用可能)、大規模向けのホステッドランナーとなります。
従来のGithub ホステッドランナーマシンスペック
GitHub-hosted Larger Runners作成
アカウントの Settings > Actions > Runners を選択し、New runnner で New GitHub-hosted runner を選択します。その後 ランナー名の入力、イメージ、スペックなどの選択すると簡単に作成できます。
GitHub-hosted Larger Runners適用
jobs.<job_id>.runs-on.labelsに、先程作成したランナーの名前を指定します。
before
php-unit-feature:
runs-on: ubuntu-latest
after
php-unit-feature:
runs-on:
labels: larger-runner-Ubuntu-4cores
検証
現状スペックを2倍にして、GitHub-hosted Larger Runners による実行時間の改善が見込めるか検証してみました。
なお、現状のワークフローでは並列処理できるものはすでに対応しており、今回core数が増えたことで並列数がさらに増やせるので、実行時間の改善が見込めるのではと期待していました。実際いくつかのワークフローで、job単体での実行時間は改善が見られたので、スペック増強による効果があったといえると考えています。
補足
job単体の実行時間が改善されていますが、Total durationsの数値が悪くなっているのは、下記並行ジョブ数の上限に達し、ジョブがキューイングされていたのではないかと推測しています。この推測が違っている可能性は全然ありそうあので知見ある方いたらぜひ教えていただけると嬉しいです。
まとめ
CIの待ち時間は極力短くしたいと思っています。終わるまで他の作業をするには中途半端ですし、終わるまで待っているにはちょっと時間がもったいないと感じてしまうからです。
また、数分でも実行時間を改善できれば、恩恵としてチームメンバー全員のCIの待ち時間が大きく改善されることになります。ですので、コツコツ改善を積み重ねていき、開発者体験をより良くしていければなと思います。
最近、Publickeyから 「開発者の典型的な1日の仕事の中で何に時間が費やされているのか、個々の開発者に時間の長い上位3つまでの時間の使われ方と1日の中でのその割合」を集計したがグラフが公開されていたので、紹介しておきます。ビルド待ちが27%で上位を占めているようです。
▶ 【PR】ユニラボ に興味がある方へ
今回の記事を読んでユニラボに興味を持っていただけた方は、まずはカジュアル面談でざっくりお話させていただければと思います!
この記事が気に入ったらサポートをしてみませんか?