All Projects → ServerlessBench → ServerlessBench

ServerlessBench / ServerlessBench

Licence: other
The project now is moved to github.com/SJTU-IPADS/ServerlessBench. An open-sourced benchmark suite for serverless computing

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
shell
77523 projects
M4
1887 projects
TeX
3793 projects
assembly
5116 projects

Projects that are alternatives of or similar to ServerlessBench

terraform-google-scheduled-function
Sets up a scheduled job to trigger events and run functions
Stars: ✭ 55 (+161.9%)
Mutual labels:  serverless-computing
netlify-cms-oauth-provider-node
A stateless external OAuth provider for netlify-cms with built-in support for Vercel serverless functions
Stars: ✭ 30 (+42.86%)
Mutual labels:  serverless-functions
openwhisk-runtime-go
Apache OpenWhisk Runtime Go supports Apache OpenWhisk functions written in Go
Stars: ✭ 31 (+47.62%)
Mutual labels:  serverless-functions
openfaas-rust-template
An OpenFaaS template for writing functions in Rust
Stars: ✭ 29 (+38.1%)
Mutual labels:  serverless-functions
openwhisk-runtime-docker
Apache OpenWhisk SDK for building Docker "blackbox" runtimes
Stars: ✭ 23 (+9.52%)
Mutual labels:  serverless-functions
faas-sim
A framework for trace-driven simulation of serverless Function-as-a-Service platforms
Stars: ✭ 33 (+57.14%)
Mutual labels:  serverless-computing
Openwhisk Deploy Kube
The Apache OpenWhisk Kubernetes Deployment repository supports deploying the Apache OpenWhisk system on Kubernetes and OpenShift clusters.
Stars: ✭ 231 (+1000%)
Mutual labels:  serverless-functions
openwhisk-runtime-python
Apache OpenWhisk Runtime Python supports Apache OpenWhisk functions written in Python
Stars: ✭ 39 (+85.71%)
Mutual labels:  serverless-functions
openwhisk-catalog
Curated catalog of Apache OpenWhisk packages to interface with event producers and consumers
Stars: ✭ 30 (+42.86%)
Mutual labels:  serverless-functions
yap
Open source API Gateway on GraphQL for serverless. Less code, safer API. 💪
Stars: ✭ 105 (+400%)
Mutual labels:  serverless-functions
lamba-thumbnailer
AWS S3 Video Thumbnailer with Lambda
Stars: ✭ 21 (+0%)
Mutual labels:  serverless-functions
deno serverless aliyun
为阿里云 serverless 平台添加 Deno Runtime
Stars: ✭ 60 (+185.71%)
Mutual labels:  serverless-functions
serverless-fission
Use Fission through Serverless Framework https://serverless.com
Stars: ✭ 19 (-9.52%)
Mutual labels:  serverless-functions
iopipe-js
Build and run serverless apps with confidence on AWS Lambda with Tracing, Profiling, Metrics, Monitoring, and more.
Stars: ✭ 33 (+57.14%)
Mutual labels:  serverless-functions
serverless-aws-static-file-handler
Easily serve static files with the Serverless Framework on AWS Lambda.
Stars: ✭ 43 (+104.76%)
Mutual labels:  serverless-functions
openwhisk-package-kafka
Apache OpenWhisk package for communicating with Kafka or Message Hub
Stars: ✭ 35 (+66.67%)
Mutual labels:  serverless-functions
IPFS PHOTO SHARE
💰用甚嚒服务器,ServerLess搭建一个图片分享站点!| 基于CloudFlareWorker无服务器函数和IPFS去中心化存储的图片分享网站
Stars: ✭ 76 (+261.9%)
Mutual labels:  serverless-functions
tencent-tensorflow-scf
A template project for serverless functions for Tensorflow inference on Tencent Cloud.
Stars: ✭ 38 (+80.95%)
Mutual labels:  serverless-functions
netlify-stripe-subscriptions
An example of managing subscriptions with the Stripe Customer Portal and Netlify Identity.
Stars: ✭ 96 (+357.14%)
Mutual labels:  serverless-functions
netlify-lambda-function-example
An example Netlify Lambda function that processes payments with Stripe.
Stars: ✭ 93 (+342.86%)
Mutual labels:  serverless-functions

