Towards Lean Computing: Integrating Energy Consumption in Application Design
In the quest for better energy efficiency, the applications themselves are often overlooked. Our industry likes to pretend that all technologies are equivalent and has forgotten that the choice of programming languages, frameworks and architecture have a major impact on energy consumption.
The observation
Today we are all aware of the environmental impact of the objects, tools, devices we use. We all know that when we use our car, this usage will have a “carbon” impact. A whole industry is working to reduce the energy impact of the appliances we use. Our environmental awareness is leading us to moderate our use, by using appliances that consume less energy, or depend on a mix with more renewable energies. Finally, we even consider alternatives, such as replacing the car with a public transit, or cycling.
Taking into account the carbon footprint of our actions is more evident in the transport field. In the IT sector, we are only at the beginning, but our massive use of computing power and data turned the Internet into a major energy drain.
In 2017, Greenpeace considered Internet electric consumption to represent 7% of the world’s electricity consumption. The report is based on 2016 data. It is very likely that we are well beyond that point today. The growth in data traffic exceeds the advances in energy efficiency of network equipment. The “Low Tech Magazine” explains the problem very well: About Low Tech Magazine.
In other words, it means that all the world’s IT departments, phones, data centers, etc. emit more carbon than air transport, for example.
Keeping Internet infrastructure and usage under control
The awareness is growing, but the solutions being explored focus on only two lines of action, forgetting a third but fundamental one.
The first line of action on the energy consumption of the Internet is geared at infrastructure. The energy consumption of the infrastructure is dealt with at two levels:
- Reducing energy consumption in data centers. One example is OVH’s work on hydraulic cooling systems, replacing both the fans in the servers and the air conditioning in the data centres.
- The source of electric supply. An effort is being made by large groups such as Facebook, or Google to buy renewable electricity, i.e. electricity produced from renewable energy.
The second line of action to reduce the energy impact is usage limitation. From a user’s point of view, we have all seen awareness-raising campaigns recommending that people decrease their use of e-mail or even reduce the resolution of videos consumed to save bandwidth and electricity. This is an important step forward, but we must now go beyond it, to reduce the energy impact of everyday use.
Designing lightweight and efficient applications
Cloud computing has changed the way applications are designed. It’s an industry, with most of the major players now being business infrastructure providers. Cloud players offer increasingly sophisticated services and have simplified the use of online capabilities.
So much so that it is common today to design architecture that can scale-up automatically. It is even commonly accepted that human time is the most expensive and valuable resource. Consequently, it is better to put more and bigger servers to run one’s service than to spend time optimizing it. The environmental cost of time-to-market pressure is real. Cloud computing has made it too easy to leverage ever-increasing resources.
In this race to consume more and more, our industry has forgotten that this attitude is a major contributor to greenhouse gas emissions. This attitude is the IT equivalent of intensive agriculture. We need a new approach.
A third line of action: Measure and optimize
Another line of action to reduce the impact of the Internet on the planet is to rediscover optimization know-how, to be well aware of the impact of architecture decisions on our applications.
Many parameters have to be taken into account and can have a real impact on the environment:
- The type of architecture. Some architectures are more efficient than others. Intensive use of middleware and microservices can have a negative impact on the energy balance of a service.
- The panel of technologies. We have to be realistic, some technologies are convenient for development, but very energy consuming. For example, at ProcessOne, we have taken over the management of a messaging service on our infrastructure. The application was previously running on 30 servers. We now operate it on 4 servers of the same size. The choice of implementation technology makes a huge difference (i.e. Erlang, Elixir, Go).
- The set of features. Big data, the massive mining of data, is a great promise of wealth creation. However, the business case does not not always exist and storing and processing huge volumes of data just in case you may need it doesn’t seem rational. You have to think ahead about what you want to analyze and why. This approach is not really compatible with the General Data Protection Regulations (GDPR).
Conclusion
At the end of the day, companies have an important responsibility in the energy consumption of the Internet. They cannot be done with it by just shifting the burden to infrastructure providers and users. They have to take their share of the responsibility.
If you want to know how to address the problem, ProcessOne can certainly help you, by working on the whole process, and by helping you benchmark your application to monitor its performance.
So, are you ready to tackle the challenge with me and reducing the energy footprint of your applications?