A Runner Group is a collection of identical runner instances that work together to execute actions in workflows. Distributing the workload across multiple instances helps improve performance, reliability, and efficiency.
Redundancy:If a Runner isn’t reachable or isn’t available, having more than one configured Runner will decrease the chances of Workflow downtime.
Scale: If a single machine/container with a Runner cannot handle the amount of executions, having more than one Runner installed results in load-distribution between the installed Runners.
Isolation: Installing multiple Runners allows you to isolate workloads based on environments (e.g., staging vs. production), teams, or use cases. This ensures sensitive workflows don’t share execution environments and helps with compliance or audit requirements.
Geographic Proximity: Deploying Runners in different regions can reduce latency when interacting with region-specific services or APIs, improving overall workflow performance and responsiveness.
Maintenance Flexibility: With multiple Runners, you can take individual Runners offline for upgrades or maintenance without affecting workflow availability, ensuring continuous operation.
When you first deploy a Docker or Kubernetes Runner Group, it includes only a single runner instance by default. To improve performance and ensure better load distribution, it’s recommended to add multiple runner instances to the group.
Flow Diagram - Scale with Kubernetes/Docker Runners
This diagram displays top-down flow of scaling plugins where a central Controller passes an action(s) to the runner groups (eg. Kubernetes Runners or Docker Runners), and one of the runners within the group will be randomly assigned the action. Each Runner can then leverage different types of plugins—here, an HTTP Plugin for handling HTTP requests and responses, and a Core Plugin for CLI and code functionalities. The Controller orchestrates execution by assigning work to the runner group, which in turn utilize the appropriate plugin to complete their specific actions.