runner poolとは?共有runnerのマネージドな集合
runner poolは、各jobが特定のマシンに縛られるのではなく、jobがオンデマンドで取り出すrunnerのマネージドな集合です。
現代のCIは、jobを名前付きのマシンに割り当てるのではなく、runnerを代替可能なpoolとして扱います。jobはpoolから利用可能な任意のrunnerをつかんで実行し、それを返します(エフェメラルなrunnerの場合はpoolがそれを置き換えます)。poolはautoscalingが操作する単位です。
pool vs 単一runner
単一のrunnerは一度に1つのjobを処理します。poolは多数のrunnerを集約し、システムが並行するjobを処理でき、jobごとにどのrunnerを使うか決められるようにします - どのjobも特定のマシンに固定されません。
pool vs warm pool
runner poolはjobが利用できるrunnerの一般的な集合です。warm poolは、jobが即座に開始できるよう事前起動されアイドル状態に保たれる特定のサブセットです。warm poolはrunner poolに適用される準備状態の戦略です。
なぜpoolがautoscalingを可能にするか
jobが固定のマシンではなくpoolから取り出すため、プラットフォームは需要に応じてpoolを自由に拡大・縮小できます。poolこそがscale-up、scale-down、scale-to-zeroを可能にするものです。
runnerタイプ別のpool
プラットフォームは通常、runnerのサイズとOS(小さいLinux、大きいLinux、GPUなど)ごとに別々のpoolを維持し、それぞれを独立してautoscaleします。これによりlabelがjobを適切な容量を持つ適切なpoolへルーティングします。
マネージドrunner上のpool
マネージドプラットフォームはこれらのpoolをあなたの代わりに運用し、各labelに適切な容量が用意されるよう各poolをサイジングしスケールします。Latchkeyではrunnerのサイズを指定するだけで、対応するpoolがjobを処理します - poolを自分でプロビジョニングしたりバランスしたりする必要はありません。
重要なポイント
- runner poolはjobがオンデマンドで取り出すrunnerのマネージドな集合です。
- poolはjobを特定のマシンから切り離し、並行性を可能にします。
- warm poolはrunner poolのうち事前起動されたサブセットです。
- poolはautoscalingが拡大・縮小する単位です。