An open-source software application that contains the brownout controller to control and monitor the brownout-enabled edge cluster.
The software application includes,
- Brownout Controller - Developed using Go
- API for the Brownout Controller - Developed using Go client for Kubernetes
A novel strategy that utilizes Brownout, a container orchestration-based approach for optimizing energy efficiency on the edge while maintaining Quality of Service (QoS). Our proposed approach consists of an analytical model that predicts the edge cluster’s current power consumption and a brownout controller, which activates and deactivates containers based on container selection policies and QoS requirements. The experiment results of the developed Brownout Controller equipped with the Node Idling Selection Policy (NISP) demonstrates that our approach is able to achieve a power saving of 34% while maintaining QoS.
The Brownout controller is the most critical component in the system for reducing power consumption. It consists of 4 components.
- Brownout Activator.
- Brownout Algorithm.
- Container selection policies.
- Actuators.
Once activated by the Brownout Activator, the Brownout Algorithm employs one of the container selection policies to determine the containers that should be deactivated in order to reduce power consumption in the edge cluster while maintaining QoS. The deactivation is done by ensuring that the power consumption is not beyond the upper power threshold calculated (𝑃𝑢𝑡) based on 𝐴𝑆𝑅 and policy constant. Here, the accepted success rate (ASR) and the minimum accepted success rate (MASR) should be provided by the user. Finally, the actuators implement the output configuration of containers by activating/deactivating optional containers on the edge cluster. Overall, the Brownout Controller continuously monitors the cluster and activates/deactivates containers to reduce power consumption while maintaining the success rate between 𝐴𝑆𝑅 and 𝑀 𝐴𝑆𝑅.
The Brownout Controller uses one of the below container selection policies. This can be given as an environment variable.
- LUCF - Least Utilized Container First Policy
- HUCF - Highest Utilized Container First Policy
- RCSP - Random Container Selection Policy
- NISP - Node Idling Selection Policy
The software client exposes an API to access the Brownout Controller. The BonE Dashboard accesses the controller through this API.