Responsible of categorizing services into the system and improving QoS before and during the execution of a service
This development is part of the European Project mF2C.
The Service Manager provides a graphical user interface in https://localhost/sm/index.html
to register new services into the system and to launch service instances.
To register a new service, there are a set of required parameters that must be specified:
- Name: descriptive name of the service
- Executable name: specific name of the executable (e.g. hello-world)
- Type of executable: the type of application [compss, docker, docker-compose, docker-swarm, kubernetes]
- Agent type: the type of agent where the application must run [cloud, normal, micro]
- SLA template: a SLA template has to be selected for the service
And a set of optional parameters:
- Description: short description of the service
- Ports: required ports to run the service
- Number of agents: specific number of agents to run the service, if not specified, the service is launched in all available agents
- CPU architecture: type of architecture for the service to run [x86-64, ARM]
- Operating system: type of OS for the service to run [linux, mac, windows]
- Required resources: set of required resources (i.e. sensors) for the service to run
- Optional resources: set of optional resources (i.e. actuators) for the service to use
Once the service is registered, it will appear in the service catalog among with other registered services. The service can be launched in the system using the launch button or be deleted.
-
Endpoint
http://localhost:46200
-
GET
/api
-> returns the list of all services -
GET
/api/<service_id>
-> returns the specified service -
POST
/api
, DATAservice
-> submit new service -
GET
/api/{service_instance_id}
-> check QoS and returns the specified service instance -
Service definition example:
{ "name": "compss-hello-world", "description": "hello world example", "exec": "mf2c/compss-test:it2", "exec_type": "compss", "exec_ports": [8080, 8081], "sla_templates": [template1], "agent_type": "normal", "num_agents": 1, "cpu_arch": "x86-64", "os": "linux", "req_resource": ["sensor_1"], "opt_resource": ["sensor_2"] }
- Fixed issues with the GUI when registering services
- Added initial values for cpu, memory, disk, network when a service is registered
- Added the SLA template id when launching a service through the GUI
- Updated QoS enforcement to consider different guarantees for every service operation
- Updated SM-LM interface for the GUI
- Now QoS enforcement takes into account the number of agents used from service-instance instead from service.
- Updates logging in the QoS Enforcement.
- Fixes a bug in QoS enforcement when retrieving a service from a service-instance.
- Fixes a bug in QoS with SLA constraint parameters
- Fixes a bug when updating a
qos-model
into cimi.
- QoS Provider updated to work without
agreement
and withdevice_id
instead ofurl
in theagent
resource.
- Now if a service-instance has no valid agreement and the qos-model cannot be submitted, the QoS Provider returns 404.
- wget to docker image for health check
- Fixes long strings formatting in the GUI
- New library for the SSE client
- Checks if cimi is up before trying to connect to the event manager
- Improves the logs
- Now QoS enforcement supports subscription to the Event Manager
- Added a new call to Lifecycle when the expected execution time of a service is longer than the one specified in the agreement
- updated service definition
- shortened api endpoints