In the last decades, the rise of Cloud computing has deeply influenced the evolution of software systems. Being able to obtain computational power easily and in no time has influenced modern architectures, making them able to promptly adapt to changes in the environment. Cloud computing has brought two important novelties: microservices architectures and containers, which have guided the development of software systems in the last years. Nevertheless, they have led to an explosion of complexity in software architectures, making it hard to manage such systems. To cope with this complexity, autonomic systems, entities that are able to manage themselves, have been born. One of the most famous is Kubernetes, a production-grade container orchestrator, which provides many features to manage and deploy containerized applications. Furthermore, Kubernetes allows applications to scale by means of dedicated controllers, responsible for modifying container resources (CPU and memory) and the number of application replicas. Within this context, a problem that involves software systems since ever is analyzed: resource provisioning and optimization. This problem affects mostly applications subject to unpredictable and fluctuating workloads. This thesis aims to study, develop and evaluate a solution capable of performing fast and fine-grained resource provisioning for containerized applications, exploiting both horizontal and vertical scaling techniques. The proposed solution, Kosmos, uses control theory models to scale applications, making its decisions by taking into account a user-defined constraint on the maximum service response time. Furthermore, Kosmos has been designed to be seamlessly deployed and integrated in Kubernetes. A complete set of experiments have been conducted to measure Kosmos performance, proving how the developed system is already a valuable alternative to existing autoscalers and why a mixed approach of vertical and horizontal scaling can be considered as a novel scalability model.

Negli ultimi decenni, l’avvento del Cloud computing ha influenzatoprofondamente l’evoluzione dei sistemi software. Il fatto di avere facil-mente accesso a potenza di calcolo e in pochissimo tempo ha influitosulla struttura delle architetture moderne, rendendo possibile il lororapido adattamento in base alle necessità.Il Cloud computing ha portato due importanti novità con sé: le ar-chitetture a microservizi e la containerizzazzione, due elementi chehanno guidato lo sviluppo dei sistemi software negli ultimi anni.Tutto ciò ha però portato a un’esplosione di complessità nelle mod-erne architetture, rendendone difficile la gestione.Per far fronte a questa complessità sono nati sistemi autonomici,entità in grado di gestirsi da sole. Uno dei più famosi è Kubernetes,un orchestratore di container, il quale fornisce molte funzionalità pergestire applicazioni containerizzate. Inoltre, Kubernetes consente ilridimensionamento di applicazioni tramite appositi componenti, re-sponsabili della modifica delle risorse (CPU e memoria) di un con-tainer e del numero di repliche dell’applicazione.In questo contesto viene analizzato un problema di cui le appli-cazioni soffrono: l’ottimizzazione delle risorse utilizzate. Questo prob-lema riguarda soprattutto le applicazioni con carichi di lavoro im-prevedibili e oscillanti.Questa tesi si propone di sviluppare e valutare una soluzione ingrado di allocare risorse in maniera veloce e a grana fine per ap-plicazioni containerizzate, sfruttando tecniche di ridimensionamentoorizzontale e verticale. La soluzione proposta, Kosmos, utilizza la teo-ria del controllo per ridimensionare applicazioni tenendo conto diun vincolo definito dall’utente sul massimo tempo di risposta delservizio. Kosmos è stato progettato per integrarsi senza problemi inKubernetes.È stata infine condotta una serie completa di esperimenti per mis-urare le prestazioni di Kosmos, dimostrando in che modo il sistemasviluppato rappresenti una valida alternativa a sistemi di autoridi-mensionamento esistenti e il perché un approccio misto dei due tipidi ridimensionamento può dare vita a nuovi modelli di scalabilità.

Fast and fine-grained resource allocation for cloud-native applications on Kubernetes

Terracciano, Luca;Hu, Davide Yi Xian
2020/2021

Abstract

