-
Notifications
You must be signed in to change notification settings - Fork 6
This component is polling data from the metrics component. It must be able to trigger scaling actions when user defined conditions ("rules") are met.
Must expose an UI for the user to create the rules.
A scaling rule is a set of one or more metrics conditions, such as:
- http requests / sec > 30000 on the frontend service
- http session rate on the frontend service
It should retrieves service definitions from the service registry.
When a rule condition is met, the component must either send a notification or trigger a scaling action or both.
It uses adapters to communicate with others services.
For now, only the following adapters exists for each components:
- metrics: Prometheus adapter
A Consul adapter to communicate with the service registry should be added.
It must be able to register genisys components either at startup or at runtime. If no genisys components are available, the central-core component will not be able to send any action (read-only mode).
The component could expose a HTTP API to manage genisys resources.
This component is in charge of managing the compute resources.
It should retrieves service definitions from the service registry.
This component should receive scaling requests with a specified number of resources required for the service.
This request can optionally specify a compute resource where the service should be scaled. If the compute resource is not specified, the component must be able to determine where the service will be scaled (either in one or multiple compute resources).
It uses adapters to communicate with the compute resources component (providers such as Docker, AWS, VMWare Vsphere...).
For now, only the following adapters exists:
- genisys connector for Docker
Each connector is in charge of defining a service compute resource associated to the provider, such as container image for Docker, VM template for VMWare...
The component exposes a HTTP API to manage the adapters.