Function as a Service (FaaS) is a specific kind of Serverless, a cloud computing execution model, that significantly gained in popularity over the last few years. One of the biggest limitations of FaaS solutions is its inherent stateless nature that creates a major mismatch with common stateful applications. To tackle this, serverless functions are frequently connected with cloud databases. However, such practice undermines the generality of the model, requiring from the developers manual encoding of the interactions between the application logic and the storage. All this inevitably slows down the development process that cloud computing aimed to accelerate. This thesis introduces Nubes, a novel abstraction layer built for the stateful serverless functions, that addresses the complexities of state management. Specifically, in Nubes, developers define objects that encapsulate state in the form of attributes and expose methods to other objects. Developers write applications using familiar object-oriented concepts, while Nubes handles the execution of methods as functions in the cloud environment, and it transparently and automatically stores and manages state using a cloud storage service. Nubes' effectiveness was assessed in a benchmark based on a typical serverless application. Implementation with Nubes was compared with the current methodology for developing stateful serverless applications. The results showed that Nubes reduces the size and complexity of the code, incurring limited overhead with respect to manually optimized implementations. Notably, it preserves scalability in terms of storage size and invocations rate, which is one of the main reasons to adopt the serverless paradigm.

Serverless è un modello di esecuzione per cloud computing che ha guadagnato popolarità negli ultimi anni. Una specifica implementazione del modello, denominata Function as a Service (FaaS), fornisce un'astrazione sull'infrastruttura cloud basata sul concetto di funzione: gli sviluppatori definiscono funzioni che vengono istanziate automaticamente in un numero adatto a garantire la qualità del servizio richiesta, con un modello di prezzo basato sull'effettivo utilizzo delle risorse. Nonostante numerosi vantaggi, uno dei maggiori limiti delle soluzioni FaaS è il fatto che le funzioni non possono gestire stato, aspetto che ne limita l'appicabilità alle comuni applicazioni cloud. Per far fronte a questo, le funzioni serverless sono spesso utilizzate insieme a sistemi database, anch'essi offerti come servizi in cloud. Tuttavia, tale pratica mina la generalità del modello, richiedendo agli sviluppatori la codifica manuale delle interazioni tra la logica applicativa e il database. Ciò rallenta inevitabilmente il processo di sviluppo che il cloud computing mirava ad accelerare. Questa tesi introduce Nubes, un sistema che fornisce un nuovo paradigma di programmazione per funzioni serverless con stato. In Nubes, gli sviluppatori definiscono oggetti che incapsulano stato sotto forma di attributi ed espongono metodi ad altri oggetti. Le applicazioni vengono sviluppate seguendo i concetti familiari della programmazione orientata agli oggetti, mentre Nubes gestisce l'esecuzione di metodi come funzioni in ambiente cloud e gestisce in modo trasparente e automatico lo stato in un servizio di archiviazione cloud. Nubes è stato valutata con un benchmark basato su una tipica applicazione serverless. L'implementazione con Nubes è stata confrontata con l'attuale metodologia per lo sviluppo di applicazioni serveless con stato. I risultati hanno mostrato che Nubes riduce le dimensioni e la complessità del codice, introducendo un costo limitato in termini di performance. In particolare, Nubes preserva la scalabilità in termini di dimensioni dello stato e frequenza di invocazione delle funzioni, che è uno dei motivi principali per adottare il paradigma serverless.

Nubes: object-oriented programming for stateful serverless functions

Marek, Kinga Anna
2022/2023

Abstract

Function as a Service (FaaS) is a specific kind of Serverless, a cloud computing execution model, that significantly gained in popularity over the last few years. One of the biggest limitations of FaaS solutions is its inherent stateless nature that creates a major mismatch with common stateful applications. To tackle this, serverless functions are frequently connected with cloud databases. However, such practice undermines the generality of the model, requiring from the developers manual encoding of the interactions between the application logic and the storage. All this inevitably slows down the development process that cloud computing aimed to accelerate. This thesis introduces Nubes, a novel abstraction layer built for the stateful serverless functions, that addresses the complexities of state management. Specifically, in Nubes, developers define objects that encapsulate state in the form of attributes and expose methods to other objects. Developers write applications using familiar object-oriented concepts, while Nubes handles the execution of methods as functions in the cloud environment, and it transparently and automatically stores and manages state using a cloud storage service. Nubes' effectiveness was assessed in a benchmark based on a typical serverless application. Implementation with Nubes was compared with the current methodology for developing stateful serverless applications. The results showed that Nubes reduces the size and complexity of the code, incurring limited overhead with respect to manually optimized implementations. Notably, it preserves scalability in terms of storage size and invocations rate, which is one of the main reasons to adopt the serverless paradigm.
LUCA, DE MARTINI
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-lug-2023
2022/2023
Serverless è un modello di esecuzione per cloud computing che ha guadagnato popolarità negli ultimi anni. Una specifica implementazione del modello, denominata Function as a Service (FaaS), fornisce un'astrazione sull'infrastruttura cloud basata sul concetto di funzione: gli sviluppatori definiscono funzioni che vengono istanziate automaticamente in un numero adatto a garantire la qualità del servizio richiesta, con un modello di prezzo basato sull'effettivo utilizzo delle risorse. Nonostante numerosi vantaggi, uno dei maggiori limiti delle soluzioni FaaS è il fatto che le funzioni non possono gestire stato, aspetto che ne limita l'appicabilità alle comuni applicazioni cloud. Per far fronte a questo, le funzioni serverless sono spesso utilizzate insieme a sistemi database, anch'essi offerti come servizi in cloud. Tuttavia, tale pratica mina la generalità del modello, richiedendo agli sviluppatori la codifica manuale delle interazioni tra la logica applicativa e il database. Ciò rallenta inevitabilmente il processo di sviluppo che il cloud computing mirava ad accelerare. Questa tesi introduce Nubes, un sistema che fornisce un nuovo paradigma di programmazione per funzioni serverless con stato. In Nubes, gli sviluppatori definiscono oggetti che incapsulano stato sotto forma di attributi ed espongono metodi ad altri oggetti. Le applicazioni vengono sviluppate seguendo i concetti familiari della programmazione orientata agli oggetti, mentre Nubes gestisce l'esecuzione di metodi come funzioni in ambiente cloud e gestisce in modo trasparente e automatico lo stato in un servizio di archiviazione cloud. Nubes è stato valutata con un benchmark basato su una tipica applicazione serverless. L'implementazione con Nubes è stata confrontata con l'attuale metodologia per lo sviluppo di applicazioni serveless con stato. I risultati hanno mostrato che Nubes riduce le dimensioni e la complessità del codice, introducendo un costo limitato in termini di performance. In particolare, Nubes preserva la scalabilità in termini di dimensioni dello stato e frequenza di invocazione delle funzioni, che è uno dei motivi principali per adottare il paradigma serverless.
File allegati
File Dimensione Formato  
2023_07_Marek_Executive Summary_02.pdf

solo utenti autorizzati a partire dal 26/06/2024

Descrizione: Text of the Executive Summary
Dimensione 466.94 kB
Formato Adobe PDF
466.94 kB Adobe PDF   Visualizza/Apri
2023_07_Marek_Thesis_01.pdf

solo utenti autorizzati a partire dal 26/06/2024

Descrizione: Text of the Thesis
Dimensione 1.06 MB
Formato Adobe PDF
1.06 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/208094