Aller au contenu principal

Méthodologie appliquée aux services web

Spécificités des services web

Définition de l’utilisation d’un service web

On peut caractériser une consultation de service web comme tel :

  • Un utilisateur peut accéder à une ou plusieurs pages d’un site web, depuis n’importe où dans le monde, une ou plusieurs fois et à partir de différents types de terminaux.
  • Quand l’utilisateur souhaite afficher une page du service, des requêtes sont envoyées via le réseau vers les serveurs qui renvoient les informations, via le réseau, sur le terminal utilisateur.
  • L’utilisateur consulte le contenu des pages pendant un temps variable.

Périmètre de l’évaluation des impacts

On distingue le cycle de vie d’un service web et le cycle de vie des équipements et infrastructures permettant l’exécution de ce service. Notre méthodologie intègre les impacts de l’ensemble des phases du cycle de vie des équipements et infrastructures impliqués dans la phase d’utilisation du service web. Les phases de fabrication (conception, développement, validation) et de fin de vie (décommissionnement) du site web ne sont pas pris en compte ici.

Approche ACV

L’approche multi-composant énoncée au paragraphe Approche multi-composants est mise en œuvre en décomposant le service en 3 couches d’équipements et infrastructures numériques impliquées dans l’utilisation d’un service web :

  • Terminaux utilisateur final : comprend les équipements utilisés par les utilisateurs pour consulter le service.
  • Réseau : comprend les infrastructures réseau internet pour les échanges de données entre les terminaux des utilisateurs finaux et les centres de données.
  • Datacenters : comprend les équipements liés à l’hébergement et au traitement des données.

L’allocation des terminaux et des centres de données est basée sur la durée d’utilisation du service, le réseau sur les octets transférés. Les impacts d’un service web résultent de la somme de ces 3 composantes :

web.png

L’évaluation des impacts d’un service web est une agrégation des impacts par page, la méthodologie d’évaluation présentée ici s’applique au niveau d’une page.

Simulation du nombre de vues par page

L’impact d’un site web est directement lié au nombre de fois où ses pages sont consultées. Le nombre de vues par page est donc un indicateur essentiel pour estimer l’impact du service. Il est récupérable au travers des services d’analyses d’audience qui tracent les interactions du site et existent sur une grande majorité de services.

Dans le cas où le nombre de vues par page n’est pas connu, le nombre de vues total du service est réparti entre les différentes pages du service selon ce qu’on appelle leur « chance de vue », un indice basé sur plusieurs variables caractéristiques de la page (profondeur, nombre de pages « enfants »…).

À l’aide d’un modèle de régression linéaire et de notre base de données interne, le travail de R&D a permis d’obtenir des coefficients associés à chaque variable. Sur la base de ces coefficients, nous calculons l’ensemble des pourcentages de chance de vue pour chaque page du site web, à l’aide de l’équation suivante

