Return to search

Improving Queuing Time in a Pull Based Containerized Continuous Integration Build System / Förbättra Kötiden i ett Dragbaserat Containeriserat Kontinuerligt Integrationssystem

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. / De flesta medelstora och större mjukvaruföretag runt om i världen använder idag någon form av kontinuerliga automatiska byggsystem, något som mindre företag även har börjat efterfölja. Detta tillvägagångssätt mot ett mer kontinuerligt flöde har drivit för mer innovation inom domänen och adopteringen av olika orkestreringsverktyg för dessa byggda program. Samtidigt utnyttjar de flesta kontinuerliga integrationssystem inte den data de samlar in för att förbättra den totala byggtiden. Denna uppsats avser att minska den totala byggtiden i ett pull-baserat byggsystem som heter Blazar. Detta uppnås genom att minska den genomsnittliga tid som ett byggt program väntar innan den tilldelas en resurs av orkestreringsverktyget, Kubernetes. Förbättringen av den genomsnittliga kötiden fås genom att utnyttja tidigare data om systemets köbelastning med omfattningen att förutsäga mängden resurser och fördela dem förebyggande. I avhandlingen undersöks olika tidsserieprognosmodeller för att hitta den mest relevanta med avseende på tillgänglig data. Det slutliga valet av modellen är Facebooks Prophet på grund av dess förmåga att utnyttja flera säsongsbestämmelser, hantera avvikelser, helgdagar och ge snabba förutsägelser. Genom att ställa in olika modellparametrar var det möjligt att uppnå tillfredsställande resultat. Under några av de testade perioderna minskade således den genomsnittliga kötiden med upp till 20%, samtidigt som en rimlig resursanvändning bibehölls, jämfört med tiden som ficks utan att använda någon förutsägelsemodell. Slutligen avser denna avhandling inte att ge en toppmodern lösning. Således slutar det med att beskriva sina begränsningar samtidigt som de tillhandahåller andra lösningar och idéer som kan förbättra resultaten.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-303114
Date January 2021
CreatorsGangalic, Catalin
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS)
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2021:286

Page generated in 0.0321 seconds