A full-day tutorial, co-located with the ASPLOS'22 conference, is going to take place in Lausanne, Switzerland on March 1. The tutorial will be in a hybrid format (both in-person and virtual) and will cover both the serverless cloud foundations and the vHive ecosystem and include several hands-on sessions. In this tutorial, the participants will learn how to analyze performance of commercial and open-source clouds as well as how to experiment and innovate across serverless stack using vHive. For more information, please visit the tutorial webpage.
vHive aims to enable serverless systems researchers to innovate across the deep and distributed software stacks of a modern serverless platform. Hence, we built vHive to be representative of the leading Function-as-a-Service (FaaS) providers, integrating the same production-grade components used by the providers, including AWS Firecracker hypervisor, Cloud Native Computing Foundation's Containerd, and Kubernetes.
vHive adopts the Knative flexible programming model, allowing the researchers to quickly deploy and experiment with any serverless applications that may comprise many functions, running in secure Firecracker microVMs, as well as serverfull services. Both the functions and the stateful services can be deployed using OCI/Docker images.
vHive empowers systems researchers to innovate on key serverless features, including functions autoscaling and cold-start delay optimization with several snapshotting mechanisms.
vHive has added support for the state-of-the-art extension eStargz to container layers and lazy pull support for container images.
The details of the vHive architecture can be found in our ASPLOS'21 paper (extended abstract, full paper).
Currently, vHive supports 3 types of sandboxes for functions, namely Firecracker MicroVMs (default), gVisor MicroVMs, and Containerd containers (as in vanilla Knative).
- Slides from Dmitrii's talk at AWS on Feb, 4th 2021.
- ASPLOS'21 talks on YouTube: short, long.
- Serverless and vHive tutorial series
- Upcoming serverless computing workshop at EuroSys 2023 website
If you decide to use vHive for your research and experiments, we are thrilled to support you by offering advice for potential extensions of vHive and always open for collaboration.
Please cite our paper that has been recently accepted to ASPLOS 2021:
@inproceedings{ustiugov:benchmarking,
author = {Dmitrii Ustiugov and
Plamen Petrov and
Marios Kogias and
Edouard Bugnion and
Boris Grot},
title = {Benchmarking, Analysis, and Optimization of Serverless Function Snapshots},
booktitle = {Proceedings of the 26th ACM International Conference on
Architectural Support for Programming Languages and Operating Systems (ASPLOS'21)},
publisher = {{ACM}},
year = {2021},
doi = {10.1145/3445814.3446714},
}
vHive can be readily deployed on premises or in cloud, with support for nested virtualization. We provide a quick-start guide that describes how to set up an experiment with vHive.
We provide a basic developer's guide that we plan to extend in future. We encourage the community to contribute their analysis scenarios and tools.
You can view the vHive documentation here.
vHive is a community-led project, maintained by the EASE lab. The current roadmap is available and is going to be updated to accommodate the community's goals and evolution. To guarantee high code quality and reliability, we deploy fully automated CI on cloud and self-hosted runners with GitHub Actions.
The statistics of this repository's views, clones, forks is available by the following link.
We would be happy to answer any questions in GitHub Issues and encourage the open-source community to submit new Issues, assist in addressing existing issues and limitations, and contribute their code with Pull Requests. Please check our guide on Contributing to vHive if you would like contribute. You can also talk to us in our Slack space.
vHive is free. We publish the code under the terms of the MIT License that allows distribution, modification, and commercial use. This software, however, comes without any warranty or liability.
The software is maintained at the EASE lab in the University of Edinburgh.
- High-level architecture, issues and discussions on GitHub, roadmap: Dmitrii Ustiugov (GitHub, twitter, web page);
- Integration with firecracker-containerd Plamen Petrov;
- Integration with Knative: Shyam Jesalpura