By Carolyn Hicks, Software Engineer at Evergen
There are many ways in which software can be “green”. Any software that helps to reduce environmental harms – such as apps that help individuals to lower their carbon footprint, planning tools that assist in wildlife conservation, or software like Evergen’s Intelligent Control which contributes to decarbonising energy – could all be described as green. But there’s an important way in which every kind of software can contribute to a more sustainable world: by monitoring and reducing its own usage of carbon-intensive energy.
The Green Software Foundation (GSF) has recently released a report detailing the current State of Green Software, which assesses the current uptake and common practices within green software development. The report notes that “software emissions are equivalent to air, rail, and shipping combined”, and ICT’s share of global emissions is expected to increase to 14% by 2040. The energy consumed by software applications is a critical part of the world’s carbon footprint, and something every software practitioner should be striving to reduce.
For Evergen, the fact that our software helps to decarbonise the grid doesn’t get us off the hook! As long as we are consuming energy to perform computing tasks, we are responsible for the emissions that result, and need to adopt practices to reduce them.
Fortunately for software businesses, there are plenty of win-wins in green software. Wasting compute cycles on unnecessary activity is financially costly as well as carbon-intensive, so eliminating ‘zombie’ data and processes provides immediate benefits. Taking care to manage resources wisely encourages good practices in software development, and shows a commitment to quality in engineering culture. A credible focus on sustainability is also an advantage for an organisation and helps with recruitment and retention.
The GSF provides a great deal of information on ways to reduce the environmental impact of software, and the tools available to do so. It describes three overriding principles of green computing:
Minimise electricity consumption by improving the energy efficiency of your software and eliminating unnecessary code and resources.
Minimise embodied carbon by using appropriately-sized hardware.
Optimise computer activity to take advantage of clean electricity when and where it is available.
These principles can be applied in many domains of software development, and the catalogue of Green Software Patterns describes specific ways to apply them in relation to AI development, cloud infrastructure and web services. Simple practices like caching static data or using MP4 rather than GIF file formats can significantly reduce the volume of data that needs to be transferred for web applications, thereby reducing the energy needed to transmit those resources. Adopting a serverless architecture where possible avoids wasting energy (and cash) on running resources that are not being used. And it’s possible to dramatically reduce the carbon emissions of a single compute-intensive task like training a machine learning model, by choosing a time and region in which plenty of renewable energy will be available to run it.
The choice of data centre and cloud provider will play a large role. Cloud providers make some sustainability information available but this is not always clearly set out or easy to find. And it’s not just about carbon intensity – digital infrastructure can also have a large environmental impact on freshwater resources, by using large amounts of water for cooling. Microsoft has experimented with running data centres underwater, finding there were benefits in reliability and latency as well as sustainability.
Evergen’s Principal Architect Luke Spice says Evergen is taking steps to address inefficiencies in software energy usage. “We have shifted some of our workloads from always-on services to on-demand serverless (AWS Lambda) and scheduled Kubernetes cron jobs. This reduces the amount of resources required when these services are not active. We are in the process of moving a lot of aggregations and reporting from ongoing schedules to on-demand. This will reduce CPU energy consumption massively and ensures we only do work that is useful and visible to our customers.”
Evergen’s mission is to enable smarter energy, by optimising electricity usage to take maximum advantage of renewable sources. With the principles of green software in mind, we’ll continue to work towards building software that both minimises its own environmental impact, and enables our customers to minimise theirs.