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.
- Golang >= 1.13 (Since we use
gomod
for dependency control, at least 1.11 is required) - Docker (Functions are running in the Docker container)
$ 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.
$ 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.
Follow the "How to run" section on simulator page. After the simulation is finished, utils for analyzing the logs are prepared on utils.