A comparative study of GitHub-hosted, self-hosted, and Kubernetes-based GitHub Runners for web applications GitHub Actions workflows
Kozlov, Innokentii (2025)
Kozlov, Innokentii
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202504166669
https://urn.fi/URN:NBN:fi:amk-202504166669
Tiivistelmä
The purpose of this thesis was to determine which approach to hosting GitHub Actions software is more suitable for different requirements and use case scenarios. The focus was on examining the average time spent to execute CI/CD workflow, how much and how properly computing resources were utilised, as well as the cost to execute such workflow.
The GitHub Actions tool was chosen as the CI/CD solution, as well as GitHub runners as compute instances running GitHub Actions software. In particular, GitHub-hosted, self-hosted, and Kubernetes-based runner performances in regard to time consumption, resource utilization, and cost were compared.
The results indicate that every GitHub runner solution possesses some advantages and limitations. GitHub-hosted runners are convenient and simple to use but can be costly for large and frequent workflows. Self-hosted runners offer greater control over the environment and cost savings but require a high maintenance level. Kubernetes-based runners tend to be more complex to set up, offer greater scalability, and cost-effectiveness in the long run by optimizing the utilization of resources and reducing the need for manual intervention. Kubernetes-based runners are most effective in the long run for large projects, whereas GitHub-hosted and self-hosted runners remain suitable options for small projects with low infrastructure overhead.
The GitHub Actions tool was chosen as the CI/CD solution, as well as GitHub runners as compute instances running GitHub Actions software. In particular, GitHub-hosted, self-hosted, and Kubernetes-based runner performances in regard to time consumption, resource utilization, and cost were compared.
The results indicate that every GitHub runner solution possesses some advantages and limitations. GitHub-hosted runners are convenient and simple to use but can be costly for large and frequent workflows. Self-hosted runners offer greater control over the environment and cost savings but require a high maintenance level. Kubernetes-based runners tend to be more complex to set up, offer greater scalability, and cost-effectiveness in the long run by optimizing the utilization of resources and reducing the need for manual intervention. Kubernetes-based runners are most effective in the long run for large projects, whereas GitHub-hosted and self-hosted runners remain suitable options for small projects with low infrastructure overhead.