Kubernetes

An introduction to Aknostic new tool: the Kubernetes Emissions Insights Tool 

Published on

Jasper Flavia

Welcome to the introduction of Aknostic's new tool: Kubernetes Emissions Insights Tool. Currently being developed by Flavia Paganelli, and Jasper Geurtsen, this tool aims to empower developers and businesses by measuring the environmental impact of their cloud usage, from energy consumption to carbon emissions and hardware manufacturing. By providing insights into these metrics, Kubernetes Emissions Insights Tool enables users to make informed decisions to reduce their carbon footprint and improve sustainability in their cloud operations. Julie Chenadec sat down with Flavia and Jasper to capture the essence of the tool and its purpose.

Let's start with an introduction to the Kubernetes Emissions Insights Tool. Can you give us an overview of what inspired the development of the Kubernetes Emissions Insights Tool? What are the primary goals and motivation?

We are a cloud-native consultancy company that works with Kubernetes daily. One of our missions with Aknostic is to impact the environment positively. We realize that the only way to do this is to have an idea or a measurement of our current footprint. 

That's why we thought we needed a way to measure. There are many initiatives on different aspects, and by combining everything, we allow the users, the software developers, and the product managers to work with a way to understand their impacts so that they can make it better. When you show these numbers and explain how you arrived at them, you can also see all the aspects involved in those measurements. This allows you to make conscious choices in the future.

You talk about understanding the footprint and making conscious choices. Why is it important to measure the environmental impacts of cloud usage and its footprint? What challenges do companies currently face in this area?

Why is it important? Many statistics already show that around 3% of carbon emissions are generated by IT. And it's growing even more rapidly, especially with the development of new technologies like AI, which require a lot of computation. We generally want to help with that, but having a better idea is essential. What are the choices? Which impacts most in this footprint? How can we reduce it? Even when data center growth is tremendous, the carbon footprint grows proportionally. That's why we need to measure it. 

In Europe, companies are expected to disclose their environmental impact. Yet, the current tools and methods for monitoring such data within public cloud environments are inadequate. This leads to sparse and often substantially postponed emission reports.

For example, you can't easily determine which of your departments generates the most impact. It is difficult to obtain these numbers, especially if you're a busy company where perhaps security and cost reduction are your top priorities. We need to help people get easier access to these numbers and explain how it works. For example, it could help you realize that you would benefit from running some workloads during the day when the sun shines or when the wind blows, so you can use renewable energy (workload shifting). 

If you just receive a number for all your carbon emissions for the whole year, what can you do with that? Not much. You need to investigate where it comes from: Is it the hardware? Are there too many idle servers running? Could this be prevented next time? But this information is often unavailable.

Please explain how the Kubernetes Emissions Insights Tool measures carbon emissions and energy consumption in the cloud and how we will work together.

We are basing our reporting on the SCI - Sustainable Carbon Intensity - specification formula. It's an ISO standard that calculates the emissions of running software. It takes into consideration the running software and the energy that it consumes, as well as the energy intensity of the place where it’s run (meaning the carbon emissions that are generated by the production of this energy), and the embodied emissions, which are the emissions generated during manufacturing and disposal of the hardware on which the software is running. 

We are involved in a project where we work with data centers to understand the emissions of the data centers where the software is running. It’s a research and development project, but for now, we are considering the SCI formula, the truth on which we base the carbon emissions reporting. For example, to calculate the energy consumed by a particular workload running on a cluster, we use different tools like Kepler or Scaphandre, which allow you to either calculate or estimate the energy consumed based on AI models.

Using Kepler allows you to measure or estimate the energy consumption of software running in Kubernetes. For the carbon intensity of energy, there are APIs available. The one we use the most is ElectricityMaps. In Europe, where we have tried it, you know pretty accurately the current intensity of a specific country. Some research has been done on embodied emissions, and we're looking into different options, but this is still difficult to automate. 

