Green software, what it is, and why it matters
If you read any computer news site, or follow the trends in the industry you have recently, most likely, came across the term green computing, or green software.
I first heard about these terms in the ThoughtWorks 2022 March Tech Radar, in the form of Cloud Carbon Footprint, a tool to measure the carbon emissions of your cloud infrastructure. The tool looked great, but to be honest, I did not pay much attention to it and I kept researching other topics.
Not long after that I was having a look at AWS re:Invent videos and I realised that there was a long list of talks about the environmental impact of the Cloud. In fact, I think that the same year that Sustainability became one of the AWS Well Architected pillars.
Definitely this is not just a trend.
Having a deeper look I realised that Sustainability has been a recurrent topic in all the AWS re:Invent events during the recent years:
And in fact, AWS has had a long record of Sustainability initiatives over the years.
I don't want to repeat myself and bore you to death with examples and an endless list of links. The issue is that Green Software is appearing over and over again through different channels:
And with different names (Green software, clean tech, carbon aware software, sustainable architectures ...) , but with the same concept: How is Software influencing the Climate Change? and what can it do to fix it ?
It is clear that Green Software is here to stay and Big Players are investing a lot of resources on it, so I decided that I would give it a go and investigate what all the fuss was about.
I must admit that I started my investigation with lots of skepticism: Was this just a way to "mask" cost savings and increase the economic viability of the Cloud? This is indeed a very nice side effect of Green Software: if you are optimizing your resources you emit less carbon and you pay less, but this is not the main goal.
After learning about green software I can say that it's real, it's important and it's urgent.
Climate Change
Let's get into context in here. We all know that climate changes is real, we don't need to discuss about that.
At the time of writing this blog post (April, 2023) Catalunya (where I'm from) is facing one of its worth droughts ever and the summer is looking pretty gloomy.
Every sane person understands and agrees that we need to improve how we manage the planet resources. This includes us, tech people.
What part does IT play into this disaster
Our computers work on electricity and while we have been doing a great work in improving the ratio of work capacity per unit of electricity (better algorithms running on better hardware) we have also increased the usage. A lot (IA and web3, I'm looking specially at you)
Another good point is that we managed to move lots of server loads to virtualised systems in the Cloud that, while making everything a little bit more complex, manage to have a much better usage of resources.
But you know, the cloud is just someone else's computer. So, underneath all the magic, there is a data center. And while they are getting better and better, they are still big electricity consumers.
As stated in "How much energy do data centers consume" article by TechTarget the consumption might be around 33 terawatt-hours. Some other sources increase the consumption to 200 terawatt-hour (!!) and set the carbon emissions to the 0.3 % of the total. This is just data centers, if we are talking about computers in general then the number grows to the 2% of the total emissions. This is bigger than aviation.
This is just electricity, then we would need to talk about water (to cool the data centers), noise and permanent waste. But let's go one step at a time shall we ?
Green Software
As technology experts we have a responsibility to improve these numbers. This is the part where "Green Software" appears.
So, Green Software is (as you can see in the Manifesto by the Green Software foundation):
- Software that is optimised in a way that reduces its carbon emissions.
- Software that enables climate solutions.
Those are broad terms. Let's have a look at what they mean.
Reducing Carbon emissions
The main objective of Green Software is actually, reducing the carbon emissions. This is emitting the least amount of carbon per execution of your system, so this can be easily translated to being able to optimise your resources usage:
- Make your system more resource efficient.
- Making your system more elastic (it can increase on spike loads, but it will reduce the resource usage as soon as the load goes down)
- ...
Enabling climate solutions
Software, can of course help in a million ways to improve climate solutions. This "side" of Green Software is about developing software to help to enable climate solutions and research:
Outline
For me one of the most important key ideas is that we need to make the Sustainability another of the -ilities (also known as architectural characteristics)
The green software foundation provides learning materials and resources to understand the problem and the associated environment.
What's next
During following posts I will be writing about more specific topics that I have researched, such as some of the open source tools that are being developed, analysing the work and applying the knowledge to real use cases so they can be used as real world examples, and also a who is who in the green software movement.
Resources
Some interesting articles worth reading. Some of them are linked in the post.