Skip to content
Latchkey

ビルドエージェントとは? jobを実行するマシン

ビルドエージェントは、CIサーバーがjobを配布した後、実際にpipelineのjobを実行するマシン、VM、またはcontainerです。

CIサーバーは何を実行すべきかを決定し、ビルドエージェントは実行を行います。エージェントは、CIシステムに接続し、作業を待ち、jobを受け取り、そのステップを実行し、ログを送り返し、結果を報告するworkerです。「agent」と「runner」という用語は、CIプラットフォーム間でおおむね互換的に使われます。

エージェントが作業を受け取る仕組み

エージェントはCIサーバーに登録して待ち受けます。jobがキューに入り、エージェントのラベルや能力に一致すると、サーバーがそれを割り当てます。エージェントはコードをチェックアウトし、ステップを実行し、artifactをアップロードします。

エージェント vs サーバー

  • サーバー: 作業をスケジュールし、結果を保存し、UIを表示する。
  • エージェント: 実際のjobのステップを実行する。
  • 1つのサーバーが通常、多数のエージェントを調整する。

ホスト型 vs 自己管理型のエージェント

ホスト型エージェントはCIベンダーが提供して保守し、あなたはただ使うだけです。自己管理型エージェントは自分が所有するマシン上で動き、ハードウェアとソフトウェアを制御できる代わりに、それらを保守するコストがかかります。

簡単な例

GitHub Actionsではエージェントはrunnerプロセスです。トークンで登録し、自身のラベルに一致するjobをポーリングし、次のものを取得する前にそれぞれをクリーンなworkspaceで実行します。

エージェントとpipelineの速度

エージェントがどれだけ速く起動し、どれだけ強力かは、jobの時間を直接形作ります。起動してツールをインストールしなければならないコールドなエージェントは、ウォームで事前プロビジョニングされたものより遅くなります。マネージドrunner(Latchkey)はエージェントをウォームかつ事前ロードされた状態に保つため、jobがほぼ即座に実行を開始します。

重要なポイント

  • ビルドエージェントは、pipelineのjobを実行するworkerです。
  • 「agent」と「runner」はプラットフォーム間でほぼ同じ意味です。
  • エージェントの起動速度と性能は、jobにかかる時間に直接影響します。

関連ガイド