V(p)=0,26822×N241,08179×dist(p)+12,89528×desc(p)+160,37288×children(p)+1049,3743AvecV(p)=Probabiliteˊ de vues de la page pN=Nombre total de pages du service numeˊriquedist(p){1,4}=Distance aˋ parcourir depuis la page d’accueil pour trouver la pagedesc(p)=Nombre de pages descendants de cette pagechildren(p)=Nombre de pages enfant de cette page, descendant direct\begin{align*} &V(p) = 0,26822 \times N - 241,08179 \times dist(p) + 12,89528 \times desc(p) + 160,37288 \times children(p) + 1049,3743 \\ Avec\\ &V(p) = \text{Probabilité de vues de la page}\textit{ p}\\ &N = \text{Nombre total de pages du service numérique}\\ &dist(p) \in \{1,4\} = \text{Distance à parcourir depuis la page d'accueil pour trouver la page}\\ &desc(p) = \text{Nombre de pages descendants de cette page}\\ &children(p) = \text{Nombre de pages enfant de cette page, descendant direct}\\ \end{align*}

Nous réalisons, ensuite, une normalisation des pourcentages de vues au projet selon la formule suivante, nous permettant d’obtenir des pourcentages de vues compris entre 0 et 1. :

Vnorm(p)=V(p)minpPV(p)maxpPV(p)minpPV(p)AvecVnorm(p)=Probabiliteˊ normaliseˊe de vues de la page pV(p)=Probabiliteˊ de vues de la page pP=Ensemble des pages du service numeˊrique\begin{align*} &V_{norm}(p) = \frac{V(p) - \min\limits_{\forall p' \in P}V(p')}{\max\limits_{\forall p' \in P}V(p') - \min\limits_{\forall p' \in P}V(p')} \\ Avec\\ &V_{norm}(p) = \text{Probabilité normalisée de vues de la page}\textit{ p}\\ &V(p) = \text{Probabilité de vues de la page}\textit{ p}\\ &P = \text{Ensemble des pages du service numérique}\\ \end{align*}

Cependant, une fois cette transformation réalisée, nous faisons face à une seconde difficulté : la somme des pourcentages de vues pour chaque projet n’est pas systématiquement égale à 1. Or, il est nécessaire de répartir l’ensemble des chances de vues entre l’ensemble des pages, et donc avoir une somme des chances de vues qui soit égale à 1.

Pour pallier cette nouvelle difficulté, nous décidons de réaliser une nouvelle normalisation, en divisant chacun des pourcentages de vues (compris entre 0 et 1) par la somme des pourcentages de vues du projet concerné. Cela permet de dispatcher l’ensemble des chances de vues entre les différentes pages, et d’obtenir une somme des chances de vues qui soit égale à 1.

In fine, nous obtenons une chance de vues par page comprise entre 0 et 1, et la somme des chances de vues de l’ensemble des pages de chaque service est égale à 1.

Pour chaque page, en multipliant le résultat final par le nombre de vues totales, on a alors les vues prédites par pages.

Evaluation des impacts environnementaux d’une page web

Impact du terminal

Paramètres

NomDéfinitionValeur par défaut
ViewsNombre de vues de la page, déclinable en en fonction du type de terminal en Views_mobile et Views_desktopRépartition par page à partir des vues totales (cf. Simulation du nombre de vues par page)
UsageDurationPerViewDurée moyenne d’une vue de la page, déclinable en fonction du type de terminal en UsageDurationPerView_mobile et UsageDurationPerView_desktopDesktop : 69 secondes1
Mobile : 34 secondes1
RatioMobileUserProportion d’utilisateurs sur mobile par rapport aux utilisateurs totaux0,592
RatioDesktopUserProportion d’utilisateur sur desktop par rapport aux utilisateurs totaux1 - RatioMobileUser

Facteurs d’impacts

Les facteurs fournis par la Base Empreinte font l’objet d’une transformation pour :

  • Passer dans des unités de temps à la seconde pour coller aux ordres de grandeur des temps d’utilisation d’un service web
  • Obtenir un impact énergie qui prend en compte le temps d’utilisation moyen de chaque typologie d’équipement

Les facteurs sont calculés :

  • Par équipement : mobile ou desktop
  • Puis par catégorie d’équipement :
    • Smartphone et tablette pour mobile
    • Laptop, ordinateur fixe et écran pour le desktop, avec pour chacun une distinction entre un usage professionnel et un usage personnel

Les facteurs par équipement sont obtenus à partir d’une pondération des facteurs de chaque catégorie. Ces coefficients de pondération sont extraits du rapport de l’ADEME/Arcep « Evaluation environnementale des équipements et infrastructures numériques en France, 2ème volet » de janvier 2022.

Le tableau ci-dessous présente les données utilisées pour cette adaptation ainsi que les facteurs obtenus :

  • Les facteurs d’impact opérationnels sont à récupérer sur la ligne « Impact énergie en kWh/sec»
  • Les facteurs d’impact intrinsèques sont à récupérer en fonction de l’indicateur environnemental étudié, dans les autres lignes du tableau

Equipement

Mobile

Desktop

Catégorie

 

Tablette

Smartphone

 

Laptop

Ordinateur fixe (sans écran)

Ecran d'ordinateur

Détail

   

perso

pro

 

perso

pro

 

perso

pro

Répartition

 

0,1

0,9

 

0,6

0,545

0,455

0,4

0,47

0,53

0,4

0,47

0,53

Quantité  d'électricité nécessaire pour le procédé (kWh/an)3

 

18,6

3,9

  

30,96

30,96

 

100

151

 

54

54,5

Temps d’utilisation par jour (h/j)

 

2,604

3,405

  

3,155

8,006

 

3,154

8,005

 

3,154

8,005

Impact énergie en kWh/sec

1,33E-06

5,44E-06

8,73E-07

1,44E-05

5,42E-06

7,48E-06

2,95E-06

1,90E-05

2,42E-05

1,44E-05

8,88E-06

1,30E-05

5,18E-06

PEF-ADPe (kg SB eq./sec)

2,73E-11

3,96E-11

2,60E-11

7,40E-11

5,87E-11

5,07E-11

6,82E-11

4,50E-11

4,50E-11

4,50E-11

5,20E-11

5,20E-11

5,20E-11

PEF-AP (mol H+ eq./sec)

5,97E-09

4,92E-09

6,09E-09

8,34E-09

7,20E-09

6,31E-09

8,28E-09

8,21E-09

8,21E-09

8,21E-09

1,84E-09

1,84E-09

1,84E-09

PEF-CTUe (CTUe/sec)

1,69E-05

1,62E-05

1,69E-05

2,34E-05

2,11E-05

1,93E-05

2,31E-05

2,45E-05

2,45E-05

2,45E-05

2,29E-06

2,29E-06

2,29E-06

PEF-CTUh-c (CTUh/sec)

2,08E-16

1,89E-16

2,10E-16

1,21E-16

3,00E-16

2,87E-16

3,15E-16

-1,50E-16

-1,50E-16

-1,50E-16

2,19E-18

2,19E-18

2,19E-18

PEF-CTUh-nc (CTUh/sec)

7,19E-15

7,39E-15

7,17E-15

9,33E-15

8,41E-15

6,85E-15

1,03E-14

7,86E-15

7,86E-15

7,86E-15

2,85E-15

2,85E-15

2,85E-15

PEF-GWP (kg CO2 eq./sec)

1,04E-06

8,02E-07

1,07E-06

1,46E-06

1,26E-06

1,11E-06

1,44E-06

1,46E-06

1,46E-06

1,46E-06

3,11E-07

3,11E-07

3,11E-07

PEF-IR (kg U235 eq./sec)

1,90E-07

3,42E-07

1,73E-07

2,43E-06

5,26E-07

4,79E-07

5,83E-07

4,60E-06

4,60E-06

4,60E-06

6,94E-07

6,94E-07

6,94E-07

PEF-PM (Disease occurrence/sec)

3,36E-14

2,77E-14

3,42E-14

5,05E-14

4,22E-14

3,71E-14

4,82E-14

5,07E-14

5,07E-14

5,07E-14

1,23E-14

1,23E-14

1,23E-14

PEF-WU (m3 eq./sec)

-1,31E-06

-8,94E-07

-1,35E-06

-1,42E-05

-5,76E-06

-5,20E-06

-6,44E-06

-2,38E-05

-2,38E-05

-2,38E-05

-3,08E-06

-3,08E-06

-3,08E-06

Impact intrinsèque du terminal

L’impact intrinsèque du terminal s’évalue avec des facteurs propres à la nature du terminal. On a donc :

Iembodiedequipment,i=Iembodieddesktop,i+Iembodiedmobile,i[Ui]AvecIembodiedequipment,i=Impact intrinseˋque des terminaux pour l’indicateur i [Ui]Iembodieddesktop,i=Impact intrinseˋque des ordinateurs pour l’indicateur i [Ui]Iembodiedmobile,i=Impact intrinseˋque des mobiles pour l’indicateur i [Ui]\begin{align*} &I_{embodied_\text{equipment,i}} = I_{embodied_\text{desktop,i}} + I_{embodied_\text{mobile,i}}\htmlClass{unit}{[U_i]}\\ Avec \\ &I_{embodied_\text{equipment,i}} = \text{Impact intrinsèque des terminaux pour l’indicateur}\textit{ i }\htmlClass{unit}{[U_i]}\\ &I_{embodied_\text{desktop,i}} = \text{Impact intrinsèque des ordinateurs pour l’indicateur}\textit{ i }\htmlClass{unit}{[U_i]}\\ &I_{embodied_\text{mobile,i}} = \text{Impact intrinsèque des mobiles pour l’indicateur}\textit{ i }\htmlClass{unit}{[U_i]}\\ \end{align*}

On calcule Iembodiedmobile,iI_{embodied_\text{mobile,i}} à partir de la formule d’impact intrinsèque d’un équipement, vue au paragraphe Impact intrinsèque d'un équipement, avec :

  • Le facteur d’impact intrinsèque à récupérer dans la colonne « Mobile » du tableau de la page précédente en fonction de l’indicateur environnemental étudié
  • Une durée d’utilisation évaluée à partir des paramètres mobiles et selon la formule suivante :
Dusage,mobile=Vmobile×Dview,mobile[s]AvecDusage,mobile=Dureˊe d’usage par des terminaux mobiles[s]Vmobile=Nombre de vues effectueˊes avec un terminal mobileDview,mobile=Dureˊe moyenne d’une vue effectueˊe avec un terminal mobile[s]\begin{align*} &D_{usage,mobile} = V_{mobile} \times D_{view,mobile}\htmlClass{unit}{[s]}\\ Avec \\ &D_{usage,mobile} = \text{Durée d'usage par des terminaux mobiles}\htmlClass{unit}{[s]}\\ &V_{mobile} = \text{Nombre de vues effectuées avec un terminal mobile}\\ &D_{view,mobile} = \text{Durée moyenne d'une vue effectuée avec un terminal mobile}\htmlClass{unit}{[s]}\\ \end{align*}

On calcule Iembodieddesktop,iI_{embodied_\text{desktop,i}} à partir de la formule d’impact intrinsèque d’un équipement, vue au paragraphe Impact intrinsèque d'un équipement, avec :

  • Le facteur d’impact intrinsèque à récupérer dans la colonne « Desktop » du tableau de la page précédente en fonction de l’indicateur environnemental étudié
  • Une durée d’utilisation évaluée à partir des paramètres desktop et selon la formule suivante :
Dusage,desktop=Vmobile×Dview,desktop[s]AvecDusage,desktop=Dureˊe d’usage par des ordinateurs[s]Vmobile=Nombre de vues effectueˊes avec un ordinateurDview,desktop=Dureˊe moyenne d’une vue effectueˊe avec un ordinateur[s]\begin{align*} &D_{usage,desktop} = V_{mobile} \times D_{view,desktop}\htmlClass{unit}{[s]}\\ Avec \\ &D_{usage,desktop} = \text{Durée d'usage par des ordinateurs}\htmlClass{unit}{[s]}\\ &V_{mobile} = \text{Nombre de vues effectuées avec un ordinateur}\\ &D_{view,desktop} = \text{Durée moyenne d'une vue effectuée avec un ordinateur}\htmlClass{unit}{[s]}\\ \end{align*}

Impact opérationnel du terminal

La consommation d’électricité du terminal s’évalue avec des facteurs propres à la nature du terminal. On a donc :

Eelecequipement=Eelecmobile+Eelecdesktop[kWh]AvecEelecequipement=Consommation eˊlectrique des eˊquipements[kWh]Eelecmobile=Consommation eˊlectrique des mobiles[kWh]Eelecdesktop=Consommation eˊlectrique des ordinateurs[kWh]\begin{align*} &E_{elec_{equipement}} = E_{elec_{mobile}} + E_{elec_{desktop}}\htmlClass{unit}{[kWh]}\\ Avec \\ &E_{elec_{equipement}} = \text{Consommation électrique des équipements}\htmlClass{unit}{[kWh]}\\ &E_{elec_{mobile}} = \text{Consommation électrique des mobiles}\htmlClass{unit}{[kWh]}\\ &E_{elec_{desktop}} = \text{Consommation électrique des ordinateurs}\htmlClass{unit}{[kWh]}\\ \end{align*}

On calcule EelecmobileE_{elec_{mobile}} à partir de la formule de consommation d’électricité d’un équipement vue au paragraphe Impact opérationnel d'un équipement, avec :

  • Le facteur d’impact opérationnel à récupérer sur la ligne « Impact énergie en kWh/s » et dans la colonne « Mobile » du tableau de la page précédente
  • La même durée d’utilisation que pour l’impact intrinsèque : Dusage,mobileD_{usage,mobile}

On calcule EelecdesktopE_{elec_{desktop}} à partir de la formule de consommation d’électricité d’un équipement vue au paragraphe Impact opérationnel d'un équipement, avec :

  • Le facteur d’impact opérationnel à récupérer sur la ligne « Impact énergie en kWh/s » et dans la colonne « Desktop » du tableau de la page précédente
  • La même durée d’utilisation que pour l’impact intrinsèque : Dusage,desktopD_{usage,desktop}

La conversion de la consommation électrique en impact opérationnel se fait sur la base de la formule fournie dans le paragraphe Conversion d’une consommation d’électricité en impact opérationnel.

Impact du réseau

Paramètres

NomDéfinitionValeur par défaut
ViewsNombre de vues de la page, déclinable en en fonction du type de terminal en Views_mobile et Views_desktopRépartition par page à partir des vues totales (cf. Simulation du nombre de vues par page)
RatioNewVisitorProportion de visiteurs qui effectuent une première visite par rapport aux utilisateurs totaux, déclinable en RatioNewVisitor_Desktop et RatioNewVisitor_MobileRatioNewVisitor_Desktop: 0.4181
RatioNewVisitor_Mobile: 0.548391
RatioReturningVisitorProportion de visiteurs récurrents par rapport aux visiteurs totaux1 – RatioNewVisitor
CacheEfficiencyRatio des données transférées non rechargées lors d’une deuxième visite
CacheHitRatioCDNPrésence ou non d’un CDN et hit ratio de celui-ciSi pas de CDN CacheHitRatio = 0
Sinon CacheHitRatio = 0.95

Segmentation du réseau

network-operational-map.png

Afin de tenir compte de l'effet des distances et des pays des réseaux sur lesquels transite la donnée, le réseau entre l'utilisateur et le datacenter est modélisé comme l'agrégation de 3 segments :

  • le segment du pays de l’utilisateur (Segment 1)
  • le segment interpays (Segment 2)
  • le segment du pays du centre de donnée (Segment 3)

Impact intrinsèque du réseau

L’impact intrinsèque du réseau se calcule en prenant en compte l’effet du cache navigateur, la présence d'un CDN et les paramètres du réseau étudié :

Iembodiednetwork=Vpage×(1Preturning×Pcache)×(SIembodied1+(1HRCDN)×(SIembodied2+SIembodied3))[Ui]AvecIembodiednetwork=Impact intrinseˋque du reˊseau[Ui]Vpage=Nombre de vues de la pagePreturning=Pourcentage de visiteurs reˊcurrents[0..1]Pcache=Pourcentage des donneˊes transfeˊreˊes non rechargeˊes par le navigateur[0..1]SIembodied1=Impact intrinseˋque du segment "pays de l’utilisateur"[Ui]SIembodied2=Impact intrinseˋque du segment "interpays"[Ui]SIembodied3=Impact intrinseˋque du segment "pays du datacenter"[Ui]HRCDN=Pourcentage de hits du CDN si preˊsent, 0 sinon[0..1]\begin{align*} &I_{embodied_{network}} = V_{page} \times (1 - P_{returning} \times P_{cache}) \times (SI_{embodied_1} + (1 - HR_{CDN}) \times (SI_{embodied_2} + SI_{embodied_3}))\htmlClass{unit}{[U_i]}\\ Avec \\ &I_{embodied_{network}} = \text{Impact intrinsèque du réseau}\htmlClass{unit}{[U_i]}\\ &V_{page} = \text{Nombre de vues de la page}\\ &P_{returning} = \text{Pourcentage de visiteurs récurrents}\htmlClass{unit}{[0..1]}\\ &P_{cache} = \text{Pourcentage des données transférées non rechargées par le navigateur}\htmlClass{unit}{[0..1]}\\ &SI_{embodied_1} = \text{Impact intrinsèque du segment "pays de l'utilisateur"}\htmlClass{unit}{[U_i]}\\ &SI_{embodied_2} = \text{Impact intrinsèque du segment "interpays"}\htmlClass{unit}{[U_i]}\\ &SI_{embodied_3} = \text{Impact intrinsèque du segment "pays du datacenter"}\htmlClass{unit}{[U_i]}\\ &HR_{CDN} = \text{Pourcentage de hits du CDN si présent, 0 sinon}\htmlClass{unit}{[0..1]}\\ \end{align*}

Impact opérationnel du réseau

La consommation électrique du réseau se calcule en prenant en compte l’effet du cache navigateur, la présence d'un CDN et les paramètres du réseau étudié :

Eelecnetwork=Vpage×(1Preturning×Pcache)×(SEelec1+(1HRCDN)×(SEelec2+SEelec3))[kWh]AvecEelecnetwork=Consommation eˊlectrique du reˊseau[kWh]Vpage=Nombre de vues de la pagePreturning=Pourcentage de visiteurs reˊcurrents[0..1]Pcache=Pourcentage des donneˊes transfeˊreˊes non rechargeˊes par le navigateur[0..1]SEelec1=Consommation d’eˊlectriciteˊ du segment "pays de l’utilisateur"[kWh]SEelec2=Consommation d’eˊlectriciteˊ du segment "interpays"[kWh]SEelec3=Consommation d’eˊlectriciteˊ du segment "pays du datacenter"[kWh]HRCDN=Pourcentage de hits du CDN si preˊsent, 0 sinon[0..1]\begin{align*} &E_{elec_{network}} = V_{page} \times (1 - P_{returning} \times P_{cache}) \times (SE_{elec_1} + (1 - HR_{CDN}) \times (SE_{elec_2} + SE_{elec_3}))\htmlClass{unit}{[kWh]}\\ Avec \\ &E_{elec_{network}} = \text{Consommation électrique du réseau}\htmlClass{unit}{[kWh]}\\ &V_{page} = \text{Nombre de vues de la page}\\ &P_{returning} = \text{Pourcentage de visiteurs récurrents}\htmlClass{unit}{[0..1]}\\ &P_{cache} = \text{Pourcentage des données transférées non rechargées par le navigateur}\htmlClass{unit}{[0..1]}\\ &SE_{elec_1} = \text{Consommation d’électricité du segment "pays de l'utilisateur"}\htmlClass{unit}{[kWh]}\\ &SE_{elec_2} = \text{Consommation d’électricité du segment "interpays"}\htmlClass{unit}{[kWh]}\\ &SE_{elec_3} = \text{Consommation d’électricité du segment "pays du datacenter"}\htmlClass{unit}{[kWh]}\\ &HR_{CDN} = \text{Pourcentage de hits du CDN si présent, 0 sinon}\htmlClass{unit}{[0..1]}\\ \end{align*}

On dispose ici de la consommation électrique globale de l’utilisation du réseau, ce qui correspond à l’indicateur de flux attendu conformément au paragraphe Indicateurs pris en compte dans l’évaluation.

On calcule l'énergie des 3 segments SEelecnSE_{elec_n} conformément aux dispositions vues au paragraphe Cas d’un réseau externe, type WAN. Les mêmes valeurs par défaut sont appliquées que pour l’impact intrinsèque lorsqu’on ne connaît pas les ratios d’usages mobiles/fixes et mobile/desktop.

Sur les 3 segments, le réseau peut traverser potentiellement plusieurs pays différents et donc avec des mix électriques qui leur sont propres. La conversion de la consommation électrique en impact doit ainsi se faire de manière individuelle par segment, conformément à la formule fournie au paragraphe Conversion d’une consommation d’électricité en impact opérationnel.

Ces impacts par segments sont ensuite agrégés, sur le même modèle que EelecnetworkE_{elec_{network}}, pour obtenir l’impact global du réseau sur tout son trajet.

Iinetwork=Vpage×(1Preturning×Pcache)×(SIi1+(1HRCDN)×(SIi2+SIi3))[Ui]AvecIinetwork=Impact du reˊseaupour l’indicateur environnemental i [Ui]Vpage=Nombre de vues de la pagePreturning=Pourcentage de visiteurs reˊcurrents[0..1]Pcache=Pourcentage des donneˊes transfeˊreˊes non rechargeˊes par le navigateur[0..1]SIi1=Impact du segment "pays de l’utilisateur"pour l’indicateur environnemental i [Ui]SIi2=Impact du segment "interpays"pour l’indicateur environnemental i [Ui]SIi3=Impact du segment "pays du datacenter"pour l’indicateur environnemental i [Ui]HRCDN=Pourcentage de hits du CDN si preˊsent, 0 sinon[0..1]\begin{align*} &I_{i_{network}} = V_{page} \times (1 - P_{returning} \times P_{cache}) \times (SI_{i_1} + (1 - HR_{CDN}) \times (SI_{i_2} + SI_{i_3}))\htmlClass{unit}{[U_i]}\\ Avec \\ &I_{i_{network}} = \text{Impact du réseau}\text{pour l’indicateur environnemental}\textit{ i }\htmlClass{unit}{[U_i]}\\ &V_{page} = \text{Nombre de vues de la page}\\ &P_{returning} = \text{Pourcentage de visiteurs récurrents}\htmlClass{unit}{[0..1]}\\ &P_{cache} = \text{Pourcentage des données transférées non rechargées par le navigateur}\htmlClass{unit}{[0..1]}\\ &SI_{i_1} = \text{Impact du segment "pays de l'utilisateur"}\text{pour l’indicateur environnemental}\textit{ i }\htmlClass{unit}{[U_i]}\\ &SI_{i_2} = \text{Impact du segment "interpays"}\text{pour l’indicateur environnemental}\textit{ i }\htmlClass{unit}{[U_i]}\\ &SI_{i_3} = \text{Impact du segment "pays du datacenter"}\text{pour l’indicateur environnemental}\textit{ i }\htmlClass{unit}{[U_i]}\\ &HR_{CDN} = \text{Pourcentage de hits du CDN si présent, 0 sinon}\htmlClass{unit}{[0..1]}\\ \end{align*}

Impact du serveur

Répartition de l’impact par page

L’impact du centre de donnée est évalué de manière globale, pour l’ensemble du site web IdatacenterI_{datacenter}. Cet impact est ensuite réparti avec le ratio de vues pour chacune des pages (Vpage/VtotalV_{page}/V_{total}) pour obtenir l’impact de chaque page Idatacenter,pageI_{datacenter,page} :

Idatacenter,page=Idatacenter×VpageVtotalAvecIdatacenter,page=Impact du datacenter rameneˊ aˋ la page page Idatacenter=Impact global du datacenterVpage=Nombre de vues pour la page page Vtotal=Nombre total de vues pour le service\begin{align*} &I_{datacenter,page} = I_{datacenter} \times \frac{V_{page}}{V_{total}}\\ Avec \\ &I_{datacenter, page} = \text{Impact du datacenter ramené à la page}\textit{ page }\\ &I_{datacenter} = \text{Impact global du datacenter}\\ &V_{page} = \text{Nombre de vues pour la page}\textit{ page }\\ &V_{total} = \text{Nombre total de vues pour le service}\\ \end{align*}

Simulation des paramètres serveur

L’utilisation des données et caractéristiques réelles des serveurs est toujours à privilégier par rapport aux méthodes de simulation que nous allons exposer ici.

Dans le cas où les caractéristiques des serveurs ne sont pas connues, mais qu’on dispose d’une volumétrie d’usage par les utilisateurs du site web (temps d’utilisation du service, nombre d’utilisateurs), nous proposons un modèle de corrélation entre l’audience et la quantité de VM nécessaires à la délivrance du service. Les VM ainsi modélisées portent les mêmes caractéristiques que le modèle de machine virtuelle « moyenne » définit par la Base Empreinte.7

Nous cherchons à obtenir 2 valeurs :

  • Le nombre de VM de type "machine virtuelle moyenne" nécessaires pour faire fonctionner le service
  • La durée d'utilisation de l'ensemble des VM

Dans la suite de la section, nous prenons l’hypothèse d’une durée d’évaluation d’1 an, c’est-à-dire d’un cas où on cherche à connaître l’impact serveur sur 1 an d’utilisation du site web.

Si nous ne disposons d'aucune information sur la durée et la configuration serveur.

Dans un premier temps, nous estimons la durée d’utilisation totale du service DtotalD_{total} qui correspond à la durée cumulée de toutes les vues.

L’approche se base sur le principe simple qu’un utilisateur consomme un thread (un vCPU) lorsqu’il utilise le service. Par conséquent, la durée d’utilisation totale du service DtotalD_{total} permet d’obtenir la consommation de vCPU nécessaire pour délivrer le service.

Exemple

Une durée d’utilisation totale de 200 s correspond à une consommation de 200 vCPU.s pour assurer le service. Cette consommation de 200 vCPU.s peut être émise par 1 vCPU pendant 200s ou par 100 vCPU simultanées durant 2s.

À partir de la consommation de vCPU, on en déduit la quantité de VM nécessaires au fonctionnement du service NVM,idealN_{VM,ideal} sur toute la durée d’évaluation, ramenée ici à 1 an :

NVM,ideal=DusageCvCPU×DtotalAvecNVM,ideal=Quantiteˊ ideˊale de VM neˊcessaire pour deˊlivrer le serviceCvCPU=Nombre de vCPU par VM, vaut 8 par deˊfaut pour une VM moyenneDusage=Dureˊe d’utilisation annuelle du service[s]Dtotal=Dureˊe totale d’une anneˊe = 3600×24×365.25[s]\begin{align*} &N_{VM,ideal} = \frac{D_{usage}}{C_{vCPU} \times D_{total}}\\ Avec \\ &N_{VM,ideal} = \text{Quantité idéale de VM nécessaire pour délivrer le service}\\ &C_{vCPU} = \text{Nombre de vCPU par VM, vaut 8 par défaut pour une VM moyenne}\\ &D_{usage} = \text{Durée d’utilisation annuelle du service}\htmlClass{unit}{[s]}\\ &D_{total} = \text{Durée totale d'une année = 3600} \times 24 \times 365.25\htmlClass{unit}{[s]}\\ \end{align*}

La quantité de VM idéale obtenue n’est pas un nombre entier. Or dans notre modélisation, on cherche à ramener le fonctionnement à une configuration matérielle équivalente réelle. L’équation suivante nous permet d’obtenir le nombre de VM nécessaires pour couvrir le besoin exprimé par la variable NVM,idealN_{VM,ideal} :

NVM=NVM,idealAvecNVM=Quantiteˊ reˊelle de VM neˊcessaire pour deˊlivrer le serviceNVM,ideal=Quantiteˊ ideˊale de VM neˊcessaire pour deˊlivrer le service\begin{align*} &N_{VM} = \lceil N_{VM,ideal} \rceil\\ Avec \\ &N_{VM} = \text{Quantité réelle de VM nécessaire pour délivrer le service}\\ &N_{VM,ideal} = \text{Quantité idéale de VM nécessaire pour délivrer le service}\\ \end{align*}

On calcule enfin le temps de fonctionnement moyen de chaque VM sur l’année DVMD_{VM} en prenant en compte le ratio quantité de VM sur nombre de VM afin de retranscrire le fait que les VM modélisées ne fonctionnent pas en permanence pour le service.

DVM=Dtotal×NVM,idealNVM[s]AvecDVM=Dureˊe moyenne de fonctionnement d’une VM sur une anneˊe[s]Dtotal=Dureˊe totale d’une anneˊe = 3600×24×365.25[s]NVM=Quantiteˊ reˊelle de VM neˊcessaire pour deˊlivrer le serviceNVM,ideal=Quantiteˊ ideˊale de VM neˊcessaire pour deˊlivrer le service\begin{align*} &D_{VM} = D_{total} \times \frac{N_{VM,ideal}}{N_{VM}}\htmlClass{unit}{[s]}\\ Avec \\ &D_{VM} = \text{Durée moyenne de fonctionnement d'une VM sur une année}\htmlClass{unit}{[s]}\\ &D_{total} = \text{Durée totale d'une année = 3600} \times 24 \times 365.25\htmlClass{unit}{[s]}\\ &N_{VM} = \text{Quantité réelle de VM nécessaire pour délivrer le service}\\ &N_{VM,ideal} = \text{Quantité idéale de VM nécessaire pour délivrer le service}\\ \end{align*}
Si on connait la durée d’utilisation du serveur

La valeur de la durée d'utilisation serveur DserverD_{server} est déterminée depuis les analytics ou les données serveurs. Nous déterminons le nombre de VM nécessaires au fonctionnement NVM,idealN_{VM,ideal} à partir de celle-ci et de l'audience du service DtotalD_{total}.

NVM=DusageDserver×CvCPUAvecNVM=Quantiteˊ reˊelle de VM neˊcessaire pour deˊlivrer le serviceDusage=Dureˊe d’utilisation annuelle du service[s]Dserver=Dureˊe d’utilisation annuelle des serveurs[s]CvCPU=Nombre de vCPU par VM, vaut 8 par deˊfaut pour une VM moyenne\begin{align*} &N_{VM} = \lceil \frac{D_{usage}}{D_{server} \times C_{vCPU}} \rceil\\ Avec \\ &N_{VM} = \text{Quantité réelle de VM nécessaire pour délivrer le service}\\ &D_{usage} = \text{Durée d’utilisation annuelle du service}\htmlClass{unit}{[s]}\\ &D_{server} = \text{Durée d’utilisation annuelle des serveurs}\htmlClass{unit}{[s]}\\ &C_{vCPU} = \text{Nombre de vCPU par VM, vaut 8 par défaut pour une VM moyenne}\\ \end{align*}

Impact intrinsèque du centre de données

Les impacts intrinsèques des serveurs reposent sur une approche équipement. Le fait que seuls les impacts des équipements informatiques sont considérés (et pas ceux du centre de donnée dans son ensemble) constitue une limite actuelle de la méthodologie.

On évalue dans un premier temps la somme des impacts des n VM identifiées comme nécessaires au fonctionnement du site web NVMN_{VM}, en distinguant la présence ou non d’un CDN :

Iembodiedi=(1HRCDN)×(NVM×Iembodied, VMi)+Iembodied, CDNi[Ui]AvecIembodiedi=Impact intrinseˋque du centre de donneˊes pour l’indicateur i [Ui]HRCDN=Pourcentage de hits du CDN si preˊsent, 0 sinon[0..1]NVM=Quantiteˊ reˊelle de VM neˊcessaire pour deˊlivrer le serviceIembodied, VMi=Impact intrinseˋque d’une VM pour l’indicateur i [Ui]Iembodied, CDNi=Impact intrinseˋque du CDN pour l’indicateur i si preˊsent, 0 sinon[Ui]\begin{align*} &I_{embodied_i} = (1 - HR_{CDN}) \times \left( N_{VM} \times I_{\text{embodied, VM}_{i}} \right) + I_{\text{embodied, CDN}_{i}}\htmlClass{unit}{[U_i]}\\ Avec \\ &I_{embodied_i} = \text{Impact intrinsèque du centre de données pour l’indicateur}\textit{ i }\htmlClass{unit}{[U_i]}\\ &HR_{CDN} = \text{Pourcentage de hits du CDN si présent, 0 sinon}\htmlClass{unit}{[0..1]}\\ &N_{VM} = \text{Quantité réelle de VM nécessaire pour délivrer le service}\\ &I_{\text{embodied, VM}_{i}} = \text{Impact intrinsèque d'une VM pour l’indicateur}\textit{ i }\htmlClass{unit}{[U_i]}\\ &I_{\text{embodied, CDN}_{i}} = \text{Impact intrinsèque du CDN pour l’indicateur}\textit{ i }\text{si présent, 0 sinon}\htmlClass{unit}{[U_i]}\\ \end{align*}

Impact opérationnel du centre de données

Les impacts opérationnels des serveurs reposent sur une estimation de type système. On fait la somme des impacts des n VM NVMN_{VM} pour estimer la consommation d’énergie puis on transforme pour connaitre la consommation d’énergie du centre de données.

Ioperationali=(1HRCDN)×(NVM×Ioperational, VMi)+Ioperational, CDNi[Ui]AvecIoperationali=Impact opeˊrationnel du centre de donneˊes pour l’indicateur i [Ui]HRCDN=Pourcentage de hits du CDN si preˊsent, 0 sinon[0..1]NVM=Quantiteˊ reˊelle de VM neˊcessaire pour deˊlivrer le serviceIoperational, VMi=Impact opeˊrationnel d’une VM pour l’indicateur i [Ui]Ioperational, CDNi=Impact opeˊrationnel du CDN pour l’indicateur i si preˊsent, 0 sinon[Ui]\begin{align*} &I_{operational_i} = (1 - HR_{CDN}) \times \left( N_{VM} \times I_{\text{operational, VM}_{i}} \right) + I_{\text{operational, CDN}_{i}}\htmlClass{unit}{[U_i]}\\ Avec \\ &I_{operational_i} = \text{Impact opérationnel du centre de données pour l’indicateur}\textit{ i }\htmlClass{unit}{[U_i]}\\ &HR_{CDN} = \text{Pourcentage de hits du CDN si présent, 0 sinon}\htmlClass{unit}{[0..1]}\\ &N_{VM} = \text{Quantité réelle de VM nécessaire pour délivrer le service}\\ &I_{\text{operational, VM}_{i}} = \text{Impact opérationnel d'une VM pour l’indicateur}\textit{ i }\htmlClass{unit}{[U_i]}\\ &I_{\text{operational, CDN}_{i}} = \text{Impact opérationnel du CDN pour l’indicateur}\textit{ i }\text{si présent, 0 sinon}\htmlClass{unit}{[U_i]}\\ \end{align*}

Dans le calcul des variables IoperationaliI_{operational_i}, la valeur du REF est basée sur la détection par the greenwebfoundation8 d’un hébergement « vert » (REF = 1) ou non (REF = 0).

Restitutions chiffrées des impacts environnementaux des services web

Les formules présentées précédemment permettent d’obtenir des impacts environnementaux. Elles sont déclinables pour l’évaluation des empreintes environnementales48 mais aussi l’estimation de scores.

Les empreintes correspondent à l’impact réel lié à l’utilisation sur 1 an. On les évalue à l’aide de la méthodologie d’évaluation des impacts environnementaux et avec les données d’usage réelle d’un service, par exemple à l’aide des données récupéré des analytics. Elles sont exprimées dans les unités de mesure propres à l’impact qu’elles caractérisent : gCO2e pour le carbone, L ou m3 pour l’eau… L’empreinte totale d’un service web correspond à la somme des empreintes de chacune de pages.

Les scores s’affichent sous la forme d’un entier entre 0 et 100. Ils sont mis en forme à partir des impacts estimés sur les services web. Leur calcul prend en compte les variables du service, mais aussi certaines hypothèses d’utilisation fixes. L’application de ces critères communs permet d’obtenir un score comparable aux scores d’autres services, et cela quelle que soit la taille ou la fréquentation du site web. On prend comme référence pour tous les services et toutes les pages analysées le cas d’1 nouvelle visite (pas de cache), avec 58% d’utilisateurs à partir de terminaux mobiles et une durée moyenne d’utilisation de 20s.

impact-scores.png

Les scores environnementaux du site sont déterminés par une moyenne pondérée des scores par page. La pondération (coefficient de trafic) a pour objectif de prendre en compte l’impact final du site en donnant plus de poids aux pages vues le plus souvent. On applique cette formule :

Si=k=1nSk,i×αkk=1nαk[0..100]AvecSi=Score global pour l’indicateur environnemental i [0..100]Sk,i=Score de la page k pour l’indicateur environnemental i [0..100]αk=Nombre ou chance de vue de la page k >0\begin{align*} &S_{i} = \frac{\sum_{k=1}^n S_{k,i} \times \alpha_k}{\sum_{k=1}^n \alpha_k}\htmlClass{unit}{[0..100]}\\ Avec \\ &S_{i} = \text{Score global pour l’indicateur environnemental}\textit{ i }\htmlClass{unit}{[0..100]}\\ &S_{k,i} = \text{Score de la page}\textit{ k }\text{pour l’indicateur environnemental}\textit{ i }\htmlClass{unit}{[0..100]}\\ &\alpha_k = \text{Nombre ou chance de vue de la page}\textit{ k }\htmlClass{unit}{> 0}\\ \end{align*}
  • Nombre de vues par page : Si on dispose du nombre de vues par page, la pondération se base directement sur le nombre de vues par page remonté par un service d'analyse d'audience.
  • Chance de vues par page : Si on ne connait pas la répartition du nombre de vues sur chacune des pages, la pondération se fait à l’aide de facteurs de « chance de vue » attribués à chacune des pages (Ces facteurs sont déterminés, pour chacune des pages d’un service, conformément aux dispositions du paragraphe Simulation du nombre de vues par page).

Footnotes

  1. https://explore.contentsquare.com/digital-experience-benchmark-2023/2023-benchmark-fr 2 3 4

  2. https://www.statista.com/statistics/277125/share-of-website-traffic-coming-from-mobile-devices/#:~:text=Mobile%20accounts%20for%20approximately%20half,permanently%20surpassing%20it%20in%202020

  3. La quantité d'électricité nécessaire pour le procédé et les impacts intrinsèques PEF-ADPe, PEF-AP, PEF-CTUe, PEF-CTUh-c, PEF-CTUh-nc, PEF-GWP, PEF-I, PEF-P, PEF-WU ont été extraits de la base Empreinte ADEME en décembre 2023.

  4. Back Flexion and Extension: The Effects of Static Posture on Children Using Mobile Devices, Regina Pope-Ford, January 2019, DOI:10.1007/978-3-319-94589-7_33, In book: Advances in Safety Management and Human Factors (pp.342-351) 2 3

  5. https://www.comparitech.com/tv-streaming/screen-time-statistics/ consulté en décembre 2023 2 3 4

  6. 8h par jour estimé sur la base d’une journée de travail type

  7. Configuration : 8 vCPU, 32 GB dedicated RAM, 5 years lifespan

  8. https://www.thegreenwebfoundation.org/