refunction

module
v0.0.0-...-89d5bac Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2020 License: AGPL-3.0, AGPL-3.0-or-later

README

refunction

Build Status

The next generation of cloud hosting is known as serverless or function-as-a-service (Faas). The popularity of these easily deployable and infinitely scalable functions has skyrocketed since AWS announced their Lambda service in 2014. One primary concern regarding the performance of these functions is the effect of “cold starts”. A cold start is the time it takes to boot a new container when the platform needs to increase its capacity for that function.

We investigate the possibility of restoring function containers as an alternative to starting new containers.

Our method focuses on Linux process primitives. We store and modify state such as raw memory and registers in order to reset the process to the way it was before the user’s function was loaded. We discuss how to ensure temporal isolation in order to provide security guarantees in such a system. We find that it is possible to restore container processes in a variety of runtimes. Using this approach can decrease the effect of cold starts by up to 20x and increase the overall throughput of such systems.

The full report can be found here

Get started on minikube

 minikube start \
    --container-runtime=containerd \
    --network-plugin=cni \
    --enable-default-cni \
    --cri-socket=/tmp/refunction.sock \
    --extra-config=kubelet.container-runtime=remote \
    --extra-config=kubelet.container-runtime-endpoint=unix:///tmp/refunction.sock \
    --extra-config=kubelet.image-service-endpoint=unix:///tmp/refunction.sock

Then:

$ minikube ssh
$ curl https://refunction-cri.s3.amazonaws.com/cri -o cri && chmod +x cri
$ sudo ./cri

Directories

Path Synopsis
controllerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
cri
service/api/refunction/v1alpha
Package refunctionv1alpha is a generated protocol buffer package.
Package refunctionv1alpha is a generated protocol buffer package.
service/servicefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
funker/funkerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
messages/messagesfakes
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL