SPRIGHT is a lightweight, high-performance serverless framework that exploits shared memory processing to improve the scalability of the dataplane of serverless function chains by avoiding unnecessary networking overheads.
For more information, please refer to:
- SIGCOMM 2022: SPRIGHT: Extracting the Server from Serverless Computing! High-performance eBPF-based Event-driven, Shared-memory Processing
This guideline is mainly for deploying SPRIGHT on NSF Cloudlab. We focus on a single-node deployment to demonstrate the shared memory processing supported by SPRIGHT. Currently SPRIGHT offers several deployment options: Process-on-bare-metal (POBM mode), Kubernetes pod (K8S mode), and Knative functions (Kn mode).
Follow steps below to set up SPRIGHT:
- Creating a 2-node cluster on Cloudlab
- Upgrading kernel & Installing SPRIGHT dependencies
- Setting up Kubernetes & Knative
- Setting up SPRIGHT
To reproduce the experiment in our paper, please refer to commit 98434fd.
@inproceedings{spright-sigcomm22,
author = {Qi, Shixiong and Monis, Leslie and Zeng, Ziteng and Wang, Ian-chin and Ramakrishnan, K. K.},
title = {SPRIGHT: Extracting the Server from Serverless Computing! High-Performance EBPF-Based Event-Driven, Shared-Memory Processing},
year = {2022},
isbn = {9781450394208},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3544216.3544259},
doi = {10.1145/3544216.3544259},
booktitle = {Proceedings of the ACM SIGCOMM 2022 Conference},
pages = {780–794},
numpages = {15},
keywords = {event-driven, eBPF, function chain, serverless},
location = {Amsterdam, Netherlands},
series = {SIGCOMM '22}
}