TimJanssen.dev
Published on

Green Software Practitioner

Authors

Introduction

So, end of August I decided to study and receive a Green Software for Practitioners Certification (it was free!) issued by The Linux Foundation. My eyes were opened to the possibilities and I was happy to see how much knowledge and effort was put into the material I needed to study in order to receive the certiciation. I look different at software after achieving this certification, and I see a lot of opportunities for software to become greener.

If you want to get started yourself and use the course's study material it is right here.

If you would like to, you can read up on my study notes down below or you can use them to your advantage when preparing. All in all the certification can be attained within a single day. So it's free, it is green, it is interesting, and does not take up a lot of your time to achieve!


Green software for practitioners

The three green software principles

  1. Energy Efficiency
    1. Consume the least amount of electricity possible
  2. Hardware Efficiency
    1. Use the least amount of embodied carbon possible
  3. Carbon Awareness
    1. Do more when the electricity is clean and less when it’s dirty

The course contains 6 key areas with which a green software practitioner should be familiar:

  1. Carbon efficiency: Emit the least amount of carbon possible.
  2. Energy efficiency: Consume the least amount of electricity possible.
  3. Carbon awareness: Do more when electricity is cleaner and less when electricity is dirtier.
  4. Hardware efficiency: Use the least amount of embodied carbon possible.
  5. Measurement: What you can’t measure you can’t improve.
  6. Climate Commitments: Understand the exact mechanism of carbon reduction.

The course also consists of:

  • Principles: The core set of competencies which are used to build green software.
  • Patterns, the way in which you can employ the principles in a vendor-neutral way.
  • Practices: A pattern which is employed in a vendor-specific product that informs how you can use the product in a more sustainable way.

Practices refer to patterns which refer to principles.

As a green software practitioner you are aware of the amount of energy your software uses in each step of the value chain. Besides that you are aware of how you can make sure as much energy as possible gets through from one step in the value-chain to the next. This also means that we will take a look at the end-user and see how we can make sure they do not emit anything unnecessarily.

Different types of low-carbon energy sources

  • Clean energy: Does not produce carbon, e.g. nuclear.
  • Green energy: Sources from nature.
  • Renewable Energy: Sources will not expire, e.g. Solar, Wind.

How to measure energy:

  • Energy is measured in joules (J).
  • Power is measured in Watts, 1 watt is 1 joule per second.
  • One kilowatt is therefore 1000 joules per second.
  • One kilowatt-hour is one kilowatt of power sustained for one hour.

Power Usage Effectiveness (PUE) is a measurement developed by Green Grid in 2006. It measures the amount of overhead you need for one IT watt. It is a number that shows how much power you need for one watt of IT-power. So lets say you need to cool your datacenter by using 0.5 watt for each watt you use for your IT, it means you have a PUA of 1.5.

Energy Proportionality

The relationship between the amount of energy being used and the speed at which it does useful work is called utilization.

Utilization measures how much of a computer its resources are being used. Normally it is assigned a percentage. The higher the percentage, the higher the use.

Static power draw

The static power draw of a computer is the amount of electricity it is using whilst idle. Because computers consume energy when idle, computers usually have hibernation modes or other power-saving modes. This is a trade-off however, because of the long boot time whenever you want to wake the computer up.

Servers are generally not configured for agressive or even minimal power saving. Servers need to respond to requests quickly. And demand shifts from time to time. An idle server has the carbon cost of both the embedded carbon as much as its ineffecient use.

Carbon Awareness

Carbon intensity

Carbon intensity measures the amount of CO2 equivalent (CO2e) is being emitted per KWh of used energy. It is expressed as qCO2e/KWh. When your computer is fully powered by a windmill or solar panel, the carbon intensity of its used energy is 0 gCO2e/KWh.

Dispatchability & curtailment

The demand for electricity is changing during the day. And the supply must always be able to meet the demand. Whenever there is not enough supply there is a brownout.

When using fossil fuels it is easier to balance supply and demand. Because it is easier to control the amount of energy being produced. This is called dispatchability. In the case of solar- and windenergy we sometime produce more of it than we need, which is called curtailment.

Marginal carbon intensity

If you suddenly need more energy because you want to turn on a light, than that energy comes from the marginal fuel plant. The marginal power plant is dispatchable, which means it is often fueled by fossil fuels.

