Serverless has seen a growing interest in the web development world because it allows to build web solutions offloading server management, maintenance and scalability to the serverless provider. A classical approach for building web services in a serverless environment is to write stateless functions run by the serverless engine (FaaS) that can access a storage service. Developers carry the burden of directly interacting with the underlying storage system and handling concurrency and state consistency across function invocations. This results in less time spent on solving the actual business problems they face. This thesis proposes Histrio, a new development model and execution environment that helps developers handle concurrency and consistency concerns and that offers an abstraction layer over the underlying data storage. The model is based on the well-known Actor Model, enriched with features tailored to the needs of web applications. Developers write applications defining and deploying actors, which are components that manage their private state and that can communicate with each other through message passing. The execution engine implicitly handles state management and offers an exactly-once-processing semantics inside the system. Histrio has been compared with a classical FaaS implementation to evaluate both the development time saved due to the guarantees the system offers and the applicability of Histrio in typical web applications. In the evaluation scenarios, Histrio greatly reduced both the total lines of code and the percentage of infrastructure code compared to the baseline implementations. Moreover, results show that Histrio is scalable, it offers comparable performances to the baseline for simple scenarios and the overhead incurred in more complex scenarios can be mitigated with proper configuration.

Il modello serverless ha suscitato un crescente interesse nell'ambito dello sviluppo di servizi web. Questo fenomeno può essere spiegato dalla possibilità di delegare gestione, manutenzione e scalabilità dell’infrastruttura applicativa a terze parti. Normalmente, le applicazioni serverless vengono sviluppate mediante funzioni stateless offerte da piattaforme FaaS, che possono accedere a un database. Gli sviluppatori si occupano direttamente dell’interazione con il database, della gestione della concorrenza e della coerenza dello stato tra le invocazioni delle funzioni. Il tempo dedicato alla gestione di questi aspetti viene sottratto al design e allo sviluppo delle feature richieste dal progetto. Questa tesi propone Histrio, un modello di sviluppo e ambiente di esecuzione che aiuta gli sviluppatori a gestire problemi di concorrenza e di coerenza dello stato. Il modello offerto si basa sul noto modello ad attori, arricchito con funzionalità normalmente richieste dalle applicazioni web. Histrio permette di sviluppare applicazioni definendo attori, componenti che gestiscono una porzione privata di stato e che possono comunicare tra loro scambiandosi dei messaggi. Il motore di esecuzione si occupa della gestione dello stato e offre la garanzia di exactly-once-processing per i messaggi all’interno del sistema. Histrio è stato confrontato con un’implementazione classica basata sul paradigma FaaS per valutare sia il tempo di sviluppo risparmiato sfruttando le garanzie offerte dal sistema, sia l’utilità di Histrio nello sviluppo di tipiche applicazioni web. Negli scenari di valutazione, Histrio ha ridotto notevolmente il numero totale di righe di codice e la percentuale di codice infrastrutturale. I benchmark mostrano che Histrio è scalabile ed offre prestazioni comparabili alla baseline per scenari semplici. L'overhead riscontrato in scenari più complessi può essere mitigato con una configurazione adeguata del sistema.

Histrio: a serverless actor system

BUTTIGLIERI, GIORGIO NATALE
2023/2024

Abstract

Serverless has seen a growing interest in the web development world because it allows to build web solutions offloading server management, maintenance and scalability to the serverless provider. A classical approach for building web services in a serverless environment is to write stateless functions run by the serverless engine (FaaS) that can access a storage service. Developers carry the burden of directly interacting with the underlying storage system and handling concurrency and state consistency across function invocations. This results in less time spent on solving the actual business problems they face. This thesis proposes Histrio, a new development model and execution environment that helps developers handle concurrency and consistency concerns and that offers an abstraction layer over the underlying data storage. The model is based on the well-known Actor Model, enriched with features tailored to the needs of web applications. Developers write applications defining and deploying actors, which are components that manage their private state and that can communicate with each other through message passing. The execution engine implicitly handles state management and offers an exactly-once-processing semantics inside the system. Histrio has been compared with a classical FaaS implementation to evaluate both the development time saved due to the guarantees the system offers and the applicability of Histrio in typical web applications. In the evaluation scenarios, Histrio greatly reduced both the total lines of code and the percentage of infrastructure code compared to the baseline implementations. Moreover, results show that Histrio is scalable, it offers comparable performances to the baseline for simple scenarios and the overhead incurred in more complex scenarios can be mitigated with proper configuration.
DE MARTINI, LUCA
ING - Scuola di Ingegneria Industriale e dell'Informazione
10-ott-2024
2023/2024
Il modello serverless ha suscitato un crescente interesse nell'ambito dello sviluppo di servizi web. Questo fenomeno può essere spiegato dalla possibilità di delegare gestione, manutenzione e scalabilità dell’infrastruttura applicativa a terze parti. Normalmente, le applicazioni serverless vengono sviluppate mediante funzioni stateless offerte da piattaforme FaaS, che possono accedere a un database. Gli sviluppatori si occupano direttamente dell’interazione con il database, della gestione della concorrenza e della coerenza dello stato tra le invocazioni delle funzioni. Il tempo dedicato alla gestione di questi aspetti viene sottratto al design e allo sviluppo delle feature richieste dal progetto. Questa tesi propone Histrio, un modello di sviluppo e ambiente di esecuzione che aiuta gli sviluppatori a gestire problemi di concorrenza e di coerenza dello stato. Il modello offerto si basa sul noto modello ad attori, arricchito con funzionalità normalmente richieste dalle applicazioni web. Histrio permette di sviluppare applicazioni definendo attori, componenti che gestiscono una porzione privata di stato e che possono comunicare tra loro scambiandosi dei messaggi. Il motore di esecuzione si occupa della gestione dello stato e offre la garanzia di exactly-once-processing per i messaggi all’interno del sistema. Histrio è stato confrontato con un’implementazione classica basata sul paradigma FaaS per valutare sia il tempo di sviluppo risparmiato sfruttando le garanzie offerte dal sistema, sia l’utilità di Histrio nello sviluppo di tipiche applicazioni web. Negli scenari di valutazione, Histrio ha ridotto notevolmente il numero totale di righe di codice e la percentuale di codice infrastrutturale. I benchmark mostrano che Histrio è scalabile ed offre prestazioni comparabili alla baseline per scenari semplici. L'overhead riscontrato in scenari più complessi può essere mitigato con una configurazione adeguata del sistema.
File allegati
File Dimensione Formato  
2024_10_Buttiglieri_Thesis.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Thesis
Dimensione 1.12 MB
Formato Adobe PDF
1.12 MB Adobe PDF   Visualizza/Apri
2024_10_Buttiglieri_ExecutiveSummary.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Executive summary
Dimensione 450.44 kB
Formato Adobe PDF
450.44 kB 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/226521