by Huamin Chen, Senior Principal Software Engineer, Red Hat
For many, the term “sustainability” evokes images of reusable water bottles, paper straws and household compost bins. Or perhaps you envision “reduce, reuse, recycle” posters and canvas tote bags at your local farmer’s market–but maybe not data centres, right? As sustainability has become a cornerstone of many government policies, enterprise initiatives and consumer trends, tech leaders have been hard at work building technologies dedicated to helping users monitor how their software usage might drive energy consumption.
In recent years, the rapid growth in workloads handled by data centres has resulted in greater energy usage, increasing 10-30% per year, and accounting for 1-1.5% of global energy consumption, as reported by the International Energy Agency. In order for enterprises to make a meaningful environmental impact, it has become critical for IT leaders to take a harder look at the efficiency of their equipment and the tools they use to evaluate the sustainability of their data centers1.
Enter: Kepler
Kepler, or Kubernetes-based Efficient Power Level Exporter, is a project founded by Red Hat’s emerging technologies group with early contributions from IBM Research and Intel. It is a community-driven, open-source project that captures power-use metrics across a wide range of platforms, focusing on reporting, reduction and regression so enterprises can better understand energy consumption.
Kepler utilizes proven cloud-native methodologies and technologies–such as extended Berkeley Packet Filter (eBPF), CPU performance counters and machine learning models–to estimate power consumption by workloads and export them as metrics. These metrics are then used for scheduling, scaling, reporting and visualization, which arms system administrators with information on the carbon footprint of their cloud-native workload.
The Kepler Model Server continually adjusts and fine-tunes its pre-trained models using node data from Kepler’s power-estimating agents. This is how Kepler adapts its calculations to best serve the user’s unique systems and needs. With the knowledge gained from Kepler, enterprise decision-makers can better assess how to optimize energy consumption, address evolving sustainability needs and best reach their organization’s goals.
The future with Kepler
Future innovations in sustainability develop faster with open-source community collaboration and an upstream-first mindset. With this in mind, Red Hat is in the process of contributing Kepler to the Cloud Native Computing Foundation Sandbox, where contributors explore how to integrate Kepler into their own use cases.
Kepler can enable a host of new innovations in the open-source community that allow service providers to better observe, analyse, optimize and document power consumption of cloud-native applications, including:
-
Power consumption reporting
Kepler metrics are a time series–they can be used to build dashboards that present power consumption at a variety of levels, including containers, pods, namespaces or different compute nodes in the cluster. -
Carbon footprint
Kepler’s energy consumption metrics can be coupled by the user with its data centre’s power usage effectiveness (PUE) and electricity carbon intensity to calculate the estimated carbon footprint of the workload. -
Power-aware workload scheduler and auto-scaling
Kepler metrics can be utilized by a Kubernetes scheduler to place the upcoming workload on the compute node that is projected to improve performance per watt, ultimately reducing the cluster-level power consumption. Similarly, Kubernetes auto-scalers can use Kepler’s power consumption metrics in auto-scaling algorithms to determine the resources needed to achieve better energy efficiency. -
CI/CD pipelines
Kepler can also be used in the software development lifecycle to help produce more sustainable software products. For instance, Kepler can be deployed in continuous integration and continuous development (CI/CD) pipelines for software testing and release. Kepler’s power consumption metrics can help developers measure, analyse and optimize software stacks.