A curated list of awesome serverless research works, including papers and open-sourced projects.
If you find some interesting work/projects missing in this list, please contact me through issues or email ([email protected]) :)
- Review
- Serverless System and Framework
- Heterogeneous Serverless
- Optimizations
- Stateful serverless computing
- Benchmarking
- Reliability and Fault Tolerance
- Security
- Applications
- Programming Models
- Other Related Works
- Other Recommended Lists
- Serverless Computing: One Step Forward, Two Steps Back (CIDR‘19)
- Cloud Programming Simplified: A Berkeley View onServerless Computing (Technique Report 2019)
- (Storage system) Understanding Ephemeral Storage for Serverless Analytics (ATC'18)
- (Storage system) Pocket: Elastic Ephemeral Storage for Serverless Analytics (OSDI'18)
- (Scheduling/Complier) From Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of Transient Functional Containers (ATC'19)
- (Runtime) Firecracker: Lightweight Virtualization for Serverless Applications (NSDI'20)
- (Runtime) Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing (ATC'20) - Compared with other runtimes, Faasm utilizes WebAssembly for isolation, which achieves high performance. Code available at github
- (Framework) Nightcore: Efficient and Scalable Serverless Computing for Latency-Sensitive, Interactive Microservices (ASPLOS'21)
- (Scheduling)Sequoia: enabling quality-of-service in serverless computing(SOCC'20) - Sequoia is a serverless scheduling and allocation framework, which aims to improve the management in serverless computing.
- Serverless computing on heterogeneous computers (ASPLOS'22) - The first work to propose heterogeneous serverless systems based on CPU, DPU and FPGA. Future works may follow the line to support GPU and many new accelerators for serverless.
- Llama: A Heterogeneous & Serverless Framework for Auto-Tuning Video Analytics Pipelines (ACM SoCC'21) - A system to schedule heterogeneous resources in the case of serverless.
- SOCK: Rapid Task Provisioning with Serverless-Optimized Containers (ATC'18)
- SAND: Towards High-Performance Serverless Computing (ATC'18)
- Catalyzer: Sub-millisecond Startup for ServerlessComputing with Initialization-less Booting (ASPLOS'20) - Catalyzer proposes init-less, which leverages fork/snapshots to skip the initialization costs during startup, and can achieve <1ms startup latency in the best case. The system is based on virtualization based sandboxes, gVisor.
- Replayable Execution Optimized for Page Sharing for a Managed Runtime Environment (Eurosys'19) - Replayable optimizes CRIU for docker containers to boost container startup latency and reduce memory costs.
- SEUSS: skip redundant paths to make serverless fast (Eurosys'20) - SEUSS utilizes similir ideas as Catalyzer and Replayable to boost serverless latency (especially for startup latency) using fork/snapshots. The system is based on unikernels.
- FaasCache: Keeping Serverless Computing Alive with Greedy-Dual Caching (ASPLOS'21)
- Faastlane: Accelerating Function-as-a-Service Workflows (ATC'21) - Faastlane aims to optimize the communication latency between functions, which is significant for function chain (or workflows in the title). The major idea is to use thread-level isolation, that means different functions are located in the same process, and Faastlane utilizes Intel MPK to provide isolation between different threads.
There are many emerging works trying to introduce states to serverless computings --- therefore, we can have more applications like machine learning and data analysis on serverless.
- Boki: Stateful Serverless Computing with Shared Logs (SOSP'21) - Boki solves many problems on stateful serverless computing, including state consistency, fault tolerance, and high-level abstractions for stateful serverless applications. The major novelity is its shared log design. The system is open-sourced at github. And you can quickly learn the high-level ideas through its SOSP video.
- Cloudburst: stateful functions-as-a-service (VLDB'20) - The paper presents Cloudburst, a stateful FaaS platform that provides Python-like programming models. Cloudburst leverages Anna, a scalable key-value store, to achieve low-latency mutable state and communication.
- Architectural Implications of Function-as-a-Service Computing (Micro'19)
- Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider (ATC'20) - SIW is an industry paper by Microsoft Azure. You can learn about real-world issues/techniques of serverless computing from it.
- Characterizing Serverless Platforms with ServerlessBench (SOCC'20) - This paper presents ServerlessBench, which is the first and state-of-the-art serverless benchmarks. The benchmark suite is open-sourced at github. The paper utilizes the benchmark suit to analyze several serverless platforms, including AWS lambda, OpenWhisk, Fn, and others, and proposes several new insights/implications that can lead future research works.
- Benchmarking, Analysis, and Optimization of Serverless Function Snapshots (ASPLOS'21) - This work introduces one system and one optimization. The system is vHive, an open-source and full-stack serverless framework. The framework is built based on several state-of-the-art infastructure, e.g., Firecracker. Besides, the paper proposes an optimization, called REAP, which is a software mechanism for serverless hosts that records functions' stable working set of guest memory pages and proactively prefetches it from disk into memory.
- Fault-tolerant and transactional stateful serverless workflows (OSDI'20) - The paper presents Beldi, a library and runtime system for writing fault-tolerant stateful serverless functions. Code available at github
- A fault-tolerance shim for serverless computing (Eurosys'20) - The paper presents AFT, an atomic fault tolerance shim for serverless functions. AFT ensures atomic visibility of updates by enforcing read atomic isolation guarantee.
- Formal Foundations of Serverless Computing (OOPSLA'19) - It is the best paper of OOPSLA'19, which presents formal model to analyze (and prove) the reliability of serverless computing.
- Peeking Behind the Curtains of Serverless Platforms (ATC'18)
- PIE: Confidential Serverless Made Efficient with Plug-In Enclaves (ISCA'21) - The paper presents PIE, a hardware extension on SGX to boost startup latency of enclaves to support serverless computing.
This section lists interesting applications/systems built upon serverless computing.
- Shuffling, Fast and Slow: Scalable Analytics on Serverless Infrastructure (NSDI'19) - This paper presents Locus, a serverless analytics system combines cheap but slow storage with fast but expensive storage to balance performance and costs.
- Sprocket: A Serverless Video Processing Framework (SOCC'18) - This paper presents Sprocket, a configurable, stage-based, scalable, serverless video processing framework that exploits intra-video parallelism to achieve low latency.
- Dorylus: Affordable, Scalable, and Accurate GNN Training with Distributed CPU Servers and Serverless Threads (OSDI'20) - This paper presents Dorylus, a distributed system for training GNNs by utilizing serverless computing. Dorylus can achieve even better performance and low costs than CPU and GPU-based systems.
- The serverless shell (Middleware'21) - This paper presents an interesting serverless applications, which is a shell (called sshell), that allow users to run shell scripts on a serverless platform. The sourced code is avialable at github.
- Kappa: a programming framework for serverless computing - Kappa proposes a new programming model for serverless computing, which utilizes checkpointing to support long running services, and reuse python features to manage concurrency. It is open-sourced at kappa and github-repo.
- Awesome Serverless - A curated list of awesome services, solutions and resources for serverless / nobackend applications.
- awesome-serverless-security - A curated list of awesome serverless security resources such as (e)books, articles, whitepapers, blogs and research papers.