What is Green Software, and how does this emerging discipline help enable sustainable transformation?

Feb 09, 2024 | min read
By

Cristiano Manoel

Global warming and the climate crisis are a reality and undeniable challenges that require committed, synchronized, and collaborative action from countries, governments, companies, and civil society. In order to achieve the goal of keeping the global temperature below 2°C by 2050 compared to the pre-industrial era, and preferably within the limit of 1.5°C as per the Paris Agreement, everyone needs to do their part, as this is not the responsibility and challenge of a single entity.

According to the latest IPCC report and data from the climate clock, the worsening of the climate crisis caused by a substantial increase in greenhouse gas emissions (GHG) demonstrates that our window of time to act and make unprecedented progress in reducing global warming is practically closed. Therefore, we do not have time to wait or waste.

The Information and Communications Technology (ICT) sector has an increasingly significant role in global greenhouse gas (GHG) emissions due to the growing energy consumption, primarily generated from the burning of fossil fuels, with high carbon dioxide (CO2) emissions, about:

  • Production and manufacturing, use and disposal of server hardware and user devices
  • Operation of data centers, whether local or in the cloud
  • Data transmission networks
  • Storage and processing (CPU, GPU, TPU, NPUs, etc...) of data in general
  • Production and manufacturing, use and disposal of server hardware and user devices
  • Operation of data centers, whether local or in the cloud
  • Data transmission networks
  • Storage and processing (CPU, GPU, TPU, NPUs, etc...) of data in general

In this context, Green Software emerges as a discipline and type of sustainable technology that contributes to the reduction of environmental impact and also enables the resolution of sustainability problems and use cases in general.

With this framing and contextualization, let's explore Green Software.

What is Green Software?

According to the Green Software Foundation, "Green Software is an emerging discipline at the intersection of climate science, software design, electricity markets, hardware, and data center design."

In more direct terms, Green Software is software designed to be energy, hardware, and carbon-efficient. It is developed in an environmentally responsible and sustainable manner, with the objective of minimizing its negative impact on the environment.

This discipline is relatively new. In 2019, the Green Software Foundation was established and published an initial set of 8 principles. In 2022, the Green Software principles were updated based on community feedback and lessons learned. In 2023, the first edition of the State of Green Software report was launched. In the same year, the beta version of the Impact Framework was released, aiming to address the problem and challenge of measuring the environmental impact of software in a standardized and instrumented manner.

How Green Software is connected to the ESG agenda

Digital technology is an essential and powerful tool for delivering sustainable results at scale in a socially and environmentally responsible manner. In this context, ESG is a highly relevant governance framework for companies seeking to operate sustainably and profitably.

Green Software is connected to the ESG agenda through decarbonization promoted through the development of sustainable software (energy-efficient, low-hardware, and low-carbon emissions), as detailed further in the text. Thus, we contribute to achieving corporate carbon goals by reducing emissions originating from the software produced or purchased and used within companies' business value chains.

According to Gartner, sustainability technologies are among the top 10 trends for 2024, and by 2027, approximately 25% of CIOs' compensation will be related to the impact of their sustainable technology strategies.

The challenge here is to deliver high business performance, innovation, and differentiation aligned with organizational sustainability goals through the principles, standards, and best practices of Green Software and other digital capabilities such as DevOps, SRE, FinOps, etc.

Principles of Green Software explained

The presented principles are intentionally broad, generic, and agnostic. They are designed to guide CTOs, CIOs, lead architects, SREs or DevSecOps engineers, product managers, developers, testers, and UI/UX designers, as well as organizations in making decisions throughout the software lifecycle, from design, development, deployment, operation, to eventual obsolescence.

According to the GSF, the principles are as follow:

Energy efficiency: Consume the least amount of electricity possible

Energy is produced from different sources, some of which emit high levels of carbon into the atmosphere. Fossil fuels, such as oil, coal, and gas, are examples of high-carbon intensity sources, while renewable energy sources, such as solar, wind, hydro, and nuclear, are renewable and low-carbon alternatives.

When we understand that the electricity consumed by mobile or web application software, AI, blockchain, or machine learning comes from different sources of energy through the power grid, it becomes clear that electricity is an indicator of carbon, as its production has carbon emissions depending on the source. As a result, companies must prioritize energy efficiency to reduce carbon emissions and minimize the environmental impact of their applications.

It is important to note that while the energy transition is underway, we do not have 100% clean energy sufficient to ensure global energy security. This further reinforces the importance of observing this principle, the standards, and best practices to create or optimize software so that it consumes the least possible amount of energy and thus reduces the carbon footprint of our applications.

Hardware efficiency: Use the least amount of embedded carbon possible

There are two important concepts to understand, listed below:

  1. Incorporated or embedded carbon: the amount of carbon pollution emitted during a device's life cycle. Different end-user devices, such as desktops, laptops, etc., have varying levels of embedded carbon. The manufacturing process emits significantly more carbon than during use, so a device can emit carbon even when it's not consuming electricity.
  2. Amortization: a method for determining the amount of embedded carbon emitted over the expected lifetime of a device. For example, if building a computer emits 2000kg CO2eq and is expected to last four years, then the device emits 500kg CO2eq per year.

To improve hardware efficiency, there are two approaches:

  1. Extend the hardware's lifespan: normally, hardware is retired or becomes obsolete when it breaks or can no longer process modern workloads. As leaders and software developers, we can use green software techniques to build applications that run on older hardware, thus extending its lifespan.
  2. Increase resource utilization: local data centers often reserve computational capacity to handle peak demands and avoid performance issues, but this approach is not hardware-efficient. A more effective solution is to utilize a public cloud to scale workloads up or down using automatic scalability features, increasing server utilization and avoiding energy waste.

Carbon Aware: Do more when electricity is clean and less when it is dirty

The central idea of this principle is to do more (utilize more energy and computational resources) when there is more energy coming from sources with low carbon intensity and do less (save energy) when there is more energy coming from sources with high carbon intensity.

There are 2 approaches considered to be best practices:

  1. Shifting demand: Moving your computing resources and energy consumption to different locations (regions and zones) or periods of the day where carbon intensity is lower.
  2. Demand modeling: Adapting energy consumption around the variability of carbon intensity to consume more during periods of low intensity and less during periods of high intensity.

Being conscious of carbon means understanding that the energy you consume doesn't always have the same impact in terms of carbon intensity.

Common questions about the adoption journey

The translation for "By where to begin?" in en-US is "Where should I start?"

What is the legislative scenario regarding the regulation of Green Software?

Who should be responsible for this topic within my company?

What are the design criteria for having a green tech stack (frameworks, programming languages, infrastructure, persistence, hosting, etc...)?

How to measure the carbon emissions of my current workloads?

How does Green Software help reduce infrastructure costs?

What type of architecture (monolith, microservices, serverless, etc...) is the most energy-efficient?

I have millions of lines of code in a programming language that is not energy-efficient and written inefficiently. What is the best engineering strategy to address this?

What is the best approach (refactoring, restructuring, re-platforming, etc.) to address technical problems, opportunities, and/or technical debts of green software in my legacy code without losing business agility?

How can the capabilities of Green Ops, DevOps, SRE best practices, and FinOps help to develop software sustainably, with operational efficiency and high productivity?

How to connect Green Software with developer experience and developer velocity goals?

How to evaluate the current maturity level of my teams in Green Software?

How do we define a strategic roadmap for Green Software?


Before you go

If these questions represent doubts or priorities, and you are in a hurry to answer them, find out how we support our clients on this journey.

References


Foto de Cristiano, homem negro careca de camisa branca e sorriso leve.

Cristiano Manoel

Head of Technology