ビルドエージェントとは? 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にかかる時間に直接影響します。
関連ガイド
What Is a Build Server? The Brain Behind the PipelineA build server is the central system that schedules pipelines, hands jobs to agents, stores results, and show…
What Is a Build Queue? Where Jobs Wait for a RunnerA build queue is the line of jobs waiting for an available agent to run them. Learn how queues form, why queu…
What Is Build Orchestration? Coordinating Jobs and PipelinesBuild orchestration is the coordination of jobs, dependencies, and pipelines so work runs in the right order…