polito.it
Politecnico di Torino (logo)

FaaS on Kubernetes Workload migration and optimization with Kubeless and Knative

Enrico Franco

FaaS on Kubernetes Workload migration and optimization with Kubeless and Knative.

Rel. Riccardo Sisto. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2020

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (4MB) | Preview
Abstract:

Il paradigma di cloud computing si è evoluto negli ultimi anni partendo da architetture on–premises con macchine virtuali, passando per i modelli IaaS, PaaS e SaaS, fino ad arrivare ai paradigmi serverless e Function–as–a–Service che permettono di distribuire applicazioni in modo trasparente per i team di sviluppo, i quali possono concentrare il loro lavoro sull’innovazione senza doversi occupare della configurazione e messa in campo dell’applicazione. L’impiego di container Docker, opportunamente gestiti da orchestratori di livello superiore come Kubernetes, ha reso possibile lo sviluppo ed erogazione di applicazioni come microservizi e funzioni, indipendenti tra loro in termini di sviluppo e testing, seppur possibilmente cooperanti. Soluzioni commerciali, tra cui AWS Lambda e Microsoft Azure Functions, sono disponibili da alcuni anni per la realizzazione pratica di tale paradigma e negli ultimissimi anni si sono affiancate soluzioni open–source, quali Kubeless e Knative. Entrambi questi framework si pongono, a livello architetturale, on–top dell’infrastruttura Kubernetes e ne estendono risorse e funzionalità offerte, ridefinendone ed ampliandone alcune componenti in modo da permettere una più rapida messa in campo del codice, corroborata con politiche di autoscaling ed un approccio event–driven. L’obiettivo di questo lavoro è il confronto di un’applicazione realizzata con architettura monolitica ed una equivalente – capace cioè di adempiere allo stesso insieme di compiti – messa in campo con tecnologia serverless e FaaS, in termini di performance e di risorse utilizzate. Al fine di confrontare praticamente tali metodologie, è necessario sviluppare e mettere in campo tali applicazioni. Prendendo quindi come punto di partenza un’applicazione monolitica, è necessario scomporre questa in diversi moduli i quali globalmente costituiscono un’applicazione a microservizi. Ciascuno di questi può essere messo in campo con metodologie diverse, sottostando a ragionevoli ipotesi che mirino ad utilizzare le peculiarità del framework scelto e del paradigma serverless in generale, in modo tale da evidenziare quanto possibile le differenze tra le due architetture, insieme con i principali pregi e difetti di ognuna. Prima di procedere però con tale implementazione è fondamentale una fase di analisi e confronto tra le soluzioni open–source sopra citate, in modo tale da individuarne le caratteristiche distintive principali, per poi procedere con la realizzazione pratica sfruttando uno tra i due framework. Le applicazioni sviluppate e messe in campo durante questa tesi forniscono un esempio rappresentante un limitato scenario. Il lavoro qui presentato si presta infatti ad ulteriori sviluppi, in maniera tale da costituire una reale alternativa all’interno del panorama di possibili soluzioni in ambiente enterprise.

Relatori: Riccardo Sisto
Anno accademico: 2020/21
Tipo di pubblicazione: Elettronica
Numero di pagine: 100
Soggetti:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-32 - INGEGNERIA INFORMATICA
Aziende collaboratrici: Blue Reply Srl
URI: http://webthesis.biblio.polito.it/id/eprint/15859
Modifica (riservato agli operatori) Modifica (riservato agli operatori)