In the last decades, the rise of Cloud computing has deeply influenced the evolution of software systems. Being able to obtain computational power easily and in no time has influenced modern architectures, making them able to promptly adapt to changes in the environment. Cloud computing has brought two important novelties: microservices architectures and containers, which have guided the development of software systems in the last years. Nevertheless, they have led to an explosion of complexity in software architectures, making it hard to manage such systems. To cope with this complexity, autonomic systems, entities that are able to manage themselves, have been born. One of the most famous is Kubernetes, a production-grade container orchestrator, which provides many features to manage and deploy containerized applications. Furthermore, Kubernetes allows applications to scale by means of dedicated controllers, responsible for modifying container resources (CPU and memory) and the number of application replicas. Within this context, a problem that involves software systems since ever is analyzed: resource provisioning and optimization. This problem affects mostly applications subject to unpredictable and fluctuating workloads. This thesis aims to study, develop and evaluate a solution capable of performing fast and fine-grained resource provisioning for containerized applications, exploiting both horizontal and vertical scaling techniques. The proposed solution, Kosmos, uses control theory models to scale applications, making its decisions by taking into account a user-defined constraint on the maximum service response time. Furthermore, Kosmos has been designed to be seamlessly deployed and integrated in Kubernetes. A complete set of experiments have been conducted to measure Kosmos performance, proving how the developed system is already a valuable alternative to existing autoscalers and why a mixed approach of vertical and horizontal scaling can be considered as a novel scalability model.
QUATTROCCHI, GIOVANNI
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-apr-2021
2020/2021
Negli ultimi decenni, l’avvento del Cloud computing ha influenzatoprofondamente l’evoluzione dei sistemi software. Il fatto di avere facil-mente accesso a potenza di calcolo e in pochissimo tempo ha influitosulla struttura delle architetture moderne, rendendo possibile il lororapido adattamento in base alle necessità.Il Cloud computing ha portato due importanti novità con sé: le ar-chitetture a microservizi e la containerizzazzione, due elementi chehanno guidato lo sviluppo dei sistemi software negli ultimi anni.Tutto ciò ha però portato a un’esplosione di complessità nelle mod-erne architetture, rendendone difficile la gestione.Per far fronte a questa complessità sono nati sistemi autonomici,entità in grado di gestirsi da sole. Uno dei più famosi è Kubernetes,un orchestratore di container, il quale fornisce molte funzionalità pergestire applicazioni containerizzate. Inoltre, Kubernetes consente ilridimensionamento di applicazioni tramite appositi componenti, re-sponsabili della modifica delle risorse (CPU e memoria) di un con-tainer e del numero di repliche dell’applicazione.In questo contesto viene analizzato un problema di cui le appli-cazioni soffrono: l’ottimizzazione delle risorse utilizzate. Questo prob-lema riguarda soprattutto le applicazioni con carichi di lavoro im-prevedibili e oscillanti.Questa tesi si propone di sviluppare e valutare una soluzione ingrado di allocare risorse in maniera veloce e a grana fine per ap-plicazioni containerizzate, sfruttando tecniche di ridimensionamentoorizzontale e verticale. La soluzione proposta, Kosmos, utilizza la teo-ria del controllo per ridimensionare applicazioni tenendo conto diun vincolo definito dall’utente sul massimo tempo di risposta delservizio. Kosmos è stato progettato per integrarsi senza problemi inKubernetes.È stata infine condotta una serie completa di esperimenti per mis-urare le prestazioni di Kosmos, dimostrando in che modo il sistemasviluppato rappresenti una valida alternativa a sistemi di autoridi-mensionamento esistenti e il perché un approccio misto dei due tipidi ridimensionamento può dare vita a nuovi modelli di scalabilità.
File allegati
File Dimensione Formato  
Fast and fine-grained resource allocation for cloud-native applications on Kubernetes.pdf

accessibile in internet per tutti

Dimensione 15.72 MB
Formato Adobe PDF
15.72 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/174028