Marginal Carbon Intensity is the carbon intensity of the fuel plant that should be employed to provide supply for each new demand.orzien.

Powerplants that make use of fossil fuels do not often scale back to 0. They need a minimal threshold to function. And some we cannot upscale, they are consistently on so they can provide us in our base need of electricity. Therefore, we sometimes have the scenario where we need to curtail renewable energy whilst we still consume energy from fossil fuel plants.

The energy market

When the demand for electricity goes down, a reduction must happen to balance the supply and demand. This is possible in two ways:

  1. Buy less energy from fossil fuel plants
    1. Energy from fossil fuel plants is usually the most expensive so this is the preferred method. This directly translates to burning fewer fossil fuels.
  2. Buy less electricity from renewable energy sources.
    1. Electricity from renewable energy sources is the cheapest, so they prefer not to do this. When a renewable source cannot sell all of its energy it has to throw the rest away.

The reduction of electricity being consumed by your applications can help you to reduce the carbon intensity (gCO2e/KWh), as the first thing to be scaled back is fossil fuels.

How to be more carbon aware

The best way to ensure that more money is invested in low-carbon plants is to use electricity when or where the carbon intensity is at its lowest. For example, you can decide to run daily cron jobs/backups at locations where the gCO2e/KWh is at its lowest.

Demand shifting

Being carbon aware means that you give an answer to the shifts of carbon intensity by increasing or decreasing your demand for electricity.

Research shows this can reduce CO2e by 45% tot 99%!

Demand shifting can take place in space and time.

Spatial shifting

Spatial shifting means that you move your compute to a different location where carbon intensity is the lowest. This means you move your compute to locations where the sun is shining, for example to a different hemisphere where it is not winter.

Temporal shifting

When you cannot move your compute from location to location you can opt to choose to execute code on different times of the day. We can make quite accurate predictions on what time of the day will be the least carbon intensive due to weather predictions.

Hardware Efficiency Principle

Embodied Carbon

The device on which you are reading this has had CO2e emissions when it was being made. This is called embodied carbon.

Amortization

The device you're using has a lifespan. We could say that if you emit 4000kg of CO2e for building a server, and you use it for 4 years, you are emitting 1000kg of CO2e per year. This is called amortization. Thus it makes sense to use a device for as long as possible before replacing it. And it makes sense to recycle its components to save CO2e emissions. And thus, it makes sense to make servers in a way that makes them easy to recycle.

How to improve hardware efficiency

  1. For end-users: it is extending the lifetime of the hardware
  2. For cloud computing: it is increasing the utilisation of the device

Conclusion

You must keep an eye on the CO2e emitted during the production and removal of a server as well as the CO2e it is emitting from being used to determine its total emission.

You can calculate the embodied carbon emissions of a server via a process called amortization.

Cloud computing is more efficient than on premise because the provider can scale to the needs of the client so a higher percentage of the server can be utilized.

Measurement Principle

The GHG Protocol

The GHG (Greenhouse Gas Protocol) distributes emissions across three scopes.

  1. Scope 1: The direct emissions from operations owned or controlled by the reporting organisation, such as on-site fuel combustions or fleet vehicles.
  2. Scope 2: Indirect emissions related to emission generation of purchased energy such as heat and electricity.
  3. Scope 3: Other indirect emissions for all the other activities you are engaged in. Including all emissions from an organisation’s supply chain: business travel for employees, and the electricity customers may consume when using your product

Scope 3 is also called value chain emissions, and it is the most significant source of emissions and the most complex to calculate for many companies,.

From the calculation of all emissions in each scope it is possible to calculate the total emissions of the world.

Software falls in scopes 2 & 3, or just in scope 3. Private and Hybrid cloud fall under scopes 2 and 3. Public cloud and frontends (browsers interacting with your product, or operating systems running your game) fall just in scope 3.

It is difficult to calculate scope 3 for software because 90% of enterprise software makes use of open source technology and it is not clear who is exactly responsible for calculating and reducing those emissions.

Total emissions however do not tell the complete story. To know if a project that should lead to a reduction in CO2e was succesful you also need to take a look at other metrics. Such as the carbon intensity. If this was 3.3g CO2e/user om Q1 and 2.9 CO2eq/user in Q2 you're sure that it was succesful.

