There are huge amounts of software running everywhere on the planet – and this software consumes energy when it is running. Unfortunately most of the energy world-wide is still being produced by burning fossil fuels and therefore causes huge amounts of greenhouse gas emissions being emitted into the atmosphere, as Martin Lippert explained at OOP 2022. If software engineers can improve the software so that it uses less energy to do its job, the less energy needs to be produced by burning fossil fuels, the better it is for the climate. Software and software engineers can make a difference, Lippert argued.
Where most of the data centers claim they are running on 100% renewable energy, they can’t live without traditional energy production yet. There just isn’t enough renewable energy around all the time to power everything yet, as Lippert explained:
What many companies do is that they produce or buy (or a mixture) renewable energy in the same amount as the data center consumes. But renewable energy isn’t available all the time in the same amount of what the data center consumes. Sometimes the data centers need more energy than is available from renewable sources at that moment.
Software engineers can fight climate change by keeping an eye on the energy consumption of software and run software only when it is necessary. According to Lippert, this helps to reduce the total amount of energy that is used by the data center – which means reaching truly running on 100% renewable energy all the time earlier rather than later.
Unfortunately, there isn’t a well-established way to watch the energy consumption of your running workloads yet, let alone how much carbon is being caused by that, as Lippert explained:
Cloud providers are starting to provide dashboards for this slowly, so you should look out for features to arrive on your preferred platform/cloud. In the meantime, you can look at the amount of resources (CPU and memory, for example) that you reserve for your workloads – and try to reduce that. The less resources you reserve and need, the less energy your workload will consume – and the less carbon it will cause. We need to win the race to save the climate – and software using less energy can speed us up here significantly.
InfoQ interviewed Martin Lippert about sustainability in software engineering.
InfoQ: Aren’t most data centers already running on green energy?
Martin Lippert: In reality, down to the facts, there are very very few data centers in the world that run on on-site generated renewable energy all the time. Most of the data centers depend on energy from the grid – which usually contains a mix of renewable energy and energy from burning fossil fuels or nuclear power plants.
InfoQ: What about the hardware?
Lippert: The pure energy consumption of the data center is only one aspect here, one perspective. We need to keep in mind that hardware production and keeping hardware around (even if not used to run software) causes significant amounts of carbon emissions as well – for example. So using less hardware – and therefore maybe producing less hardware – would be another aspect that we could take into account here. A nice side effect is: the more efficient the software is, the less hardware we need to run it.
InfoQ: How is the carbon intensity of software an important differentiating factor in the industry?
Lippert: Not every software is equal with regards to carbon emissions that are caused by that software. The engineering of a piece of software might cause more or less carbon emissions, running the software in a data center might cause more or less, and so on.
We can’t hide or ignore this. And people want to know this. Users and customers want to know about the impact that the software that they use has on climate change. And they will compare the “carbon intensity” of a software. Most likely software with a much lower carbon intensity will be much more successful in the future than software with a higher one. The carbon intensity of software will drive decision-making. So as someone writing or selling software, you better prepare for this sooner rather than later.