Fortunately, several initiatives, like Boavizta, can provide this information on embodied hardware emissions. The idea is to tap into what's out there and what has already been done and try to automate as much as possible, which is quite challenging. Embodied emissions are a considerable part of the equation. You need to know which hardware you run, which parts are bare metal, and which are shared. It would be interesting if we could come up with conclusions like, “What is the impact of extending the life cycle of hardware? What are the impacts of reducing energy consumption by modifying the software versus running on highly optimized hardware?” These questions are complex nowadays. 

Back in the day, we ran software; we owned a server and knew everything about it. Now, you run your software in virtual machines in the cloud and share the hardware with other users. But how much of that hardware are you using yourself? What is your percentage of the shared impact? These are things that we need to understand. We are working on understanding more. We have to work with assumptions because you have to start somewhere.    

Even though it's difficult for us engineers, part of our work is to simplify, make assumptions, and make choices about how it has to be calculated. We also communicate these choices because they have consequences.

What insights can businesses gain from the Kubernetes Emissions Insights Tool, and how can these insights make actionable changes?

To quote Lord Kelvin, “If you cannot measure it, you cannot improve it.”

First, you need numbers and insights. If you have insights, then you can start improving. Having a baseline is crucial. If you want to improve, there are many concrete choices: move to another cloud region, stop development servers in the evening, and run workloads when there’s renewable energy available, if possible. Build KPIs and set business goals like “Let’s reduce our IT carbon emissions by X%.” So you finally can start discussing it, but it takes some effort to implement it, and you want to see results. 

Suppose you understand how your impact is distributed among your applications. In that case, you know which application to focus your efforts on or if most of your footprint comes from an application with very few users or is inefficient. We will start talking with some of our customers and discussing: “What do you want to see? What do you want to improve?”. Because every business is different.

The target audience consists of software developers, managers, and companies. How will the Kubernetes Emissions Insights Tool enable them to compare different applications and environments?

We are currently working on exporting the data using Prometheus. To help users understand their carbon footprint, we will start by developing dashboards showing the emissions of the different applications and cloud accounts. One use case would be to compare different releases of an application so that software developers can see if they have improved or worsened every time they make new changes. You could plot it as a trend line.

In one of the Working Groups from the Cloud Native Computing Foundation, Green Reviews, we are looking at the reporting on the emissions in every release of CNCF projects so you can see changes and ensure you don't regress.

How do you see the Kubernetes Emissions Insights Tool influencing the broader industry of Cloud Native, sustainability fields, and green clouds? 

It’s like your story with the bird (Humminbird story, EN). We're just bringing our little bit of water, and if other animals see that we are getting the water, they might want to join. We will try to join forces with everyone who is already working on it. This is the only way to create a better solution.

Increasingly, more people and companies have started measuring their impact, allowing them to become aware of the consequences of their work. Measuring emissions is not always a high priority for management, but if the tools are available, the cost of adoption decreases. Environmentally conscious engineers will more readily adopt these tools. Our tool is one such solution that can help with this.

What steps would you recommend for developers and businesses interested in reducing their environmental impact and footprint beyond using the plugin?

There are many compilations of best practices for software developers, front-end developers, and cloud engineers, for example, from the Green Software Foundation or the CNCF. There are accessible, useful, and practical, and a good starting point for improvement. It shouldn't be a one-time thing, but it's better if you incorporate it by design in your processes. A lot of documentation is out there to read. You could also take a course like the Green Software for Practitioners (from the Linux Foundation). 

Participating in events to exchange ideas and knowledge is an excellent learning method. Sustainability in IT is a new field in which we are all learning. Even though it’s a tough problem, it has the beauty that we are all pursuing the same goal. The best solutions come from the collaboration of diverse individuals, as combining different perspectives and expertise leads to innovative and impactful outcomes. By working together and sharing our ideas, we can tackle complex problems and make significant progress in sustainability.

So, join us in this journey to make the cloud more sustainable!

Happy birthday, Kubernetes!