HotFunctions

A micro FaaS framework and tools to test performance of load balancing algorithms. Consists of 5 parts like described in below:
- Worker front: Codes for the worker node to run the user functions in the Docker container.
- Load balancer: Codes for distributing requests to multiple worker nodes
- Simulator: Codes to run a simulation with load balancer
- Sample functions: Pre-defined user functions to run a simulation
- Utils: Utilities like generating simulation scenario or analyzing the result.
Getting Started
Prerequisites
- Golang >= 1.13 (Since we use
gomod
for dependency control, at least 1.11 is required) - Docker (Functions are running in the Docker container)
Step1: Configure a worker node (or worker nodes)
$ cd worker_front
$ go run *.go start
You can see the details in worker front page.
After configuration, visit http://localhost:8222/execute?name=W1 to test worker node.
Our framework supports 30 different functions. You can see the detail of the supporting sample functions in sample functions page.
Step2: Configure a load balancer
$ cd load_balancer
$ go run *.go rr|ll|ch|pasch|ours
You can also see the details on load balancer page.
After configuration, visit http://localhost:8111/execute?name=W1 to test load balancer.
Note that you should not close the worker node while running the load balancer.
Step3: Run simulator and analyze result with utils
Follow the "How to run" section on simulator page. After the simulation is finished, utils for analyzing the logs are prepared on utils.