Decentralized Edge FaaS

The project explores the creation of a decentralized network for hosting serverless functions using a Peer-to-Peer (P2P) architecture. The primary motivation is to enable individuals and small cloud service providers to offer computational resources for executing and deploying serverless functions,...

Descripción completa

Detalles Bibliográficos
Autor: Sánchez Bermúdez, Martín
Tipo de recurso: tesis de maestría
Fecha de publicación:2024
País:España
Institución:Universitat Oberta de Catalunya (UOC)
Repositorio:O2, repositorio institucional de la UOC
OAI Identifier:oai:openaccess.uoc.edu:10609/151244
Acceso en línea:http://hdl.handle.net/10609/151244
Access Level:acceso abierto
Palabra clave:peer-to-peer
edge computing
serverless
rust
distributed computing
function-as-a-service
Edge computing -- TFM
Informàtica a la perifèria -- TFM
Descripción
Sumario:The project explores the creation of a decentralized network for hosting serverless functions using a Peer-to-Peer (P2P) architecture. The primary motivation is to enable individuals and small cloud service providers to offer computational resources for executing and deploying serverless functions, thereby decentralizing the control currently held by major cloud providers. The evaluation of the distributed computing capabilities of the network is another key aspect of the project. The system leverages OpenFaaS for function deployment and execution, and Rust for implementing the P2P network. The network uses a Distributed Hash Table (DHT) to store and locate functions, allowing any node to route requests to the appropriate node hosting the function. This setup facilitates distributed computing tasks by enabling the distributionof function executions across multiple nodes. The project explains the process of designing and building the system prototype. It includes deploying OpenFaaS in a Kubernetes cluster and implementing the P2P network using the rust-libp2p library. Validation and evaluation are conducted through experiments simulating network nodes in virtual machines, focusing on function routing, execution time, performance, and distributed manycall requests. The results demonstrate the system’s capability to deploy and route execution of functions across the network in addition to carry out distributed computations over different nodes. This research opens posibilities for further exploration in fault tolerance, security, and real-world deployment scenarios, contributing to the advancement of decentralized infrastructure services and distributed computing at the edge.