For more info on the functionality, see the Bachelor's Thesis or the suceeding paper on Intent-based Management for the Distributed Computing Continuum.
The datasets in the Datasets directory are used to determine, which load there will be on the system at a given point in time. Further information can be found here.
- Docker
- Docker Hub Account (for AWS - if you want custom images)
- AWS (for AWS)
- Complete the steps given in the BT to set up the SQS queue, the Lambda function and the IAM Roles (for AWS)
- Clone the repository
- Build via
make build
- Change into the
docker
directory - Make sure that the output files specified in the respective
docker-compose-simulate-<SIMULATION>.yml
as volumes exist - Adjust the simulation parameters in the same file
- Initial intents that are specified at the start
- Number of devices at the beginning
- More simulation parameters e.g. jitter for data generation
- Start only RabbitMQ via
docker-compose -f docker-compose-simulate-<SIMULATION>.yml up -d rabbitmq
- After a brief period, start the whole simulation via 6. Start only RabbitMQ via
docker-compose -f docker-compose-simulate-<SIMULATION>.yml up -d
Note, that the dataset is also mapped via volume and that there exist two different datasets for the full simulation.
The Knowledge's REST API is located by default at localhost:11000
.
By default, the images provided by me nsp00
on Docker Hub will be used.
To change this behavior, change the image names in the respective docker-compose-aws.yml
file, build and push the images.
- Clone the repository
- Deploy the AWS Lambda function via
make deploy-lambda
- Specify initial intents and number of devices like locally. Jitter is not supported.
- Deploy to AWS ECS via
make aws-up
Also note, that currently there is no way of running the same simulation setup that is possible locally on AWS. All output values are random.
To locate and access the Knowledge's REST API, you need to find the DNS address of the load balancer.
Search for EC2 Load Balancer and find the one with the prefix ibsm-LoadBa-
.
When you access this address, you should be greeted by the Knowledge automatically.
The Swagger UI is located at <DNS>/swagger
, which can be used to test the API.