Your Software’s Carbon Footprint

Is your tech-stack environmentally responsible?

John Murray
4 min readSep 25, 2019
(source: unsplash)

Climate change has been a part of the scientific communities’ discussions for some time now. More recently we’re starting to hear more from our local and national politicians and governments are taking action and encouraging their citizens to participate in reducing their footprint. We often focus on the more obvious tasks — recycling, producing less non-recyclable waste, driving less, maybe even volunteering in local tree-planting efforts, etc.

Similarly companies will sometimes announce that their business, or parts of their business, are carbon neutral. Often we see the use of electric vehicles in their fleet being the main article of their claims. This got me wondering, what’s the carbon footprint of software.

I’d like to propose a thought experiment.

What is the environmental cost of computing — and — is it possible for software developers to make environmentally responsible choices?

The Cost

Luckily this part doesn’t have to remain fully in the realm of our thought experiment. There have already been efforts to calculate the environmental impact of computing, both personal and data center focused.

The NRDC Report[1] compares the carbon output on-premise server-rooms, private clouds, and public clouds across a variety of conditions. The United States Data Center Energy Usage Report[2] from 2016 calculated that data centers in the US consume 1.8% of the country’s electricity output with continued growth projected through 2020.

U.S. data centers are projected to consume approximately 73 billion kWh in 2020

Combining that number with the ideal cloud-computing configuration report from the NRDC (0.268 kg CO2e/ kWh) puts that total US data center emissions output at 19.5 billion kg of carbon emissions. With the EPA estimating the average passenger vehicle emitting 4.6 metric tons of carbon per year, this equates to roughly 4.2 million cars.

US data centers output the equivalent of 4.2 million cars worth of carbon, per year.

This math is a crude estimate based on seemingly trustworthy, although in essence unverified, reports. However, my point is to say that data centers are not without significant environmental cost. A cost that is likely not considered even by those attempting to “live green”.

Reducing Our Footprint

As an environmentally conscious company, how do we reduce our footprint?

(source: unsplash)

The goal to reducing our footprint essentially comes down to reducing the number of servers that we need to run our business. But how does a company just use less? Presumably only the necessary hardware is used since running more comes at additional cost the company, right? … RIGHT?

I’d like to take a slight detour to introduce you, if you are not already familiar, to the TechEmpower benchmarks. This is a site that performs various performance tests using a large variety of languages, frameworks, and platforms. It then publishes the results of these benchmarks to showcase (or shame) language/framework combinations’ performance.

The point is that when it comes to performance not all software is created equal. And choosing a (s)lower performing combination means making a trade-off to use additional hardware. So if we can reduce our footprint and save money, why do software developers choose low-performing language/framework combinations?

Money.

Not all companies get to be an Amazon, Facebook, or Google. That is to say that they may not be running hundreds of thousands of servers to power their business. This may mean that hardware is not their highest cost, developers are. Developers pick slower technology platforms because it offers them higher productivity and provides their company with faster time-to-market. Imagine the following scenario:

Two teams enter into a competition where they must construct a mode of transportation and then race across town. One team plans to build a bike and the other a go-kart. The bike is constructed first and is able to start the trek across town. The go-kart is constructed just as the bike finishes it’s journey and wins.

In this scenario, the slower vehicle is able to win the race because it was able to get out of the gate faster (time to market). This describes most startup and small- to medium-sized business.

Is slow software the IT industry’s version of chemical dumping in rivers and oceans — a money-saving tactic at the expense of the environment?

Ethical & Moral Obligations

Car manufacturers are often the target for the following line of thinking:

INSERT CAR MANUFACTURER HERE has a moral and ethical obligation to do everything it can to improve vehicle efficiency and invest in electric vehicle R&D. They should stop being so greedy and sacrifice short-term profit for the long-term health of our planet!

That line of thinking, while it may be filled with fallacies and inaccuracies, isn’t entirely invalid. And I would agree that there is a higher burden on certain industries to carefully consider how they impact the environment. But how easy it is to look at others and say they should be doing more.

When is the last time you considered the environmental impact of the software you’ve written? Now that it’s been brought to your attention, will you go out of your way to make changes, or is that someone else’s concern?

Update 10/21/19 — Related discussion in TechEmpower benchmark repo here.

References

  1. The Carbon Emissions of Server Computing for Small- to Medium-Sized Organizations. https://www.nrdc.org/sites/default/files/NRDC_WSP_Cloud_Computing_White_Paper.pdf
  2. United States Data Center Energy Usage Report. https://eta.lbl.gov/publications/united-states-data-center-energy
  3. Greenhouse Gas Emissions from a Typical Passenger Vehicle. https://www.epa.gov/greenvehicles/greenhouse-gas-emissions-typical-passenger-vehicle

--

--