The global average temperature in 2022 was about 1.15 °C above the 1850-1900 average. The level of warming expected by the end of this century will continue to rise if we don’t stop global warming from getting out of hand. The goal set by the UN IPCC and agreed and ratified by nearly 200 countries is to reduce carbon pollution so that the temperature increase stabilises to a 1.5 °C increase by 2100.
Everyone has a part to play in the climate solution. Nothing happens in isolation, everything is connected. The actions — even the small ones — that we take have a big impact on our environment and climate. Climate change is happening right now, and it’s our job as individuals to do what we can to prevent its effects from getting worse.
According to a report released by the Worldwatch Institute, a non-profit organization based in Washington, most electricity is still produced through the burning of fossil fuels and is responsible for 49 percent of the carbon emitted into the atmosphere.
Sustainable energy
Energy consumption is an important aspect of software and the software industry. On one hand, in-order to build sustainable and green software, we need to reduce energy consumption while maintaining the same functionalities; on the other hand, software has a direct impact on energy consumption by requiring hardware operations that are physically responsible for it.
A sustainable system architecture takes responsibility for electricity it consumes and is architected to consume as little as possible. Reducing the amount of electricity consumed by your applications can help to decrease the carbon intensity of your cloud infrastructure.
Green Software Engineering is an emerging discipline at the intersection of climate science, software practices & architecture, electricity markets, hardware, and datacentre design. Green software engineering is a way to bridge the gap between what is feasible in terms of energy efficiency and cost effectiveness through software engineering practices and how that impacts our ability to address climate change.
The principles of Green Software Engineering is a core set of competencies needed to define, build, and run green sustainable software applications. These eight principles form a shared understanding and help make decisions which have a meaningful impact on the carbon pollution of their applications.
1. Carbon: Build applications that are carbon efficient.
This means that the application is to be developed in a way that minimizes its impact on global warming and climate change. The application should minimize the amount of carbon emitted per unit of work.
2. Electricity: Build applications that are electricity efficient.
A sustainable application takes responsibility for electricity it consumes and is architected to be energy efficient so that it consumes as little electricity as possible.
3. Carbon Intensity: Consume electricity with the lowest carbon intensity.
The carbon intensity of electricity is a measure of how much carbon (CO2eq) emissions are produced per kilowatt-hour of electricity consumed. Not all electricity is produced in the same way. Carbon intensity changes by location since some regions have an energy mix that contains more sources of clean energy than other regions.
Carbon intensity also changes over time due to the variable nature of renewable energy. Demand Shifting is a strategy of moving workloads to regions or times when the carbon intensity is less, or supply of renewable electricity is high.
4. Embodied Carbon: Build applications that are hardware efficient.
Embodied carbon is the amount of carbon pollution emitted during the creation and disposal of a device. Hardware is retired either because it breaks down or because it struggles to handle modern workloads. Build applications that can also run on older hardware.
5. Energy Proportionality: Maximize the energy efficiency of hardware.
Energy proportionality is a measure of the relationship between power consumed in a computer system and the rate at which useful work is done. The most efficient and green approach is to run your work on as few servers as possible with the highest rate of utilization.
6. Networking: Reduce the amount of data and distance it must travel across the network.
The amount of carbon emitted to send data depends on many factors such as distance the data travels, the number of hops between network devices, the energy efficiency of network devices, the carbon intensity in the region of each device at the time the data is transmitted, the network protocol used to coordinate the data transmission etc.
7. Demand Shaping: Build carbon-aware applications.
Demand shaping is similar to demand shifting, but instead of moving demand to a different region or time, we shape our demand, so it matches the existing supply. Eco mode in a car is an example for demand shaping carbon-aware applications.
8. Optimization: Focus on step-by-step optimizations that increase the overall carbon efficiency.
The key to success in optimization is to choose a measurement criterion that will give clear signals as to where best to put optimization efforts.
Measure and Track Carbon Impact
“What you can’t measure, you can’t improve.”
It is important to measure and estimate the energy consumption due to software in order to know if it is possible to limit negative impacts.
Microsoft aligns with the Green Software Foundation (GSF), responsible for creating the Software Carbon Intensity (SCI) specification.
To measure the carbon impact of an application, the GSF provided a scoring methodology called SCI, calculated as follows:
SCI = ((E*I)+M) per R
Where:
E = Energy consumed by a software system. Measured in kWh.
I = Location-based marginal carbon emissions. Carbon emitted per kWh of energy, gCO2/kWh.
M = Embodied emissions of a software system. Carbon that is emitted through the hardware on which the software is running.
R = Functional unit, which is how the application scales; per extra user, per API call, per service, etc.
Microsoft offers the Emissions Impact Dashboard for Azure and Microsoft 365, which helps to measure your cloud-based emissions and carbon savings potential. The result is an estimate of the greenhouse gas (GHG) emissions, measured in total metric tons of carbon equivalent (MTCO2e) related to a customer’s consumption of Azure.
The calculator gives a granular view of the estimated emissions savings from running workloads on Azure by accounting for Microsoft’s IT operational efficiency, IT equipment efficiency, and datacenter infrastructure efficiency compared to that of a typical on-premises deployment. It also estimates the emissions savings attributable to a customer from Microsoft’s purchase of renewable energy. Emissions Impact Dashboard can be used to get the insights and transparency you need to understand your carbon footprint and to measure and track emissions over time.
Here’s a snapshot of the Emissions Impact Dashboard with some demo data.
Cloud efficiency is usually measured as the sum of resource cost, carbon emissions and energy consumed.
Cloud Efficiency = Resource Cost + Carbon Emissions + Energy Consumed