Software Carbon Intensity Specification

The SCI method is developed by the Standards Working Group in the Green Software Foundation. Where GHG is concerned with the total emissions, SCI is concerned with the rate of emissions.

It distributes the emissions across two categories:

  1. Operational emissions (the emissions of running software)
  2. Embodied emissies (the emissions of the physical resources required for running software)

You cannot reduce your SCI score by purchasing offsets in the form neutralizations, compensations, or by offsetting electricity in the form of renewable energy credits.

If you make your application consume less energy, more efficient, or more Carbon Aware than your SCI score will become lower. The only way to do this is by spending resources towards reducing your emissions.

SCI berekenen

The following formula is used for calculating your SCI

SCI = ((E \* I) + M ) per R

E = Energy used by the software in kWh
I = CgCO2/kWh
M = Carbon emitted by the hardware that is running the software
R = Functionele unit, such as: per user, or per device

Steps to calculate SCI

  1. Decide what to include in the calculation
    1. Where does your software start and end? It's always good to mention because the software's scope can expand or shrink, which can impact your SCI score.
  2. Choose your functional unit
    1. SCI is a ratio, not a total. Therefore, you are free to choose your functional unit, such as per user or per server, based on how your software scales.
  3. Determine how to measure emissions
    1. You can measure or calculate emissions.
      1. Measurement means using counters.
      2. Calculation means indirectly counting through a model.
  4. Quantify
    1. Now you are ready to execute. You can calculate multiple SCI scores for the same application. For example, a streaming application might choose carbon per minute as a metric. Alternatively, it can calculate carbon per user per day or carbon per $ revenue.

Carbon Reduction Methodologies

There are several ways to reduce CO2 emissions

  1. Abatement: Eliminating sources of CO2 emissions associated with their operations and value chain. It is not possible to eliminate all CO2 emissions this way due to technological and economic constraints.
  2. Offsets: Direct investments in emission-reducing projects through the purchase of Carbon Credits on the voluntary Carbon Market (VCM). One credit is equivalent to 1 ton of CO2 absorbed or reduced. Positive outcomes can result from this project. To have the desired environmental effect, standards must be met, such as the Verified Carbon Standard (VCS) and Gold Standard (GS). This can affect your GHG but not your SCI, as it does not make your operation more efficient.
  3. Compensation / Carbon Avoidance: Compensations are actions that companies take to help society reduce or prevent emissions. This essentially involves investing in another company's abatement.
    1. Actions include: Conservation, Community Projects, Waste to energy.
  4. Neutralizing / Carbon Removal
    1. Neutralizations are actions that companies take to remove carbon from the atmosphere within or beyond their value chain.
      1. For example, by enhancing natural Carbon Sinks, such as planting forests.
      2. Direct air capture, by extracting CO2 from the air and storing it in products like concrete.
    2. It is important to mention how long it will be removed. Short-term = 100 years, Medium = 100 to 1000 years, Long = more than 1000 years.
    3. Never emitting CO2 is much better than emitting it and then trying to remove it from the atmosphere for 5000 years.

Carbon Neutral

To become carbon neutral, a company can measure its emissions and offset those without having to invest in eliminating the emissions.

The company needs to offset emissions from scope 1 and 2. Besides that it is expected that a company also offsets business travel from scope 3, although it is not a requirement.

Becoming carbon neutral is a significant first step for any company because it requires measuring your emissions. There are however not enough carbon offsets in the world for all the emissions made by companies.

This is why any strategy that does not include abatement will nog scale or help the world to get to the 1.5 degrees in the Paris Climate Agreement. This is why there is Net Zero.

Net Zero

Net Zero means you reduce your emissions according to the most recent climate science and the remainder is being reduced via carbon removals (called neutralizations).

The big difference with Carbon Neutral is that Net Zero's focuses on abatement instead of neutralization and compensation.

The Net Zero strategy means that the absolute amount of CO2e in the atmosphere remains constant.

To become Net Zero you have to cover scopes 1, 2 and 3.

SCI as part of the net-zero strategy

SCI helps organisations to eliminate emissions from software. Therefore SCI is an essential component of each net-zero strategy.