Shared runners vs Agency-hosted runners
| GitLab Runners | Why choose this? | Pros | Cons |
|---|---|---|---|
| Shared runners | - As GovTech recommends this as a default approach. - If your projects are open-source projects or have general-purpose tasks and scenarios where you don’t need specific customisations. - If you have small or less experienced team. - If you want a convenient and efficient way to run CI/CD pipelines. - If your infrastructure leverages on CSP-managed services requiring immutable infrastructure workflow. - We also provide you a dashboard to monitor the performance of shared runners. Currently, you can view the performance of the shared Docker runners offered by SHIP-HATS |
- Available for free and scales without additional charges. - Pre-configured by GovTech, no additional setup required. - GovTech manages the infrastructure, server maintenance, scaling and security patches. - Able to securely assume a role to your environment through OIDC web identity, without the need of long-term credentials. |
- Performance may vary due to shared pool among Whole-of-Government (WOG). - You can’t modify the environment, choose the OS, or allocate resources as required. - Not suitable for tasks such as iOS-related tasks, intranet targets (private FQDN), or custom network access scenarios. |
| Agency-hosted runners | - If you have a mature DevOps team that can: - Self-manage GitLab runner clusters. - Ensure runners are patched, upgraded and configured correctly. - Install all necessary libraries to build applications (e.g. Node/NPM/Python/Pip), build containers (e.g. Kaniko), run IaC (e.g. Terraform and AWS CLI). - If you have experienced users of runners who need dedicated performance. - If your tasks are not supported by Shared Runners, such as iOS-related tasks, intranet targets (private FQDN), and scenarios requiring custom network access. |
- Predictable performance with dedicated resources. - Monitor performance and adjust resources as necessary. - Configurable for Group or Project level access. - Greater customisation and control over dependencies, tools and runner security. - Optimisable for specific use cases, potentially yielding better performance. - Scaleable by adding or adjusting resources as required (with potential cost increases). |
- Requires expertise to set up and deploy Self-Hosted Runners. - Requires manpower, effort and cost to maintain upgrades and patches to ensure that your runner version matches your GitLab instance version. Refer to GitLab Runner versions. - Requires expertise to customise, build and package container images for CI/CD jobs - Requires Private endpoints to access SHIP-HATS services and for runner registration. - Overall, increased complexity, resource needs, and maintenance costs. |