Slide 1

Slide 1 text

Sensibilisation à l’éco conception

Slide 2

Slide 2 text

Présentation Jérémy DESVAUX DE MARIGNY Consultant - Direction Technique - Développement WordPress - Obtention du label Numérique Responsable pour l’Agence Wonderful @jdmweb

Slide 3

Slide 3 text

Qu’est-ce que l'éco-conception?

Slide 4

Slide 4 text

Réponses? ?

Slide 5

Slide 5 text

On cherche à réduire l’impact / l’empreinte, d’un service numérique

Slide 6

Slide 6 text

Pourquoi est-ce devenu un sujet?

Slide 7

Slide 7 text

Réponses? ?

Slide 8

Slide 8 text

1 - L’aspect environnemental “ Alors que l’humanité doit diviser son empreinte écologique par 4 pour atteindre les objectifs d’un développement durable, l’univers numérique continue son expansion, avec des impacts environnementaux toujours plus importants. “ En 2020, le numérique représente 7% de nos émissions de gaz à effet de serre, soit plus que l’aviation civile. Greenit.fr

Slide 9

Slide 9 text

2 - La professionnalisation des métiers du web Qualité Web Accessibilité Opquast RGAA Eco conception RGESN

Slide 10

Slide 10 text

Environnement & démarche qualité. Let’s go!

Slide 11

Slide 11 text

Sommaire 1. Le cycle de vie de l’affichage d’une page 2. Identification des impacts 3. Méthodologie d’amélioration (en 4 points) 4. Pratique

Slide 12

Slide 12 text

01 Le cycle de vie de l’affichage d’une page

Slide 13

Slide 13 text

“Je voudrais afficher la page d’accueil du site de l’école”

Slide 14

Slide 14 text

Qu’est-ce qui se passe alors? ?

Slide 15

Slide 15 text

Affichage d’une page web : requête Client Réseau internet Serveur Web Calcul / Exécution du code

Slide 16

Slide 16 text

Chronologie d’une requête 1. Un utilisateur va se servir d'un terminal : ordinateur, tablette, téléphone etc. 2. Ces terminaux sont équipés d’un navigateur internet, comme chrome, firefox, safari, edge, brave etc, aussi appelés clients. 3. Pour afficher le service numérique, le navigateur va faire une requête à un serveur web. 4. La requête va transiter sur le réseau internet pour atteindre le serveur. 5. Ce dernier va calculer la page à retourner, puis préparer une réponse qui va être envoyée en sens inverse au client.

Slide 17

Slide 17 text

Exemple de réponse

Slide 18

Slide 18 text

Affichage d’une page web : réponse Client Réseau internet Serveur Web Calcul du rendu

Slide 19

Slide 19 text

Chronologie d’une réponse 1. La réponse part du serveur, et re-transite en sens inverse à travers le matériel réseau qui constitue internet. 2. Le client récupère la réponse, l’analyse puis demande au serveur les différentes ressources nécessaires au bon affichage de la page : les images, les feuilles de style, les fichiers javascript, et les polices notamment. 3. Le navigateur interprète et exécute les différentes ressources. Il affiche les images, il applique les styles demandés, et exécute le code JavaScript interprété. Il calcule tout pour construire la page. 4. La page est complètement affichée dans le navigateur.

Slide 20

Slide 20 text

Résultat final

Slide 21

Slide 21 text

Sous le capot

Slide 22

Slide 22 text

Affichage de la page supdeweb.com/montpellier Client Réseau internet Serveur Web Calcul du rendu 65 requêtes = 65 fois ce schéma 8Mo de ressources échangées à travers les équipements

Slide 23

Slide 23 text

Combien d’équipements traversés? Commande terminal : traceroute IP ou site web ex : traceroute supdeweb.com

Slide 24

Slide 24 text

02 Les impacts associés

Slide 25

Slide 25 text

Un nuage ? Vraiment ?

Slide 26

Slide 26 text

Impacts sur le serveur Complexité de calcul Répétition de calcul Travail pour rien Duplication sans valeur ajoutée CPU Mémoire Ventilateur Consommation électrique Scalabilité & obsolescence Saturation

Slide 27

Slide 27 text

Réduction des impacts sur le serveur Complexité de calcul Répétition de calcul Éviter (Cache) Réduire les calculs Optimiser le code Sobriété fonctionnelle Sobriété visuelle Scalabilité & obsolescence Bien dimensionner Surveiller Éviter la saturation Prolonger la durée de vie Objectifs: Éviter de changer le serveur / Réduire sa consommation

Slide 28

Slide 28 text

Impacts sur le réseau Bande passante Fréquence de transfert Téléchargement pour rien Poids Scalabilité & obsolescence Saturation

Slide 29

Slide 29 text

Réduction des impacts sur le réseau Bande passante Fréquence de transfert Cache pour éviter les téléchargements redondants Réduire le Poids des réponses / des pages. Compression Concaténation Réduire le nb de ressources à télécharger Scalabilité & obsolescence Bien dimensionner Surveiller Éviter la saturation Prolonger la durée de vie Objectifs: Éviter de changer les équipements / Réduire leur consommation

Slide 30

Slide 30 text

Impacts sur les terminaux Ressources Obsolescence Saturation CPU Batterie Mémoire Saturation

Slide 31

Slide 31 text

Réduction des impacts sur les terminaux Ressources Obsolescence Éviter la saturation Prolonger la durée de vie Optimiser pour l’exécution client Réduire les calculs Simplifier Saturation Objectifs: Réduire leur consommation / Éviter un changement de terminal

