About
About This Project: Serverless Feature in WRENCH
This project explores the design and implementation of a serverless computing feature within the WRENCH framework, enabling researchers and developers to simulate and experiment with serverless infrastructures in distributed computing environments. The serverless feature introduces new components, such as the ServerlessComputeService and FunctionManager, to support function invocations, resource management, and distributed storage.
Core Concepts and Features:
- ServerlessComputeService
- Acts as the backbone for the serverless infrastructure, managing compute hosts and storage.
- Simulates serverless behavior with features like:
- A head host with storage for managing images.
- Compute hosts with fixed slots for concurrent function invocations.
- An LRU-based storage system to manage images and temporary container data.
- Concurrency management ensures rational handling of simultaneous function invocations.
- FunctionManager
- Provides a layer for defining, registering, and managing functions.
- Offers APIs for:
- Function registration with resource constraints (e.g., time, RAM, disk space).
- Function invocation with built-in mechanisms to handle limits, failures, or concurrency bottlenecks.
- Supports advanced state tracking and wait mechanisms to monitor function execution progress.
- Customizable Policies and Extensibility
- Node allocation policies and behaviors are customizable, allowing experimentation with various strategies.
- Designed to accommodate user-defined lambdas for specific behaviors in the future.
Research Potential:
The serverless feature opens avenues for research in distributed computing, including:
- Efficient resource allocation and concurrency management.
- Storage optimization in serverless architectures.
- Comparative analysis of node allocation policies and scalability in serverless environments.
- Exploring failure tolerance and recovery mechanisms.
By simulating real-world serverless environments, this project provides a platform to study and refine distributed systems, offering valuable insights for academia and industry.