Eco-designing your tech project: the variables to take into account and the levers to reduce your impact

by | 1 Jul 2021 | Web Expertise

Before discussing eco-design and the levers available to reduce our footprint, it is important to recall how the impacts of digital technology are distributed.

Below is a summary table from the iNum study by a committee of greenIT experts published in June 2020:

Distribution of digital impacts in France in 2020

(1) This indicator of contribution to the depletion of abiotic resources only takes into account "material" resources. Fossil energy, which is also an abiotic resource, is not taken into account. However, oil, if used to make plastic, is taken into account.

This table details the impacts (in columns) of each segment (in rows) of the digital chain. With a separation between the manufacturing part of the equipment (FAB) and use (USE). Our impact in terms of eco-design will be mainly centred around the "USE" values since we are not directly involved in the manufacturing processes when we develop web & mobile applications.

However, we have to be careful about the performance of what we develop because poorly performing applications are the main reason for the obsolescence of user terminals and servers . The latter two have continued to increase in power over the last few years but we have not necessarily benefited from these improvements on the user side, which can be explained by the ever-increasing consumption of resources by applications for a questionable gain in value...

Levers to reduce our digital impact

Throughout the design of a new service or product, it is important to remember the central principle of eco-design and greenIT, which is the principle of sobriety. You must always ask yourself the question "Do I need it? "at all stages and in all matters.

  • I want to create an app/service → Do I need it? Will it be useful? Is there a more cost effective alternative?
  • I want to use X/Y technology → Do I need it? Is it a fad? Is it the most efficient way to exploit the power available?
  • I want images in 4K quality → Is this necessary? Does the level of detail in the images justify this choice? Is it essential to have this level of detail?

Once it has been decided that there is a need to develop a new product/service that will be useful and provide value, the eco-design of the product/service can be tackled.

We will assume that this is a web application with a front end accessible via a browser and a back end that runs on a server. All in all, something rather classic in our sector.

Levers at user level

On theuser's side, we will talk about everything he has received on his terminal (PC, Mac, telephone, etc.) and the impact that this has on his terminal. We therefore focus mainly on the consumption of the terminal required to run our application. The main consumption items are the execution of the javascript, the resizing of the images to display them at the requested size, the interpretation of the DOM.

Knowing this, our levers are simple to identify: 

  • Minimise the JavaScript executed on the user side. (Do we really need reactJS for a landing page? Do we really need to include all those external JS for tracking, monitoring, js animation lib...)
  • Have images already sized to the required display size (take the time to resize them correctly)
  • Reduce DOM complexity as much as possible (try to keep the DOM clean and minimal, do not hesitate to refactor elements that become too complex)

Levers at network level

Only one thing matters here: the amount of data transferred. Our way of doing this is to transfer less data. To do this, we have to hunt for bytes. This is a fairly mature area since this quantity of data is directly linked to page display times and therefore to referencing, the quality of the site's UX, etc.

The main tracks: 

  • Enable compression on network transfers
  • Minifying your assets: JS, CSS, HTML
  • Use a standard font available by default on terminals(Windows, iOS)
  • Transmit your images at the optimal display size (as already explained at user level)
  • Compress your images: use tools like jpegoptim, jpegtran, optipng, svgo, ... to compress all your images according to their format.
  • Use the new image formats(avif, webp) with a fallback on the classic formats for browsers that do not support these formats. To do this, use the HTML tag, which allows you to define several images. The browser will select the one it is able to display to download it
  • Use a CDN that will cache your resources as close as possible to the users and thus avoid unnecessary transfers. In addition, some CDNs automatically offer to minify assets, compress images, etc.

Levers at data centre level

At this level, you can do two things. Choose a committed and responsible host. And make optimal use of resources.

When it comes to choosing a hosting provider, it is becoming increasingly easy to find committed hosting providers. All major clouds (Azure, AWS, Google) have committed to being 100% green by 2025 at the latest.

But it is not only energy that is important. Water consumption can also be taken into account. Azure is committed to being water neutral by 2030. We can see what is happening in terms of cooling, have they set up adiabatic cooling (without air conditioning), do they have a mechanism for reusing the heat extracted from the data centres (heating buildings, etc.)?

Unfortunately, there is no easy answer to make this choice. You have to compare the offers and commitments of the different hosting companies, how transparent they are, where their commitments are on the datacenter you will use... Do they have a datacenter close to the majority of your users?

Finally, you have to make optimal use of resources. Taking a server with 16 cores and 64 GB of RAM "just in case" we have big load peaks is really a bad idea. 99.99% of the time this server will do nothing and will cost us a lot of money.

It is important to choose a server of reasonable size in relation to the need. The problem of load peaks must be dealt with by an intelligent design of the architecture allowing simple replication of the service over sufficiently short times. We can also move towards systems "Serverless which leaves the optimisation of resources to the good care of the host.

Overall in eco-design there are few new tools because the essence of this field revolves around the principle of sobriety. Use less energy, fewer resources, less bandwidth, less high-tech...

Benoît

Benoît

Architect Developer @theTribe

Why don't we talk?