Les trois newbies qui voulaient calculer l'impact de leur site web
Tags: french, francais, sustainability, green
Published: 2021-02-08 19:01:08

Si les newbies ont une chose en commun, c'est bien de n'avoir peur de rien.

Il y a tout juste un an, ma première conférence au DevFestParis marquait mon entrée dans le monde du Green IT. *Comment sauver la planète une page web à la fois ?* Rien que ça. Le temps de quinze minutes, les jambes tremblotantes,  [je mesurais l'impact d'une page Netflix que je jugeais inutile](https://batby.hashnode.dev/netflix-la-page-de-trop-ck69wy20904t689s1xh224dhb)  - au passage, la page est toujours là et semble malheureusement avoir de beaux jours devant elle.

Il était temps de m'attaquer à mes propres projets.

Chez Theodo, nous avons des experts, entre autres, en qualité, performance et sécurité. Quel est notre secret ? Les plus passionnés se réunissent une fois par semaine avec une mission simple : être à l'affût des toutes dernières avancées. On appelle ça une "guilde".

Ces guildes proposent ensuite aux techs leads un protocole de mesure les aidant à améliorer leur projet.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/p1uwcapbsvgaxd3j5b11.png">
  <figcaption>La slide 3S de mon projet</figcaption>
</figure>

Aucun bug lors du dernier sprint, des pages qui se chargent en moins de deux secondes… Je pouvais fièrement regarder cette slide avec mon équipe.

Cependant, au fond de moi, je nourrissais un rêve secret : y ajouter le S de *Sustainability* (durabilité). Et je n'étais pas le seul. Nous étions 3 motivés, bien décidés à rendre les projets aussi vert qu'un feu tricolore.

> Tout être connaissable a un nombre : sans celui-ci, on ne saurait rien concevoir ni rien connaître.
> Philolaos, Ve siècle av. J.-C

L'adage était clair. Il nous fallait ce chiffre, ce modèle, ce sésame qui nous ouvrirait les portes de l'éco-conception. Et ça tombait bien, nous l'avions déjà.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/um8h2p39cvy1fjocka8j.png">
  <figcaption>Les membres de notre guilde, à l'époque où ils souriaient encore</figcaption>
</figure>

# Des premières mesures timides

Notre arme absolue s'appelait le *1-byte-model*. On ne jurait que par lui. Ce modèle mathématique, développé par le think tank français [The Shift Project](https://theshiftproject.org), estime l'impact de n'importe quel usage en trois petits calculs. Une première multiplication pour estimer la consommation des datacenters, une autre pour la partie réseau, enfin une dernière pour le terminal utilisateur. On additionne le tout, et c'est terminé : vous obtenez l'impact carbone de votre site. Nous aimions tellement ce modèle que [nous l'avions vulgarisé dans un article](https://batby.hashnode.dev/mesurer-limpact-du-web-avec-le-1-byte-model-ck5yfdler00h089s13mq32gq9?guid=4f544ee4-4d42-405d-bc26-5e55a2d6189d&deviceId=d1cd67d0-0ae1-4ac3-a6c8-dfe3d6ab19f6).

Nous l'utilisions à toutes les sauces. Vous nous donniez un site, aussitôt, nous le passions à la moulinette du modèle.

Notre plan était simple : commencer sur un site "bac à sable" pour tester rapidement des améliorations. Puis l'un après l'autre, comme autant d'obstacles sur un 400 mètres haies, mesurer tous les sites de Theodo et les améliorer.

Pour nous faire la main, nous avions choisi le site vitrine d'un restaurant landais que l'on avait développé. À chaque semaine sa nouvelle action : réduction de la taille des images, limitation du nombre de polices, augmentation des durées de cache, compression des ressources, diminution du nombre de requêtes.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/elweepkpdwl5ehei36c1.png">
  <figcaption>Malheureusement fermé en ce moment.</figcaption>
</figure>

Après plusieurs semaines de travail, l'heure était venue de ramasser les lauriers.

> – J'ai envoyé en prod.
> – Top. On mesure ?
> – 1,34 gramme de CO2 équivalent.
> – On était à combien avant ?
> – 1,36 gramme.
> – 20 mg gagnés. C'est un trajet d'environ 20 centimètres avec une voiture puissante.
> – Pas mal.

Ce n'était clairement pas à la hauteur de nos attentes. Beaucoup trop léger pour nos épaules de sauveurs du monde. Pourtant, nous sentions que nous avions fait quelque chose de bien, que nous avions gagné quelques centimètres dans la bonne direction. Mais notre esprit, cruel et rationnel, était catégorique : on ne servait à rien.

Mais qu'importe, ce n'était que le début. On apprenait. C'est qu'en développement web, tout effort est démultiplié par le nombre d'utilisateurs. Un kilobyte enlevé sur une page, c'est un kilobyte sauvé à chaque visite. 

Un jour viendrait, la guilde s'attaquerait à de gros sites, avec une formidable affluence, et des milliers de visites quotidiennes. Ce jour-là, on verrait de quel bois on se chauffe ! (évitez quand même).

# Et déjà tout s'effondre…

Un article a tout changé. En moins de 3 000 caractères, Carbon Brief, un blog focalisé sur la question du climat, détruisait, laminait, anéantissait le 1-byte-model. [Il lui reprochait des approximations qui gonflaient l'estimation de l'impact mondial de Netflix](https://www.carbonbrief.org/factcheck-what-is-the-carbon-footprint-of-streaming-video-on-netflix). 

Ils relevaient plusieurs erreurs :
- Une erreur de conversion dans le calcul du bitrate – la quantité de données transférée pendant une seconde de streaming.
- Une estimation de la consommation électrique des datacenters 35 fois plus grande que celle communiquée par Netflix.
- Le chiffre utilisé pour mesurer les réseaux de transmission n'était plus à jour avec les derniers papiers de recherche.

Au total, Carbon Brief révélait une mesure 90 fois trop haute..

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/mzki3eyt6o3u2juvfy8n.png">
  <figcaption>Lors de la publication de l'article de CarbonBrief, les estimations correspondaient aux deux barres rouges. Depuis, les deux modèles ont été révisés, mais une différence subsiste.</figcaption>
</figure>

Ne jetons pas la pierre à l'étude du Shift Project. Ils ont été les premiers à se lancer dans cette estimation, utilisant les connaissances de l'époque (il y a deux ans, ça va très vite). Leur étude a lancé un mouvement, et si Carbon Brief a abouti à ses résultats, c'est en parti grâce à leur travail. De notre côté, on touchait pour la première fois du doigt une dure réalité : si le climat change, les connaissances aussi.

Du jour au lendemain, il fallait tout oublier. La veille encore, je passais la soirée à estimer l'impact d'une story Instagram de la chanteuse Angèle, dans laquelle elle sauvait un pigeon de la mort. Là, c'était mon travail qui était mort. Nous ne savions plus qui croire. Nous doutions de tout.

___

Parfois, sur la pause déjeuner, des collègues venaient nous voir, un sourire innocent aux lèvres :
> – J'ai lu qu'il valait mieux supprimer ses mails pour la planète. C'est vrai ?

On restait d'alord silencieux, aucun chiffre ne voulant sortir de notre bouche. Puis on répondait sur un ton hésitant, incapable de convaincre qui que ce soit :

> – Je crois, d'après ce que j'ai lu, ça date d'il y a trois semaines, ça a peut-être bougé depuis, que ça n'apporte pas grand chose. À vérifier hein ?

On percevait le traumatisme derrière toutes nos précautions.

Pour aller de l'avant, [nous avons essayé d'autres modèles](https://blog.octo.com/sous-le-capot-de-la-mesure-ecoindex/). Mais nos fantômes revenaient à chaque fois.

Heureusement, Cyrielle, membre de la guilde, est venue nous sortir de notre torpeur :
> Si on ne trouve pas de modèle qui nous plaît, faisons le notre !

# Voyage au bout de la nuit

Pour notre tout nouveau modèle, nous avons pris le même découpage que le 1-byte-model. Il représente parfaitement les 3 parties d'une architecture distribuée. On a appelé ça le modèle 3D : *Device*, *Data*, *Datacenter*.

Cyrielle venait tout juste de publier [un premier article](https://blog.theodo.com/2020/05/greenit-measure-server-energy-consumption-powerapi/) sur la partie serveur (*Datacenter*). Elle était parvenue à mesurer la consommation serveur d'une application. Tout ça avec des instruments tout droit sortis de laboratoire. Tout ça sans aucune approximation. De la bonne vraie science.

Mais elle se heurtait à un nouveau problème. Quasiment la totalité de nos projets ne tournaient plus chez nous. Ils tournaient tout là-haut, dans le cloud. La plupart du temps chez AWS.

Ça rendait notre tâche impossible. C'était comme savoir mesurer la consommation d'un lecteur DVD, et vouloir l'utiliser pour obtenir l'impact d'un film Netflix.

Notre activité chez AWS était une véritable boîte noire.

En prenant du recul sur notre modèle, on s'est mis soudainement à en voir partout, des boîtes noires. Côté Device, chaque téléphone est différent. La consommation énergétique dépend du modèle, de l'âge du mobile, des applications installées par l'utilisateur. Et c'était encore pire pour la partie Data. Concrètement, on ne sait pas par où passe la donnée. Dans quel pays elle a été calculée, quels câbles sous-marins elle a visité, par quelles antennes elle a été émise. Votre film Netflix peut tout aussi bien venir de New York que de Paris (heureusement, si vous êtes en France, il vient très souvent de Paris).

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/lomqznelwg5cstmjxt5n.png">
  <figcaption>À ce moment-là, on était à peu près dans cet état-là.</figcaption>
</figure>

C'était fini, il n'était plus question d'obtenir notre Graal, LE chiffre qui mettrait tout le monde d'accord. Les incertitudes étaient trop grandes. Au loin, on entendait la guilde "performance" crier : "Une seconde et demie ! Une seconde et demie de chargement sur la home page !". On était à deux doigts de casser leurs chronos.

# Le saut de la foi

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/to6ug64l50g0ypfvnp3i.png)

C'est dans ces moments-là, dans ces moments bas, que les solutions se révèlent. Ça commence d'abord par quelques réunions ratées, par des urgences qui empêchent de venir – Désolé, je serai là la semaine pro. Et puis on patine, on fait semblant, plus rien ne se produit. Jusqu'à ce qu'on s'en parle véritablement.

> – On n'avance plus ?
> – Non.
> – Non.
> – On n'arrive pas avoir ce fichu chiffre ?
> – Non.
> – Oui.
> – Hum ?
> – Oui, on n'arrive pas avoir ce fichu chiffre.
> – Ah.
> – …
> – Mais moi je ne peux pas être développeur si je ne fais pas d'écologie.
> – Pareil.
> – Peut-être qu'on pourrait en faire sans chiffre ?
> – …
> – …

Et c'est là qu'on a compris. Ce qui nous réunissait les vendredis après-midi, ce n'était pas les jolis chiffres, ni les jolis labels verts. Ce qu'on voulait, c'était réduire l'impact des sites, sensibiliser notre entourage, trouver des hacks pour que l'internet qu'on aime n'enflamme pas une planète qu'on aime encore plus.

Alors, pour avancer, on s'est mis d'accord sur quatre règles simples. Depuis, plus personne ne manque à une réunion.

# Les 4 défis de la guilde

- Toujours chercher une mesure, quitte à en avoir plusieurs.
- Comprendre ce qui se cache derrière chaque chiffre.
- Remettre constamment ses modèles en question.
- Le gaspillage n'a besoin d'aucun chiffre pour être combattu.

## Toujours chercher une mesure, quitte à en avoir plusieurs

Mettons les choses au clair tout de suite. Cette épopée n'a en rien altéré notre confiance en la mesure scientifique. Au contraire, nous l'avons éprouvé, sans le moindre chiffre, nous ne savions plus quoi faire.

Et les avancées suivent ! Chaque jour, de nouveaux articles affluent, de plus en plus précis et complets. L'un des derniers qui m'a marqué : [Evaluating the carbon footprint of a software platform hosted in the cloud](https://medium.com/teads-engineering/evaluating-the-carbon-footprint-of-a-software-platform-hosted-in-the-cloud-e716e14e060c).

Mais nous avons appris que la mesure n'était pas une fin en soi, que nous pouvions jongler avec une dizaine de chiffres différents, et tout de même avancer. Le jour où on l'a compris, on avait l'excitation du pilote d'avion qui passe en mode manuel.

Avec un seul chiffre, vous avez la tentation de suivre bêtement la carotte. Deux chiffres, vous commencez à hésiter. Quand il y en a 25, vous vous posez plein de questions. Et c'est génial.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/rmfqnxuonzl1trhs7pqz.png">
  <figcaption>Notre cockpit</figcaption>
</figure>

> When a measure becomes a target, it ceases to be a good measure
> Goodhart's law

## Comprendre ce qui se cache derrière chaque chiffre

Tout au long de l'année, nous avons appris énormément de choses : l'impact global du numérique, des centaines de bonnes pratiques, encore plus de mauvaises.

Et pourtant, nous avons le sentiment de ne pas savoir grand chose.

Avec un peu de recul, notre année a suivi les montagnes russes de l'effet Dunning-Kruger.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/tq01ptjclxrelzhxee9n.png">
  <figcaption>Cet article est écrit depuis la vallée de l'humilité.</figcaption>
</figure>

En apprenant un peu plus toutes les semaines, nous avons mis en évidence nos mauvaises certitudes. Il y en a partout. Chaque mesure trimballe avec elle le lot d'hypothèses qui l'a engendrée. Par exemple, quand on dit que le numérique représente 4% des émissions en gaz à effet de serre, on a choisi au préalable ce qu'était le numérique.

C'est pour cette raison que, aujourd'hui, nous avons décidé de consigner nos apprentissages dans un wiki. Ce wiki est en construction et il sera partagé à l'ensemble de la communauté.

À tout moment, il sera facile de voir ce que l'on sait et ce que l'on ignore. L'ennemi déclaré est la fausse connaissance.

## Remettre constamment ses modèles en question

En une nuit, tout ce que l'on sait peut être remis en question. Comment s'en sortir ?

Apprendre, toujours, avec la même envie que celle du premier jour.
Accepter de s'être trompé la veille.
Douter, examiner les choses et se former un avis.

Ça, c'est pour la théorie. En pratique, un bon moyen de tester la robustesse de son modèle est de toujours faire une prédiction en amont de la mesure. Les prédictions questionnent directement sa propre compréhension.

> Si tu peux voir détruit l’ouvrage de ta vie
> Et sans dire un seul mot te mettre à rebâtir
> Rudyard Kipling, If

## Il n'y a besoin d'aucun chiffre pour lutter contre le gaspillage

Reste que dans ce brouillard ambiant, une évidence aura toujours été là. Une règle indéboulonnable sur laquelle on a pu s'accrocher quand tout allait à vau-l’eau.

La sobriété. La ressource la moins polluante est celle que tu n'utilises pas. Énoncée, cette phrase sonne toujours ridicule – je me souviens de plusieurs rires étouffés lors de ma conférence. Et pourtant, il n'y a rien de plus vrai.

Il n'y a besoin d'aucune mesure pour savoir qu'un serveur éteint la nuit est une bonne chose. Pareil pour le désabonnement d'une newsletter jamais lue. Ou l'achat d'un téléphone reconditionné.

# Et aujourd'hui ?

Nous venons de livrer le tout premier audit Green IT de l'histoire de Theodo ! Sur un de nos projets, après avoir étudié les parcours critiques utilisateur, nous avons identifié les bonnes et les mauvaises pratiques. À la fin, un livrable tout beau et un backlog de features plein à craquer.

Le relativement faible impact que nous mesurons ne nous arrête pas. L'informatique est finalement encore jeune, et peut-être un des seuls secteurs où l'écologie arrive à temps. On ne va pas se plaindre si l'impact de notre site n'est pas impressionnant. Aujourd'hui, le numérique, c'est 4 % des émissions globales. L'objectif : qu'il reste à ce niveau-là avec l'arrivée de nouveaux utilisateurs, la multiplication des objets connectés et l'apparition de nouveaux usages – machine learning, blockchain…

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/i/p0xik8cs0f8blb5cesgj.png">
  <figcaption>L'effet rebond sur la taille des sites : On améliore l'efficacité énergétique du réseau (2G, 3G, 4G, 5G), la bande passante augmente, les sites sont plus gros, on consomme plus d'énergie.</figcaption>
</figure>


L'équipe travaille désormais pour que cet audit soit le premier d'une longue série. Avec plein de chiffres.

J'espère que ce retour d'expérience vous a plu et vous a donné l'envie de faire de l'éco-conception. Merci pour la lecture, et n'hésitez pas à envoyer des retours !