Comparison of Gitlab Runner Implementations without Docker Machine for Cloud Providers

Timofei GanjuĊĦev
In recent years DevOps practices became more popular among all companies in the IT industry. Gitlab is a platform built on top of a code version control system and services to manage an application active development process.The automation of processes of application development lifecycle together with Agile practices allow to deliver faster software products to market. The objective of the thesis is to analyze existing Gitlab Runner implementations design including scalable solutions without Docker Machine because it was deprecated by Docker. The Gitlab utilizes its own auto scaling runner integration with popular cloud providers such as Google Cloud, AWS and Azure Cloud and has to maintain a forked version of Docker Machine. The thesis mainly describes aspects of different Gitlab Runner implementations, finding advantages and disadvantages of each solution and proving the theoretical problems via benchmarks. Using different cloud provider environments, were set up auto scale Gitlab Runners in Kubernetes Clusters, non-scalable on Linux server. Further, the runners were benchmarked with a pipeline that contains 3 stages with 7 jobs emulating basic project pipeline. According to the results, the best solution is runner in Azure Kubernetes Service with cache in Azure Cloud, but the popular cloud providers have instances with CPU on ARM architecture with better performance in some cases and different cache storage solutions could be tested.
Graduation Thesis language
Graduation Thesis type
Bachelor - Computer Science
Shivananda Rangappa Poojara
Defence year