ServerlessBench logo

ServerlessBench

This is an anonymous repo for Serverless Bench (submitted paper).

A benchmark suite with serverless workloads.

Test Cases

Testcase1: varied resource needs

This test case features a CPU-intensive Alu application with two execution phases: in the first phase, it connects to S3 and requests for a number N (Load configuration phase); in the second phase, 100 threads are spawned to conduct arithmetic calculations and loop for N times (Compute phase).

The workload is basically built by aws sam-cli.

We provide two versions of the application to compare their needs on resources:

  • a together version (together.py), in which the application runs as a single serverless function;
  • a splitted version, in which the application is splitted into two serverless functions (keyDownloader.py and alu.py) in a function chain. Each of the function handling one of the execution phase, respectively.

keyDownloader downloads the file named "loopTime.txt", which stores a number as the loop time that alu function does the calculation. You need to modify the bucketName to the name of the bucket where you stores "loopTime.txt". defaultKey is the default name of the file "loopTime.txt"

Testcase2: Parallel composition

This test case features a CPU-intensive Alu application with parallelizable core handling logic. Three versions are presented to analyze parallelization in serverless computing:

  • no-parallel version (sequential.py), with no parallelization;
  • instance-parallel version (parallel.py, doAlu.py), with multiple function instances executing concurrently; You need to modify the AluFunctionArn to the arn of the alu function (doAlu.py)
  • in-function-parallel version (infunction.py), parallelization with multithreading in a single function.

The workload is basically built by AWS sam-cli

Testcase3: Long function chain

This test case includes the Array Sum application which is a serverless application with a configurable number of chained functions.

Two versions of the application are provided, implemented with the sequence function chain method (in Sequence-chained folder) and the nested function chain method (in Sequence-nested folder), respectively.

Testcase4: Application breakdown

This test case includes four real-world serverless applications: Image processing, Alexa skill, Online-compiling, and Data analysis.

Details of these applications are presented int the README of the test case.

Testcase5: Data transfer costs

This test case presents a Node.js serverless application which transfers images with different sizes (the payload size) between two functions.

We provide the application to be evaluated on three serverless platforms: OpenWhisk, Fn, AWS Lambda.

The chain on the three platforms are implemented with OpenWhisk’s Action Sequence, Fn flow, and AWS Step Functions, respectively.

As per the payload size restriction (32KB when we refer in May 2020) on AWS Lambda, for payload data larger than 32KB in AWS Lambda, the payload is uploaded to S3 in the first function before it finishes, and the second function download the data before it starts the handling logic.

Testcase6: Startup breakdown

This test case includes serverless functions with different language runtimes.

Testcase7: Sandbox comparision

A simple Hello function and a more complex serverless function are provided in C, Java, Python, Ruby, and Node.js.

These applications can be used to evaluate the startup performance with different language runtimes in different sandboxes.

Testcase8: Function size

The application consists of Python functions with varying package sizes, constructed by packing the handler codes with different numbers of dependency packages.

Specifically, four popular PyPI packages (mypy, numpy, django, and sphinx) of sizes between 10–23MB are added into the function package accumulatively, producing function packages of sizes: 22.7MB (with mypy), 44.1MB (with mypy and numpy), 54.4MB (with mypy, numpy, and django), and 72.6MB (with all four packages).

Testcase9: Concurrent startup

Simple Hello functions in C and Java are provided to evaluate the startup latencies when invoked concurrently.

Testcase10: Stateless costs

An ImageResize function is provided to analyze the impact of losing implicit states (e.g. JIT profiles) in serverless computing's "stateless" nature.

When requests are issued subsequently, the sandbox and JVM environment is shared across requests; when requests are issued concurrently, the requests are handled in auto-scaling manner and the implicit states are lost across requests.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].