Slide 32

Slide 32 text

On cherche à réduire l’impact / l’empreinte, d’un service numérique -> En vue d’éviter des sur consommations et des remplacements matériels

Slide 33

Slide 33 text

03 Méthodologie

Slide 34

Slide 34 text

4 savoirs faire indispensables 1. Connaître les opportunités de sobriété numérique 2. Connaître les bonnes pratiques 3. Savoir utiliser les outils de mesures 4. Savoir tenir un cap

Slide 35

Slide 35 text

3.1 Connaître les opportunités de sobriété numérique Spécifications Limiter les fonctionnalités non essentielles Conception Design sobre Approche mobile first ou +>DC Production Optimiser le code, le cache Choisir un cap, le mesurer, le maintenir Hébergement Serveurs bien dimensionnés, bien utilisés. Hébergeur engagé. Limiter les DEEE

Slide 36

Slide 36 text

3.2 Connaître les bonnes pratiques

Slide 37

Slide 37 text

3.3 Savoir utiliser les outils de mesures - Inspecteur web - Nombre de requêtes - Poids - Temps d’exécution - Outil d’analyse spécialisé - ecoindex.fr - Green It extension - Lighthouse - Page speed insights

Slide 38

Slide 38 text

3.4 Savoir tenir un cap - On choisit un but, communément appelé budget, essayer de viser une métrique choisie (ou plusieurs) et s’y tenir (poids, nombre de requêtes, vitesse de chargement, eco index …) - Mesurer avant application des améliorations - Faire les modifications - Mesurer de nouveau - Tenir la métrique souhaitée dans le temps

Slide 39

Slide 39 text

Le client fait une demande de fonctionnalité - On questionne la demande - Si non pertinent on arbitre. Go? No Go? Alternative plus légère? - On fait passer en web design - On anticipe les impacts, on critique - On implémente - En faisant attention au budget associé. - On mesure - On optimise si ça ne passe pas. - On revient dessus si ça ne passe toujours pas.

Slide 40

Slide 40 text

On essaye?

Slide 41

Slide 41 text

04 Pratique

Slide 42

Slide 42 text

“Je voudrais acheter un billet de train”

Slide 43

Slide 43 text

Un site de réservation de billets de train ? ?

Slide 44

Slide 44 text

Un site de réservation de billets de train Logo Gare / Date Gare / Date 2 Go Départ Arrivée Nb pers

Slide 45

Slide 45 text

Un site de réservation de billets de train

Slide 46

Slide 46 text

Ce site est-il éco-responsable? ?

Slide 47

Slide 47 text

On applique la méthode 1. On mesure - https://www.ecoindex.fr/ - Green It Extension

Slide 48

Slide 48 text

On applique la méthode 2. On évalue le scope fonctionnel - Peut-on réduire le scope fonctionnel? - Le service est-il bien concentré sur sa valeur ajoutée initiale? Pas d’obésité fonctionnelle?

Slide 49

Slide 49 text

On applique la méthode 3. On évalue le design - Le design est-il adapté? Pas trop lourd? - Si trop lourd, revoir les maquettes. - Faire attention aux implications des décisions de design - Mettre en perspective d’un objectif à ne pas dépasser

Slide 50

Slide 50 text

On applique la méthode 4. On évalue le code qu’on peut (le code client - frontend) ● Est-ce que le serveur communique des directives de cache au client ? Si non, configurer le cache client. ● Le poids du service est-il raisonnable ou trop important ? Si trop lourd : - optimiser les assets du mieux possible (images, CSS, JS, polices, vidéos notamment) - Réduire le périmètre fonctionnel si possible ● Le nombre de requêtes nécessaires à l’utilisation du service est-il raisonnable ? Si non, optimiser les requêtes avec différents principes (concaténation, sprites, lazy load) ● La gestion des images est-elle optimisée ? ● Si non, reprendre le process image ● Utiliser des formats modernes ● Mettre en place des outils de compression

Slide 51

Slide 51 text

Pour les terminaux - Le code envoyé au terminal est-il optimisé pour fonctionner sur la plupart des terminaux en termes de poids et de complexité de calcul ? - Si non, optimiser le poids (refactoring, concatenation, minification, simplification, polyfills) - Dans quelle mesure le service numérique s’adapte-t-il aux conditions dans lesquelles il est utilisé par le terminal ? (taille d’écran, densité de pixels, offline, batterie, capacités du navigateur) - Si pas satisfaisant, mieux exploiter les forces et les faiblesses du panel de terminaux supportés. - La technologie est-elle adaptée - Attention aux technologies qui exercent une grosse pression sur le front (webgl, framework full front)...

Slide 52

Slide 52 text

On applique la méthode 5. Si on peut on analyse le code backend ● Le code est-il saint? Est-il optimisé Si non, refactorer le code pour être moins consommateur. ● Le code est-il bien mis en cache? - Si non, mettre en place une politique de cache

Slide 53

Slide 53 text

On applique la méthode 6. On rédige une recommandation

Slide 54

Slide 54 text

Un site de réservation de billets de train Logo Gare / Date Gare / Date 2 Go Départ Arrivée Nb pers

Slide 55

Slide 55 text

midjourney /imagine “simple and minimalist website design to book a train ticket”

Slide 56

Slide 56 text

05 Exercice Exercice

Slide 57

Slide 57 text

Appliquer la méthode à un site existant 1. Choisir un site 2. L’analyser en suivant la méthode 3. Rédiger une recommandation 4. Présenter cette recommandation à l’oral