Authors:
(1) Rabimba Karanjai, Department of Computer Science, University of Houston ([email protected]);
(2) Lei Xu, Department of Computer Science, Kent State University;
(3) Lin Chen, Department of Computer Science, Texas Texh University;
(4) Nour Diallo, Department of Computer Science, University Of Houston;
(5) Weidong Shi, Department of Computer Science, University Of Houston.
Table of Links
Abstract and 1 Introduction
2 Background and Motivation
2.1 Decentralized Computing Infrastructure and Cloud
2.2 Advantages of DeFaaS
2.3 System Requirements
3 Overview of DeFaaS
4 Detailed Design of DeFaaS and 4.1 Decentralized Scheduling and Load Balancing
4.2 Decentralized Event Distribution
4.3 API Registration and Access Control
4.4 OAuth2.0 Support
4.5 Logging and Billing and 4.6 Trust Management
4.7 Supporting Multi-Cloud Service Mesh
5 Implementation and Evaluation
5.1 Implementations
5.2 Experiments
5.3 Evaluation
6 Related Work
7 Conclusions and References
ABSTRACT
Function-as-a-service (FaaS) is a new way to compute in the cloud that further simplifies the user’s management burden and allows the user to focus on its core business. Most existing FaaS systems are centralized, i.e., the infrastructure is owned and managed by a single cloud service provider. This character brings a few limitations. For instance, an end user will be bound with a specific cloud service provider and there is a risk of single point of failure. In order to mitigate these limitations, a natural idea is to build a decentralized FaaS system. In this paper, we propose DeFaaS, a novel system that uses blockchain technology and decentralized API management to build a decentralized FaaS system, which enables greater scalability, flexibility, improved security, and reliability. Specifically, DeFaaS uses a blockchain to create a decentralized registry of available functions (services) and manage their execution. An application interacts with the blockchain to discover and invoke functions securely and transparently. In addition to providing a reliable and scalable platform for decentralized FaaS, DeFaaS can support other distributed computing scenarios, such as dApps, volunteer computing, and multi-cloud service mesh. Overall, our proposed system represents a significant advance in the field of decentralized computing and has the potential to enable a wide range of exciting new applications and use cases.
1 Introduction
Cloud computing offers a wide range benefits including high scalability, easy management, and flexibility. Function-asa-service (FaaS) is a new way to deliver cloud computation capability and attracts a lot of attention. Compared with the previous ways of delivering computation services (e.g., virtual machine and container), FaaS further simplifies the management work and allows the user to focus on its own business and the user only needs to pay when a function is executed. Specifically, a user only needs to provide a set of functions code to the cloud service provider, and then call these functions when needed. All related management works (e.g., deployment, execution, and scaling up/down) are shifted to the cloud service provider.
Most existing FaaS systems are centralized, i.e., an FaaS is owned and managed by a single cloud service providers. This architecture has several limitations: (i) Binding with a single service provider. When a user selects a cloud platform and submits all its functions code to the corresponding FaaS platform, it is difficult for the user to migrate to another FaaS provider even if the new provider offers better performance/price. (ii) Potential single point of failure. Although cloud is a distributed infrastructure and availability is usually an important part of a typical SLA, it is not uncommon that a cloud data center encounters disruptions for various reasons. (iii) Incompatibility with emerging decentralized applications. Web3 and dApp are becoming more popular and they also benefit from the FaaS model. However, the nature of Web3 and dApp is not automatically compatible with the single cloud model.
To mitigate these limitations and harvest the advantages of FaaS, some works have been done on design of multi-cloud FaaS [Zhao et al.(2022), Baarzi et al.(2021)], which allows a user application to utilize FaaS from multiple cloud service providers. However all these works require a centralized component to coordinate the interaction between the user application and the FaaS systems. Therefore, they only address the binding issue, but cannot contribute much to overcome the other two limitations.
n this work, we propose a transformative and first of its kind decentralized infrastructure for FaaS. The infrastructure is unique in many aspects, including its support for dApp/Web3 applications to take advantage of the cloud resources, its enabling of multi-cloud FaaS for dApp/Web3 developers with a decentralized environment, its complete protocol stack based on open standards, and its adherence to the principle of decentralization without relying on any centralized component. Furthermore, in this paper, we provide details of a concrete design using Hyperledger Besu and Open FaaS. Although we aim at multi-cloud data centers in this paper, the framework can be extended to encompass managed and volunteer-contributed computing resources, a topic of future research.
This new infrastructure will allow Web3 and dApp developers to take advantage of the scalability and flexibility of cloud computing without sacrificing the decentralized nature of their applications. To summarize, this paper makes the following main contributions:
• We propose the blockchain-based multi-cloud management architecture to support decentralized function-as-a-service, which is crucial for the deployment of dApps and Web3 applications in multi-cloud environment;
• Details of the critical components design and the way they interact with each other are provided;
• We conducted prototyping and preliminary experiments to demonstrate the feasibility and advantages of the proposed system.