Improving Queuing Time in a Pull Based Containerized Continuous Integration Build System

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Abstract: Most of the medium and big size software companies around the world are now using some form of continuous automatic build systems, with smaller companies following through. This approach, towards a more continuous flow, has pushed for more innovation in the domain and the adoption of various orchestration tools for these builds. At the same time, most continuous integration build systems do not leverage the data for improving the total building time. This thesis intends to decrease the overall building time in a pull based build system, named Blazar. This is obtained by decreasing the average time a build waits before being allocated a resource by the orchestration tool, Kubernetes. The improvement of average queuing time is done by leveraging the past data regarding the queue load of the system with the scope of predicting the amount of resources and preemptively allocating them. In the thesis, various time series prediction models are explored in order to find the most relevant one with regards to the available data. The final choice of the model is Facebook’s Prophet due to its ability to leverage multiple seasonalities, handle outliers, accommodate holidays, and provide fast predictions. By tuning various model’s parameters, it was possible to achieve satisfactory results. Thus, for some of the tested periods, the average queuing time was decreased with up to 20%, while maintaining a reasonable resource usage, compared to the time without using any prediction models. Finally, this thesis represents a practical approach that can be applied to other applications and systems. This thesis also details its limitations while discussing other solutions and ideas to further improve the results. 

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)