Apidays Singapore 2024 - Application and Platform Optimization through Power Analysis with Kepler by Philippe Benedetti (Palo IT) and Balakrishnan B (Red Hat)

APIdays_official 57 views 19 slides May 02, 2024
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

Application and Platform Optimization through Power Analysis with Kepler
Philippe Benedetti, Head of Application Development - Palo IT
Balakrishnan B, Principal Architect - Red Hat

Apidays Singapore 2024: Connecting Customers, Business and Technology (April 17 & 18, 2024)

------

Check out our...


Slide Content

Application and Platform optimization
through poweranalysis with Kepler
Balakrishnan B-Principal Architect –Red Hat
Philippe Benedetti –Head of application development –Palo IT

Who are we?
Introduction
Philippe Benedetti
Head of application development
------------------
PALO ITis an Agile software development
consultancy dedicated to helping
organisations in Singapore and across the
world embrace tech as a force for good.
Balakrishnan
Principal Architect
------------------
Red Hatis the world’s leading provider of enterprise open
source software solutions around hybrid cloud
infrastructure, cloud native application development,
management and automation solutions.
Award-winning support, training, and consulting services
make Red Hat a trusted adviser to the Fortune 500.

Introduction and Context

Energy consumption of digital sector is growing
Introduction and Context
According to Gartner, “ ACM
technology brief estimated that the
information Tech sector is between
1.8% and 3.9% of global carbon
emissions”
Cloud energy consumption is growing
exponentially
Governments are requesting
companies to report their AI-Based
workloads energy consumption.
4%

Cloud providers energy consumption reporting not mature
Introduction and Context
Difficulty to
attribute
Difficulty to
gather data
Difficulty to
measure
How to attribute power on share
resources to processes, containers
or Pods?
How do we ensure data collection is
exhaustive and correct?
How do we standardise the data collected
from a Multi cloud infrastructure?
How to measure energy consumption
indirectly?
How to measure energy consumption
of workloads?

What is Kepler?

Kubernetes-based Efficient Power Level Exporter
What is Kepler?
Keplerhelps in monitoringvarious performance counters,
kernel scheduling parameters, and system configurations to
exposeenergy consumptions by each container and Pod,
through Prometheusmetrics provider API.
These metrics can be used for customer sustainability
reporting, or by OpenShift controllers to optimize workload
scheduling and configuration to achieve energy
conservation goals.

Cloud native sustainability stack
What is Kepler?
Power Exporter
(main repository)
Model Database
(saved trained models)Kepler Operator
Kepler Estimator
(to load trained power models)
CLEVER
(Container Level Energy-efficient VPA Recommended for Kubernetes)
PEAKS
(Power Efficiency Aware Kubernetes Scheduler)
Label Exporter
(to aggregate metrics)
Model Server
(power model creator)

Kepler growing Community
What is Kepler?
Githubrepository
https://github.com/sustainable-computing-io/kepler
CNCF Sandbox
And more…
As part of theLinux Foundation, we provide support, oversight and
direction for fast-growing,cloud native projects, including Kubernetes,
Envoy, and Prometheus.
Open Source project

What can we measure?
What is Kepler?
Container
Container Energy Consumption:
-Number of Joules
… total
… per Core (per CPU cores)
… per Uncore(level of cache, integrated GPU, memory controller)
… per GPU
Container Resource utilization (using hardware counters):
-CPU time used by the container
-CPU cycles used by the container
-CPU instructions used by the container
-Total cache miss that has occurred for a container
Similar metrics are available at Node Level.

How does it work?
What is Kepler?
1 –Collect data from
-Resource usage (using eBPF)
-Node Energy consumption
2 –Leverage K8s API
-Convert Container ID to Pod
3 –Create and export as Prometheus metrics
4 –Visualise in Prometheus
When data points are not available, KELPER leverage ML models to estimate and attribute the consumption to relevant Pods,
workflows. The Power Estimation Modelingestimates a power by using usage metrics as input features of the trained model.
Measure vs Estimate

How can Kepler help with green software
practices around code efficiency and
platform optimization?

Kubernetes cluster
deployed using OpenShift
Demo environment
Data collection process
visualized in Prometheus

Application optimization
Demo 1
-Simple Spring Boot app rewritten in Quarkus
-Run load on the app
-Compare compute and power efficiency between the apps
Optimise application power usage

Demo 1: Application optimization

CONFIDENTIAL designator
Information Classification: CONFIDENTIAL (sensitive business information, the level of protection is dictated by legal agreements)
Platform optimization
Demo 2
Auto reschedule app to a power efficient node
based on power consumption
-Custom scheduler monitors node power metrics
-Reschedule app to a node with least power consumption
-Scale up/down the app pods based on power metrics

CONFIDENTIAL designator
Information Classification: CONFIDENTIAL (sensitive business information, the level of protection is dictated by legal agreements)
Demo 2: Platform optimization

Thank you
https://github.com/sustainable-computing-iohttps://sustainableco-ese6814.slack.com/archives/C02VCJ8K8LT