Towards Lean Computing: Integrating Energy Consumption in Application Design

Towards Lean Computing: Integrating Energy Consumption in Application Design

English

In the quest for better energy efficiency, the applications themselves are often overlooked. Our industry likes to claim that all technologies are equivalent. We have forgotten that the choices 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 leads us to moderate our use, using devices 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 IT, we are only at the beginning, but our massive use of computing power and data turned the Internet into a major source of energy consumption.

In 2017, Greenpeace considered Internet electricity consumption to represent 7% of the world's electricity consumption. The report is based on data from 2016. 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 that situation 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

Awareness of the issue is spreading, but the solutions being explored focus on only two lines of action, forgetting a third, 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:

  1. 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.
  2. 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 to reduce usage. From the users' point of view, we have all seen awareness campaigns recommending to reduce the use of email or even to reduce the resolution of the videos consumed to reduce bandwidth and electricity consumption. This is an important message, but today we need to go further to reduce the energy impact for a constant usage.

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 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: Measuring and optimizing

One line of action to reduce the impact of the Internet on the planet is to rediscover this optimization know-how, to be 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 (Erlang, Elixir, Go).
  • Choice of features. Big data, massive data exploitation, all are promising stream of wealth creation. However, it is not always the case and storing and processing gigantic volumes of data "just in case" does not seem rational. You have to think beforehand about what you want to analyze and why. Moreover, this approach is not really compatible with the General Data Protection Regulation (GDPR).

Conclusion

At the end of the day, companies have an important responsibility in the energy consumption of the Internet. They cannot do this by shifting the burden to infrastructure providers and users. They have to take their share of the responsibility.

If you want to know how to tackle the problem, ProcessOne can certainly help you, by working on the whole chain, on the three axes mentioned here and by helping you benchmark your application to check its performance.

So, are you ready to tackle the challenge with me and reducing the energy footprint of your applications?